IAMユーザ作成時にハマった
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "codedeploy:GetDeploymentConfig",
"Resource": "arn:aws:codedeploy:us-east-1:123ACCOUNTID:deploymentconfig:*"
},
{
"Effect": "Allow",
"Action": "codedeploy:RegisterApplicationRevision",
"Resource": "arn:aws:codedeploy:us-east-1:123ACCOUNTID:application:DemoApplication"
},
{
"Effect": "Allow",
"Action": "codedeploy:GetApplicationRevision",
"Resource": "arn:aws:codedeploy:us-east-1:123ACCOUNTID:application:DemoApplication"
},
{
"Effect": "Allow",
"Action": "codedeploy:CreateDeployment",
"Resource": "arn:aws:codedeploy:us-east-1:123ACCOUNTID:deploymentgroup:DemoApplication/DemoFleet"
}
]
}
codedeployのarnが見つからなくて、123ACCOUNTIDの文字列が残ったまま作成したら、「そんなユーザは存在しないよ」というエラーが返ってきてiamユーザのポリシーを作成できなかった。
つまり、
arn::aws:codedeploy:us-east-1:123ACCOUNTID:deploymentconfig:*
これを
arn::aws:codedeploy:[リージョン]:[アカウントID]:deploymentconfig:*
これに書き直したら作成できた。
arnの構成を始めて知った...
設定全部終ったのに自動でデプロイされない
全て設定が完了して、プルリク作成してmasterにマージしてみた。マージした直後にcodedeployのコンソールを見ると、デプロイが実行されていることを期待していたのに何も起こらなかった。デプロイ対象のインスタンスの中に入ってログを見てみても、特にエラーが発生していない・・一体どこの設定が間違って期待する挙動が出来てないんだ?
原因は、github側の設定の、Github Auto-Deploymentの設定が間違っていたからだった。
Environmentsは勝手に、description的なものかと勘違いしていて何も入力していなかったけど、それが原因みたい。
Environmentsにcode deployのデプロイ名を入力したら、masterマージでデプロイが実行されるようになった。
おまけ
デプロイが自動で走るのはmasterにマージされた時のみ?
そうらしい。Github Auto-Deployment の説明に、
と書いてあった。
このフックを有効にすると、GitHubは、デフォルトのブランチがプッシュされるか、テストスイートが特定の基準を満たしたときにGitHubのデプロイメントをリクエストします。
挙動を確認してみたけど、適当なブランチをリモートリポジトリにpushしてもデプロイが実行されることはなかった。