我正在尝试使用GitLabs DevOps功能来构建,测试和部署Vue.js应用程序到S3。我可以在我的本地机器上部署应用程序。但是当设置.gitlab-ci.yml文件以部署到S3时,我收到此错误。
致命错误:调用ListObjects操作时发生错误(SignatureDoesNotMatch):我们计算的请求签名与您提供的签名不匹配。检查您的密钥和签名方法。 错误:作业失败:退出代码1
我的.gitlab-ci.yml文件就是这个......
variables:
AWS_ACCESS_KEY_ID: "****"
AWS_SECRET_ACCESS_KEY: “****”
build site:
image: node:8.8.1
stage: build
script:
- npm install --progress=false
- npm run build
artifacts:
expire_in: 1 week
paths:
- dist
cache:
paths:
- node_modules/
all_tests:
image: node:8.8.1
stage: test
script:
- npm install
- npm run test
deploy:
environment: production
image: python:latest
script:
- pip install awscli==1.11.89
- aws s3 sync --acl public-read --delete dist/ s3://bucket
我的桶是公开的,也有此政策......
{
"Version": "2012-10-17",
"Id": "Policy1524147868577",
"Statement": [
{
"Sid": "****",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::bucket"
}
]
}
我不知道为什么它在本地工作而不是在GitLab上工作。我正在学习这样做,我想做得对。如果您有任何关于我或其他任何可能阅读此内容的信息,请告诉我们。
提前致谢
答案 0 :(得分:0)
确保正确粘贴秘密。我遇到了这个错误,因为当我从excel文件中复制秘密时,它会删除某些特殊字符。这对你来说可能类似。
同样,正如您所知,GitLab提供了一个很好的教程,可以在此安全地执行此操作:https://about.gitlab.com/2016/08/26/ci-deployment-and-environments/