我已按照本教程 https://medium.com/technext/bitbucket-to-aws-ec2-continuous-deployment-pipeline-using-aws-code-deploy-for-php-application-e39004243cd9 使用 bitbucket 管道通过 AWS codedeploy 自动部署我的 Laravel 应用程序,但在构建中的 aws deploy register-application-revision 步骤中仍然出现错误(无法注册应用程序修订版)
需要帮助。请......
bitbucket-pipelines.yml
image: atlassian/default-image:2
pipelines:
default:
- step:
script:
- apt-get update
- apt-get install -y zip
- zip -r application1.zip .
- pipe: atlassian/aws-code-deploy:0.2.5
variables:
AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION
AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
APPLICATION_NAME: $APPLICATION_NAME
S3_BUCKET: $S3_BUCKET
COMMAND: 'upload'
ZIP_FILE: 'application1.zip'
VERSION_LABEL: 'my-app-1.0.0'
- pipe: atlassian/aws-code-deploy:0.2.5
variables:
AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION
AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
APPLICATION_NAME: $APPLICATION_NAME
DEPLOYMENT_GROUP: $DEPLOYMENT_GROUP
S3_BUCKET: $S3_BUCKET
COMMAND: 'deploy'
WAIT: 'true'
VERSION_LABEL: 'my-app-1.0.0'
IGNORE_APPLICATION_STOP_FAILURES: 'true'
FILE_EXISTS_BEHAVIOR: 'OVERWRITE'
appspec.yml
version: 0.0
os: linux
files:
- source: /
destination: /home/ubuntu/my-app1
最佳答案
发生这种情况可能有多种原因,查明根本原因的一种更简单的方法是在管道中启用“调试”。可以通过在管道变量中添加以下行以及添加的 AWS 变量来完成:
DEBUG: 'true'
我的问题是,运行管道的 AWS 用户(即与定义的 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 值对应的用户)没有足够的权限在 CodeDeploy 中创建修订。以下行清楚地表明了这一点,该行仅在我启用 Debug模式后才显示:
An error occurred (AccessDeniedException) when calling the RegisterApplicationRevision operation: User: arn:aws:iam::XXXXXXXXXXXX:user/bitbucket-deployer is not authorized to perform: codedeploy:RegisterApplicationRevision on resource: arn:aws:codedeploy:$AWS_DEFAULT_REGION:XXXXXXXXXXXX:application:$APPLICATION_NAME'
关于bitbucket-pipelines - 无法在 bitbucket 管道中注册应用程序修订版,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64312270/