Ошибка развертывания кода в разных регионах.(AWS Codepipeline)

#amazon-web-services #aws-codepipeline

#amazon-web-services #aws-codepipeline

Вопрос:

Я пытаюсь выполнить развертывание в разных регионах с ap-southeast-1 на ap-northeast-1, используя AWS CodePipeline. Но приведенная ниже ошибка произошла на этапе развертывания. Я установил s3 полный доступ к CodeStarWorker-test-ToolChain.


ReplicationStatus Репликация артефакта ‘test-BuildArtifact’
не удалась: не удалось выполнить репликацию артефакта из
source_backet в ap-southeast-1
в dest_backet в ap-northeast-1: проверить, существуют ли исходные и целевые
корзины артефактов и
arn: aws: iam::xxxxxxx: role/ CodeStarWorker-test-ToolChain имеет
разрешение на доступ к нему.


Я установил приведенную ниже конфигурацию для развертывания конвейера. Есть ли у кого-нибудь такая же ошибка и знает ли он о резервировании?

                {
                 "name": "Deploy", 
                 "actions": [
                     {
                         "region": "ap-northeast-1",
                         "inputArtifacts": [
                             {
                                 "name": "test-BuildArtifact"
                             }
                         ], 
                         "name": "GenerateChangeSet", 
                         "actionTypeId": {
                             "category": "Deploy", 
                             "owner": "AWS", 
                             "version": "1", 
                             "provider": "CloudFormation"
                         }, 
                         "outputArtifacts": [], 
                         "configuration": {
                             "ActionMode": "CHANGE_SET_REPLACE", 
                             "ChangeSetName": "pipeline-changeset", 
                             "RoleArn": "arn:aws:iam:: xxxxxxx:role/CodeStarWorker-test-CloudFormation", 
                             "Capabilities": "CAPABILITY_NAMED_IAM", 
                             "StackName": "awscodestar-test-lambda", 
                             "ParameterOverrides": "{"ProjectId":"test2",
 "CodeDeployRole":"arn:aws:iam:: xxxxxxx:role/CodeStarWorker-test-CodeDeploy"}",

                             "TemplateConfiguration": "test-BuildArtifact::template-configuration.json", 
                             "TemplatePath": "test-BuildArtifact::template.yml"
                         }, 
                         "runOrder": 1
                     }, 
                     {
                         "region": "ap-northeast-1",
                         "inputArtifacts": [], 
                         "name": "ExecuteChangeSet", 
                         "actionTypeId": {
                             "category": "Deploy", 
                             "owner": "AWS", 
                             "version": "1", 
                             "provider": "CloudFormation"
                         }, 
                         "outputArtifacts": [], 
                         "configuration": {
                             "StackName": "awscodestar-test-lambda", 
                             "ActionMode": "CHANGE_SET_EXECUTE", 
                             "ChangeSetName": "pipeline-changeset"
                         }, 
                         "runOrder": 2
                     }
                 ]
             }
         ], 
         "artifactStores": {
             "ap-southeast-1": {
                 "type": "S3", 
                 "location": "source_backet"
             },
             "ap-northeast-1": {
                 "type": "S3", 
                 "location": "dest_backet"
             }
         }, 
         "name": "test-Pipeline", 
         "version": 1
     }
  

Ответ №1:

Когда я увидел эту ошибку, это было одно из двух.

  1. У вас не реплицирована корзина S3 в корзину, используемую во втором регионе. https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html
  2. Ваш шаг выполняется до завершения репликации.

Если это последнее, я всегда могу повторно запустить шаг, и он завершится успешно. Похоже, проблема в том, что репликация S3 выполняется недостаточно быстро.

Комментарии:

1. Спасибо за ваш ответ. Я перепроверю CRR.

2. @D.Yamashita вы когда-нибудь находили решение этой проблемы? Я сталкиваюсь с той же проблемой, и нигде в документации AWS не указано, что CRR требуется для ваших хранилищ артефактов.

3. @Jason, извини за опоздание. Спасибо за комментарий.

4. @Johnrad Я не смог решить эту проблему. Но CodeStar был выпущен в ap-northeast-1 reagion. Таким образом, репликация не была необходимой…

5. CodePipeline теперь выполняет репликацию за вас, но вы должны предоставить роли, которую использует конвейер, соответствующие разрешения. Это значительное улучшение, поскольку он может обрабатывать более двух регионов и у него нет проблемы с незавершением репликации.