GithubのPrivateリポジトリ+CodePipeline+CodeDeploy
CodeDeploy実行時に、403 Forbiddenと出る
1 2 3 4 5 6 7 |
2021-05-08 20:22:31 INFO [codedeploy-agent(2742)]: [Aws::CodeDeployCommand::Client 200 0.028457 0 retries] put_host_command_complete(command_status:"Failed",diagnostics:{forma t:"JSON",payload:"{\"error_code\":5,\"script_name\":\"\",\"message\":\"Could not download bundle at 'https://api.github.com/repos/vamdemic/AutoDeployment/tarball/c4f8dae79a3ebb2f 63fd2566046a35b81630ea1b' after 3 retries. Server returned codes: 403 'Forbidden'; 403 'Forbidden'; 403 'Forbidden'; 403 'Forbidden'.\",\"log\":\"\"}"},host_command_identifier: "eyJiYXRjaElkIjoiYjY5YjE5Y2U0ZDI5ZGZhZWMwNThkM2U0MTQzYzcwNTgvcHVibGljMDA1IiwiZGVwbG95bWVudElkIjoiQ29kZURlcGxveS9hcC1ub3J0aGVhc3QtMS9wcm9kL29ycGhldXM6cHVibGljMDA0LzY5NzMzMzgxNDk yODpkLUNWSjUwM1pFQSIsImhvc3RJZCI6ImFybjphd3M6ZWMyOmFwLW5vcnRoZWFzdC0xOjY5NzMzMzgxNDkyODppbnN0YW5jZS9pLTAxMmVjN2I0NDkzOWI4YmY3IiwiY29tbWFuZElkIjoiQXBvbGxvRGVwbG95Q29udHJvbFNlcnZ pY2V8YXJuOmF3czplYzI6YXAtbm9ydGhlYXN0LTE6Njk3MzMzODE0OTI4Omluc3RhbmNlL2ktMDEyZWM3YjQ0OTM5YjhiZjd8MnwwIiwiY29tbWFuZE5hbWUiOiJEb3dubG9hZEJ1bmRsZSIsImNvbW1hbmRJbmRleCI6MiwiYXR0ZW1 wdEluZGV4IjoxfQ==") |
githubレポジトリの管理者にメールがいくので許可してもらう
CodeDeploy実行時に、「InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: Error during perform: Psych::SyntaxError – (<unknown>): mapping val ues are not allowed in this context at line 9 column 14 – /usr/share/ruby/psych.rb:248:in `parse’」と出る
1 2 |
2021-05-09 03:22:50 ERROR [codedeploy-agent(2742)]: InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: Error during perform: Psych::SyntaxError - (<unknown>): mapping val ues are not allowed in this context at line 9 column 14 - /usr/share/ruby/psych.rb:248:in `parse' |
yamlファイルの形式がおかしいかもしれないのでチェック
1 |
The deployment failed because a specified file already exists at this location: |
CodeDeployでalready existesと出る
appspecのInstall処理部分で失敗していると思われる。
Install処理時には、appspecファイルで指定しているfilesセクションのファイルが指定したディレクトリにダウンロードされるが、それがすでにあるというのでエラーになっている。
次のように、たとえばInstall処理前のBeforeInstallセクションでリポジトリ内のファイルを参照するような動作はさせずに、Install処理後のAfterInstallなどで処理させることで、ここらへんのあべこべな状態は解消できる。
初回はデプロイ用ディレクトリは空が正しい。
そうすると、再度CIが走った時のInstall処理でまた、already existが発生すると思ってしまうが、CodeDeployではリビジョンを管理していて、最初の1回のみリポジトリの全ダウンロードが走る模様。
その後は、Gitよろしく差分のみがダウンロードされるということになっている。
https://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/reference-appspec-file-structure-hooks.html