作者:x-诗儿_683 | 来源:互联网 | 2022-12-26 18:04
您好我使用以下配置创建了一个codepipeline项目:
S3中的源代码来自Bitbucket.
使用CodeBuild构建,生成docker镜像并将其存储到Amazon ECS存储库中.
部署提供商Amazon ECS.
所有进程都可以正常工作,直到它尝试部署时,由于某种原因,我在部署期间遇到以下错误:
权限不足无法使用位于Amazon S3工件桶'codepipeline-us-west-2-913731893217'中的Amazon S3对象密钥"FailedScanSubscriber/MyAppBuild/Wmu5kFy"访问工件.提供的角色没有足够的权限.
在构建阶段,它甚至能够在ECS存储库中创建新的docker镜像.
我尝试了一切,改变了IAM角色和策略,添加了对S3的完全访问权限,我甚至将S3存储桶设置为公共,没有任何效果.我没有选择,如果有人可以帮助我那将是美好的,我对AWS的经验很差,所以任何帮助都表示赞赏.
1> Abraao Carmo..:
我找到了解决方案.真正的问题是,当部署提供程序设置为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