AWS SAM での AWS CodePipeline 向けのスターターパイプラインの生成 - AWS Serverless Application Model

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS SAM での AWS CodePipeline 向けのスターターパイプラインの生成

AWS CodePipeline 向けのスターターパイプライン設定を生成するには、以下のタスクをこの順序どおりに実行します。

  1. インフラストラクチャリソースを作成する

  2. パイプライン設定を生成する

  3. パイプライン設定を Git にコミットする

  4. Git リポジトリを CI/CD システムに接続する

注記

以下の手順は、sam pipeline bootstrapsam pipeline init の 2 つの AWS SAM CLI コマンドを活用します。2 つのコマンドを使用する理由は、管理者 (IAM ユーザーやロールといったインフラストラクチャ AWS リソースをセットアップする許可が必要なユーザー) がデベロッパー (個々のパイプラインをセットアップする許可だけが必要で、インフラストラクチャ AWS リソースをセットアップする許可は必要ないユーザー) よりも多くの許可を持つユースケースを処理するためです。

ステップ 1: インフラストラクチャリソースを作成する

AWS SAM を使用するパイプライには、必要な許可を持つ IAM ユーザーとロール、Amazon S3 バケット、およびオプションの Amazon ECR リポジトリといった特定の AWS リソースが必要です。パイプラインのデプロイステージごとに、一連のインフラストラクチャリソースが必要です。

このセットアップには、以下のコマンドを実行できます。

sam pipeline bootstrap
注記

上記のコマンドは、パイプラインのデプロイステージごとに実行します。

ステップ 2: パイプライン設定を生成する

パイプライン設定を生成するには、以下のコマンドを実行します。

sam pipeline init

ステップ 3: パイプライン設定を Git リポジトリにコミットする

このステップは、CI/CD システムがパイプライン設定を認識しており、変更のコミット時に実行されることを確実にするために必要です。

ステップ 4:Git リポジトリを CI/CD システムに接続する

AWS CodePipeline の場合は、この時点で以下のコマンドを実行して接続を確立できます。

sam deploy -t codepipeline.yaml --stack-name <pipeline-stack-name> --capabilities=CAPABILITY_IAM --region <region-X>

GitHub または Bitbucket を使用している場合は、上記の sam deploy コマンドを実行してから、デベロッパーツールコンソールユーザーガイド保留中の接続の更新トピックにある接続を完了するにはに記載されている手順を実行して接続を確立します。それに加えて、sam deploy コマンドの出力からの CodeStarConnectionArn のコピーを保存しておきます。main 以外のブランチで AWS CodePipeline を使用する場合に必要となるからです。

その他ブランチの設定

デフォルトで、AWS CodePipeline は AWS SAM で main ブランチを使用します。main 以外のブランチを使用する場合は、sam deploy コマンドを再度実行する必要があります。使用している Git リポジトリによっては、CodeStarConnectionArn も提供する必要が生じる場合があることに注意してください。

# For GitHub and Bitbucket sam deploy -t codepipeline.yaml --stack-name <feature-pipeline-stack-name> --capabilities=CAPABILITY_IAM --parameter-overrides="FeatureGitBranch=<branch-name> CodeStarConnectionArn=<codestar-connection-arn>" # For AWS CodeCommit sam deploy -t codepipeline.yaml --stack-name <feature-pipeline-stack-name> --capabilities=CAPABILITY_IAM --parameter-overrides="FeatureGitBranch=<branch-name>"

詳細

CI/CD パイプラインを設定する実践的な例については、「The Complete AWS SAM Workshop」の「 CI/CD with AWS CodePipeline」を参照してください。