如何解决构建应用程序时,来自s3存储桶的Mixin配置文件
我创建了一个从GitHub采购应用程序的管道。在构建步骤中,将构建该应用-一切正常。
但是,部署需要在构建的应用程序中存在一些其他文件(特别是与Docker和Beanstalk相关的配置文件)。
我想做的是,在构建后的步骤中,从S3存储桶(而不是将保存完成的工件的目标存储桶)中抓取这些文件。
build:
commands:
- npm install
- npm run build
post_build:
commands:
- aws s3 cp s3://[***config-bucket-id***]/test.txt test.txt
但是我遇到权限问题,因为配置存储桶不是公共的。同样,当我手动运行管道时,它似乎以我自己的用户身份运行,但具有假定的角色。
我在构建过程中运行aws sts get-caller-identity
来查看谁在执行构建,它给了我
{
"UserId": "[some-id]:AWSCodeBuild-[hash-that-differs-for-each-build]","Account": "[my-account-id]","Arn": "arn:aws:sts::[my-account-id]:assumed-role/codebuild-[...]-service-role/AWSCodeBuild-[hash-that-differs-for-each-build]"
}
解决方法
您只需要一个用于代码构建的IAM角色。我建议配置代码构建和s3来使用此角色。 参见:https://docs.aws.amazon.com/codebuild/latest/userguide/auth-and-access-control.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。