[英]Using Bitbucket Pipelines to deploy to multiple AWS regions using AWS CodeDeploy
我有一個現有的 Bitbucket Pipelines 設置和 AWS CodeDeploy,它適用於單個區域。 現在我正在嘗試修改現有設置以適應多區域部署。 這是我的bitbucket-pipelines.yml
:
image: php:7.1.29 pipelines: branches: develop: - step: caches: - composer script: - apt-get update && apt-get install -y unzip zip - zip -r MobileAPIDEV.zip. - pipe: atlassian/aws-code-deploy:0.5.3 variables: AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION APPLICATION_NAME: 'MobileAPIDEV' ZIP_FILE: 'MobileAPIDEV.zip' COMMAND: 'upload' S3_BUCKET: $S3_BUCKET - pipe: atlassian/aws-code-deploy:0.5.3 variables: AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION APPLICATION_NAME: 'MobileAPIDEV' DEPLOYMENT_GROUP: 'MobileAPIDEV' WAIT: 'false' S3_BUCKET: $S3_BUCKET COMMAND: 'deploy' IGNORE_APPLICATION_STOP_FAILURES: 'true' FILE_EXISTS_BEHAVIOR: 'OVERWRITE' master: - step: caches: - composer script: - apt-get update && apt-get install -y unzip zip - zip -r prodMobileAPI.zip. - pipe: atlassian/aws-code-deploy:0.5.3 variables: AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION APPLICATION_NAME: 'prodMobileAPI' ZIP_FILE: 'prodMobileAPI.zip' COMMAND: 'upload' S3_BUCKET: $S3_BUCKET - pipe: atlassian/aws-code-deploy:0.5.3 variables: AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION APPLICATION_NAME: 'prodMobileAPI' DEPLOYMENT_GROUP: 'prodMobileAPI' WAIT: 'false' S3_BUCKET: $S3_BUCKET COMMAND: 'deploy' IGNORE_APPLICATION_STOP_FAILURES: 'true' FILE_EXISTS_BEHAVIOR: 'OVERWRITE' - pipe: atlassian/aws-code-deploy:0.5.3 variables: AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY # Optional if already defined in the context. AWS_DEFAULT_REGION: eu-central-1 APPLICATION_NAME: 'prodMobileAPI' DEPLOYMENT_GROUP: 'prodMobileAPI' WAIT: 'false' S3_BUCKET: $S3_BUCKET COMMAND: 'deploy' IGNORE_APPLICATION_STOP_FAILURES: 'true' FILE_EXISTS_BEHAVIOR: 'OVERWRITE'
我在 master 分支下添加了第三個pipe
並將eu-central-1
設置為新的默認區域。 我不確定我是否做得正確,因為我找不到使用這種方法進行多區域部署的任何示例。
當我嘗試部署時,出現此錯誤: An error occurred (RevisionDoesNotExistException) when calling the GetApplicationRevision operation: No application revision found for revision.
我確認我在其他區域中的 CodeDeploy 設置具有正確的角色,並且我用於 Bitbucket 管道的訪問密鑰也具有足夠的權限。
從錯誤
調用 GetApplicationRevision 操作時發生錯誤 (RevisionDoesNotExistException):未找到用於修訂的應用程序修訂。
上述區域eu-central-1
RevisionDoesNotExistException中沒有可用的工件。
根據文檔
當您創建或編輯管道時,您必須在管道區域中有一個工件存儲桶,然后您計划在其中執行操作的每個區域必須有一個工件存儲桶。
所以你也必須有一個upload
部分OR
我要做的是每個region
有一個單獨的步驟OR
為 Amazon S3 設置跨區域復制,這可以讓我復制我想要的任何區域的articats,並且我只能在pipeline.yml
中upload
一個
查看此博客文章使用 AWS CodePipeline 執行多區域部署
pipelines:
branches:
develop:
- step:
caches:
- composer
script:
- apt-get update && apt-get install -y unzip zip
- zip -r MobileAPIDEV.zip .
- pipe: atlassian/aws-code-deploy:0.5.3
variables:
AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION
APPLICATION_NAME: 'MobileAPIDEV'
ZIP_FILE: 'MobileAPIDEV.zip'
COMMAND: 'upload'
S3_BUCKET: $S3_BUCKET
- pipe: atlassian/aws-code-deploy:0.5.3
variables:
AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION
APPLICATION_NAME: 'MobileAPIDEV'
DEPLOYMENT_GROUP: 'MobileAPIDEV'
WAIT: 'false'
S3_BUCKET: $S3_BUCKET
COMMAND: 'deploy'
IGNORE_APPLICATION_STOP_FAILURES: 'true'
FILE_EXISTS_BEHAVIOR: 'OVERWRITE'
master:
- step:
caches:
- composer
script:
- apt-get update && apt-get install -y unzip zip
- zip -r prodMobileAPI.zip .
- pipe: atlassian/aws-code-deploy:0.5.3
variables:
AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION
APPLICATION_NAME: 'prodMobileAPI'
ZIP_FILE: 'prodMobileAPI.zip'
COMMAND: 'upload'
S3_BUCKET: $S3_BUCKET
- pipe: atlassian/aws-code-deploy:0.5.3
variables:
AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION
APPLICATION_NAME: 'prodMobileAPI'
DEPLOYMENT_GROUP: 'prodMobileAPI'
WAIT: 'false'
S3_BUCKET: $S3_BUCKET
COMMAND: 'deploy'
IGNORE_APPLICATION_STOP_FAILURES: 'true'
FILE_EXISTS_BEHAVIOR: 'OVERWRITE'
- pipe: atlassian/aws-code-deploy:0.5.3
variables:
AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
AWS_DEFAULT_REGION: 'eu-central-1'
APPLICATION_NAME: 'prodMobileAPI'
ZIP_FILE: 'prodMobileAPI.zip'
COMMAND: 'upload'
S3_BUCKET: $S3_BUCKET
- pipe: atlassian/aws-code-deploy:0.5.3
variables:
AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY # Optional if already defined in the context.
AWS_DEFAULT_REGION: 'eu-central-1'
APPLICATION_NAME: 'prodMobileAPI'
DEPLOYMENT_GROUP: 'prodMobileAPI'
WAIT: 'false'
S3_BUCKET: $S3_BUCKET
COMMAND: 'deploy'
IGNORE_APPLICATION_STOP_FAILURES: 'true'
FILE_EXISTS_BEHAVIOR: 'OVERWRITE'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.