株式会社ヴァンデミックシステム

Blog

<スポンサーリンク>

GithubのPrivateリポジトリ+CodePipeline+CodeDeploy

CodeDeploy実行時に、403 Forbiddenと出る

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’」と出る

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ファイルの形式がおかしいかもしれないのでチェック

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

<スポンサーリンク>

コメントを残す

Allowed tags:  you may use these HTML tags and attributes: <a href="">, <strong>, <em>, <h1>, <h2>, <h3>
Please note:  all comments go through moderation.

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)