Pipeline
以下は Copilot Pipeline の Manifest で利用できるすべてのプロパティのリストです。Pipeline の概念説明のページも合わせてご覧ください。
継続的デリバリー Pipeline のサンプル Manifest
# "app-pipeline" は、user/repo にあるすべての Service や Job を
# "test" や "prod" Environment にデプロイします。
name: app-pipeline
source:
provider: GitHub
properties:
branch: main
repository: https://github.com/user/repo
# オプション。既存の CodeStar Connection の接続名を指定します。
# connection_name: a-connection
build:
image: aws/codebuild/amazonlinux2-x86_64-standard:5.0
# additional_policy: # コンテナイメージやテンプレートを構築する際に、権限を追加することができます。
stages:
- # デフォルトでは、すべてのワークロードはステージ内で同時にデプロイされます。
name: test
pre_deployments:
db_migration:
buildspec: ./buildspec.yml
test_commands:
- make integ-test
- echo "woo! Tests passed"
-
name: prod
requires_approval: true
# また、ステージ内のスタックデプロイの順番を制御することも可能です。
# https://aws.github.io/copilot-cli/blogs/release-v118/#controlling-order-of-deployments-in-a-pipeline を参照してください。
name: app-pipeline
source:
provider: Bitbucket
properties:
branch: main
repository: https://bitbucket.org/user/repo
stages:
- name: test
deployments:
orders:
warehouse:
frontend:
depends_on: [orders, warehouse]
- name: prod
require_approval: true
deployments:
orders:
warehouse:
frontend:
depends_on: [orders, warehouse]
# Environment Manifest の変更も、Pipeline でリリースすることができます。
name: env-pipeline
source:
provider: CodeCommit
properties:
branch: main
repository: https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo
stages:
- name: test
deployments:
deploy-env:
template_path: infrastructure/test.env.yml
template_config: infrastructure/test.env.params.json
stack_name: app-test
- name: prod
deployments:
deploy-prod:
template_path: infrastructure/prod.env.yml
template_config: infrastructure/prod.env.params.json
stack_name: app-prod
name
String
Pipeline 名。
version
String
テンプレートのスキーマバージョン。現在サポートされているバージョンは 1
だけです。
source
Map
Pipeline のトリガーに関する設定。
source.provider
String
プロバイダー名。現在 GitHub
、 Bitbucket
そして CodeCommit
がサポートされています。
source.properties
Map
Pipeline のトリガーに関するプロバイダー固有の設定。
source.properties.access_token_secret
String
Pipeline をトリガーするための GitHub アクセストークンを保持する AWS Secrets Manager シークレットの名前。
(プロバイダーが GitHub で、個人のアクセストークンを利用して Pipeline を作成した場合)
Info
Copilot v1.4.0 から GitHub リポジトリをソースにする場合のアクセストークンは不要になりました。代わりに Copilot は AWS CodeStar の GitHub への接続を使って Pipeline をトリガーします。
source.properties.branch
String
Pipeline をトリガーするリポジトリのブランチ名。 Copilot は、このフィールドに現在のローカルブランチを自動的に入力します。
source.properties.repository
String
リポジトリの URL 。
source.properties.connection_name
String
既存の CodeStar Connections の接続名。指定しない場合 Copilot は接続を作成します。
source.properties.output_artifact_format
String
任意項目。アーティファクトの出力形式です。CODEBUILD_CLONE_REF
または CODE_ZIP
を指定します。省略した場合、デフォルトの CODE_ZIP
が利用されます。
Info
このプロパティは、access_token_secret
を使用するGitHub version 1 ソースアクションでは利用できません。
build
Map
CodeBuild プロジェクトに関する設定。
build.image
String
CodeBuild のビルドプロジェクトで利用する Docker イメージの URI。aws/codebuild/amazonlinux2-x86_64-standard:5.0
がデフォルトで利用されます。
build.buildspec
String
任意項目。このビルドプロジェクトで使用する、buildspec ファイルへのプロジェクトルートからの相対パスを指定します。デフォルトでは、作成したファイルは、 copilot/pipelines/[your pipeline name]/buildspec.yml
に配置されています。
build.additional_policy.
PolicyDocument
Map
任意項目。ビルドプロジェクトロールに追加するポリシードキュメントを指定します。追加のポリシードキュメントは、以下の例のように YAML のマップに指定することができます。
build:
additional_policy:
PolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Action:
- ecr:GetAuthorizationToken
Resource: '*'
build:
additional_policy:
PolicyDocument:
{
"Statement": [
{
"Action": ["ecr:GetAuthorizationToken"],
"Effect": "Allow",
"Resource": "*"
}
],
"Version": "2012-10-17"
}
stages
Array of Maps
Pipeline のデプロイ先である 1 つ以上の Environment をデプロイしたい順番に並べたリスト。
stages.name
String
Service をデプロイする Environment 名。
stages.requires_approval
Boolean
任意項目。デプロイの前に手動承認ステップを追加するかどうか (追加している場合はデプロイ前のアクションを追加するかどうか) を示します。デフォルトは false
です。
stages.pre_deployments
Map v1.30.0 にて追加
任意項目。デプロイ前に実行するアクションを追加します。
stages:
- name: <env name>
pre_deployments:
<action name>:
buildspec: <path to local buildspec>
depends_on: [<other action's name>, ...]
<name>
Map v1.30.0 にて追加デプロイ前のアクションの名前。
stages.pre_deployments.<name>
.buildspec
String v1.30.0 にて追加
このビルドプロジェクトで使用する buildspec ファイルへのパスを、プロジェクトルートからの相対パスで指定します。
stages.pre_deployments.<name>
.depends_on
Array of Strings v1.30.0 にて追加
任意項目。このアクションをデプロイする前にデプロイする必要がある、他のデプロイ前アクションの名前。デフォルトでは依存関係はありません。
Info
デプロイ前およびデプロイ後の詳細については、v1.30.0 のブログ記事 および Pipeline ページを参照してください。
stages.deployments
Map
任意項目。デプロイする CloudFormation スタックとその順序を制御します。
デプロイの依存関係は、次の形式の Map で指定されます。
stages:
- name: test
deployments:
<service or job name>:
<other service or job name>:
depends_on: [<name>, ...]
例えば、Git リポジトリのレイアウトが次のようになっているとします。
copilot
├── api
│ └── manifest.yml
└── frontend
└── manifest.yml
また、frontend
の前に api
がデプロイされるようにデプロイの順序を制御したい場合は、ステージを次のように設定できます。
stages:
- name: test
deployments:
api:
frontend:
depends_on:
- api
api
のみをデプロイし、frontend
をデプロイしないよう指定しています。
stages:
- name: test
deployments:
api:
最後に、もし deployments
が指定されていない場合、デフォルトでは Copilot は git リポジトリにあるすべての Service と Job を並行してデプロイします。
stages.deployments.<name>
Map
デプロイする Job または Service の名前。
stages.deployments.<name>
.depends_on
Array of Strings
任意項目。このマイクロサービスをデプロイする前にデプロイする必要がある他の Job または Service の名前。デフォルトでは依存関係はありません。
stages.deployments.<name>
.stack_name
String
任意項目。作成または更新するスタックの名前。デフォルトは <app name>-<stage name>-<deployment name>
です。
たとえば、Application 名が demo
、ステージ名が test
、Service 名が frontend
の場合、スタック名は demo-test-frontend
になります。
stages.deployments.<name>
.template_path
String
任意項目。build
フェーズで生成された CloudFormation テンプレートへのパス。デフォルトは infrastructure/<deployment name>-<stage name>.yml
です。
stages.deployments.<name>
.template_config
String
任意項目。build
フェーズで生成された CloudFormation テンプレート設定へのパス。デフォルトは infrastructure/<deployment name>-<stage name>.params.json
です。
stages.post_deployments
Mapv1.30.0 にて追加
任意項目。デプロイ後に実行するアクションを追加します。stages.test_commands
とは相互に排他的です。
stages:
- name: <env name>
post_deployments:
<action name>:
buildspec: <path to local buildspec>
depends_on: [<other action's name>, ...]
<name>
Map v1.30.0 にて追加デプロイ後アクションの名前。
stages.post_deployments.<name>
.buildspec
String v1.30.0 にて追加
このビルドプロジェクトで使用する buildspec ファイルへのパスを、プロジェクトルートからの相対パスで指定します。
stages.post_deployments.<name>
.depends_on
Array of Strings v1.30.0 にて追加
任意項目。このアクションをデプロイする前にデプロイする必要がある他のデプロイ後アクションの名前。 デフォルトでは依存関係はありません。
stages.test_commands
Array of Strings
任意項目。デプロイ後にインテグレーションテストまたは E2E テストを実行するコマンドです。デフォルトでは、デプロイ後の検証は行いません。'stages.post_deployment' とは相互に排他的です。