我在AWS S3存储桶上托管了一个角度为7的应用程序作为静态网站,现在想要在我的github存储库更新时自动部署更新的版本。
我希望较新版本的文件替换s3存储桶中先前版本的文件。这是我如何去做
我有一个buildspec文件
version: 0.2
phases:
install:
commands:
# install dependencies
- echo Installng source NPM dependencies...
- npm install npm@latest -g
- npm install -g @angular/cli
pre_build:
commands:
- echo Prebuild steps
- npm install
build:
commandS:
# build angular app
- echo Build started on `date`
- ng build
post_build:
commands:
# clear S3 bucket
- aws s3 rm s3://${S3_BUCKET} --recursive
- echo S3 bucket cleared
# copy files from dist folder into S3 bucket
- aws s3 cp dist s3://${S3_BUCKET} --recursive
- echo Build completed on `date`
当代码管道运行时,进程在post_build失败,如此处的日志所示
[Container] 2019/04/11 10:33:49运行命令aws s3 rm s3:// $ {S3_BUCKET} --recursive /usr/local/lib/python2.7/dist-packages/urllib3/util/ssl_。 py:354:SNIMissingWarning:已发出HTTPS请求,但此平台上没有TLS的SNI(服务器名称指示)扩展。这可能导致服务器显示错误的TLS证书,这可能导致验证失败。您可以升级到较新版本的Python来解决此问题。有关更多信息,请参阅https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings SNIMissingWarning delete failed:s3://trips9ja-admin/3rdpartylicenses.txt调用DeleteObject操作时发生错误(AccessDenied):访问被拒绝删除失败:s3:// trips9ja-admin / Trips9jaPipeline / SourceArti / FyvYEvb.zip调用DeleteObject操作时发生错误(AccessDenied):访问被拒绝删除失败:s3://trips9ja-admin/assets/bus.png调用DeleteObject操作时发生错误(AccessDenied):访问被拒绝
这就是我被卡住的地方。那么我做错了什么,错误意味着什么?
我有一个S3存储桶策略,允许像这样的代码构建访问
{
"Sid": "CodeBuildPermision",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::735681810231:role/service-role/codebuild-service-role"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::<bucket name>"
}
解决了这个问题,在S3存储桶策略的"Resource"
中添加了另一行,允许访问存储桶的所有内容,如"Resource": ["arn:aws:s3:::<bucket name>", "arn:aws:s3:::<bucket name>/*"]