簡體   English   中英

使用 Bitbucket 管道使用 AWS CodeDeploy 部署到多個 AWS 區域

[英]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.ymlupload一個

查看此博客文章使用 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM