前置き
v1の方法はいくらでも見つかるのですが、v2の方法が、推奨だというのにも関わらずまったく見当たらないのでまとめてみました。
やり方
結論からいえば、以下に設定値が載っています。
なんだ、CodeStarSourceConnection
って。OwnerもGithub
じゃないんかい。
これにたどり着くまでが長かった..
せっかくなんでやることをまとめてみます。
-
コネクションを作成する
これは認証もからむのでCloudFormationでやる必要はないと思います。私はAWSコンソールからやりました。 -
コネクションを使うポリシーを作成する。
これもIAMのコンソールから作成しちゃいました。CloudFormation使え > 自分
作成したポリシーをCodePipeline用のRoleにアタッチしときます。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ConnectionsFullAccess",
"Effect": "Allow",
"Action": [
"codestar-connections:CreateConnection",
"codestar-connections:DeleteConnection",
"codestar-connections:UseConnection",
"codestar-connections:GetConnection",
"codestar-connections:ListConnections",
"codestar-connections:TagResource",
"codestar-connections:ListTagsForResource",
"codestar-connections:UntagResource"
],
"Resource": "*"
}
]
}
- CloudFormationでのSource取得ステージの書式
CodePipeline:
Type: "AWS::CodePipeline::Pipeline"
DependsOn: EcsService
Properties:
Name: !Ref AWS::StackName
RoleArn: !GetAtt CodePipelineRole.Arn
ArtifactStore:
Location: !Ref CodePipelineS3Bucket
Type: S3
Stages:
- Name: Source
Actions:
- InputArtifacts: []
Name: Source
ActionTypeId:
Category: Source
Owner: AWS
Version: "1"
Provider: CodeStarSourceConnection
OutputArtifacts:
- Name: SourceArtifact
Configuration:
FullRepositoryId: "OrganizationName/RepositoryName"
ConnectionArn: "arn:aws:codestar-connections:ap-northeast-1:xxxxxxxxxxxxxxxxxxxxxx" #上記で作成したConnectionのARN
BranchName: "develop"
DetectChanges: "false"
RunOrder: 1
参考になれば。