こんにちは私は次の構成でコードパイプラインプロジェクトを作成しました:
何らかの理由で展開中に次のエラーが発生するまで、展開を試行するまですべてのプロセスが正常に機能します。
アクセス許可が不十分Amazon S3アーティファクトバケット「codepipeline-us-west-2-913731893217」にあるAmazon S3オブジェクトキー「FailedScanSubscriber/MyAppBuild/Wmu5kFy」でアーティファクトにアクセスできません。提供された役割には十分な権限がありません。
構築フェーズでは、ECSリポジトリに新しいDockerイメージを作成することもできます。
私はすべてを試し、IAMのロールとポリシーを変更し、S3へのフルアクセスを追加しました。S3バケットをパブリックとして設定しましたが、何も機能しませんでした。私には選択肢がないので、誰かが私を助けてくれて素晴らしいと思うなら、私はAWSでの経験が乏しいので、どんな助けでもありがたいです。
解決策を見つけることができました。本当の問題は、デプロイメントプロバイダーがAmazon ECSとして設定されている場合、タスク定義の名前とイメージURIを示す出力アーティファクトを生成する必要があることです。次に例を示します。
post_build:
commands:
- printf '[{"name":"your.task.definition.name","imageUri":"%s"}]' $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG > imagedefinitions.json
artifacts:
files: imagedefinitions.json
これは、AWS CodeDeployがAWS CodeBuildからビルドアーティファクトを見つけられない場合に発生します。 S3バケットに移動してパスを確認すると、実際にはアーティファクトオブジェクトが存在しないことがわかります。
エラーは許可の問題について述べていますが。これは、アーティファクトオブジェクトがないために発生する可能性があります。
解決策:buildspec.yml
のartifacts
セクションを適切に構成し、入力および出力アーティファクト名を適切に指定してAWS Codepipelineステージを構成します。
artifacts:
files:
- '**/*'
base-directory: base_dir
name: build-artifact-name
discard-paths: no
この記事を参照してください-https://medium.com/@shanikae/insufficient-permissions-unable-to-access-the-artifact -with-Amazon-s3-247f27e6cdc