2017-09-24 7 views
2

je tentais de mettre en place le code AWS Pipeline avec AWS SAM pour Lambda en utilisant Java-8 comme indiqué dans lesnuage AWS Formation Coincé dans Review_In_Progress

documentation

http://docs.aws.amazon.com/lambda/latest/dg/automating-deployment.html (exemple dans Node.js bien).

Cependant, mon staging est bloqué à CloudFormation Stack est coincé dans REVIEW_IN_PROGRESS depuis longtemps. Est-il possible de déboguer ce problème?

Je ne vois aucun autre événement entrant dans la console. Y a-t-il des choses spécifiques à vérifier?

Le modèle est le suivant

$ aws codepipeline get-pipeline --region us-east-1 --name aws-lexbot-facebook-pipeline 
{ 
    "pipeline": { 
     "roleArn": "arn:aws:iam::XXXXXXXXXXXX:role/AWS-CodePipeline-Service", 
     "stages": [ 
      { 
       "name": "Source", 
       "actions": [ 
        { 
         "inputArtifacts": [], 
         "name": "Source", 
         "actionTypeId": { 
          "category": "Source", 
          "owner": "ThirdParty", 
          "version": "1", 
          "provider": "GitHub" 
         }, 
         "outputArtifacts": [ 
          { 
           "name": "MyApp" 
          } 
         ], 
         "configuration": { 
          "Owner": “xxxxxxx”, 
          "Repo": "lexbot", 
          "PollForSourceChanges": "true", 
          "Branch": "master", 
          "OAuthToken": "****" 
         }, 
         "runOrder": 1 
        } 
       ] 
      }, 
      { 
       "name": "Build", 
       "actions": [ 
        { 
         "inputArtifacts": [ 
          { 
           "name": "MyApp" 
          } 
         ], 
         "name": "CodeBuild", 
         "actionTypeId": { 
          "category": "Build", 
          "owner": "AWS", 
          "version": "1", 
          "provider": "CodeBuild" 
         }, 
         "outputArtifacts": [ 
          { 
           "name": "MyAppBuild" 
          } 
         ], 
         "configuration": { 
          "ProjectName": "aws-lexbot-facebook-codebuild" 
         }, 
         "runOrder": 1 
        } 
       ] 
      }, 
      { 
       "name": "Staging", 
       "actions": [ 
        { 
         "inputArtifacts": [ 
          { 
           "name": "MyAppBuild" 
          } 
         ], 
         "name": "LexBotBetaStack", 
         "actionTypeId": { 
          "category": "Deploy", 
          "owner": "AWS", 
          "version": "1", 
          "provider": "CloudFormation" 
         }, 
         "outputArtifacts": [], 
         "configuration": { 
          "ActionMode": "CHANGE_SET_REPLACE", 
          "ChangeSetName": "LexBotChangeSet", 
          "RoleArn": "arn:aws:iam::XXXXXXXXXXX:role/cloudformation-lambda-execution-role", 
          "Capabilities": "CAPABILITY_IAM", 
          "StackName": "LexBotBetaStack", 
          "TemplatePath": "MyAppBuild::SamTemplate.yaml" 
         }, 
         "runOrder": 1 
        } 
       ] 
      } 
     ], 
     "artifactStore": { 
      "type": "S3", 
      "location": “XXXXXX-us-east-1-987802409920" 
     }, 
     "name": "aws-lexbot-facebook-pipeline", 
     "version": 1 
    } 
} 
+0

Pouvez-vous publier les étapes CodePipeline? –

+0

Salut .. J'ai édité le poste avec le modèle – Idicula

Répondre

3

Vue d'ensemble

Dans votre étape de CodePipeline, vous utilisez le mode d'action CHANGE_SET_CREATE. Cela crée une modification définie sur la CloudFormation Stack, mais ne l'exécute pas automatiquement. Vous auriez besoin d'une seconde action qui exécute l'ensemble de modifications en utilisant CHANGE_SET_EXECUTE. Alternativement, vous pouvez changer le mode d'action sur votre action à CREATE_UPDATE qui devrait directement mettre à jour votre action. L'une des raisons pour lesquelles vous voudrez utiliser CHANGE_SET_CREATE et CHANGE_SET_EXECUTE dans CodePipeline, c'est si vous voulez avoir une étape d'approbation entre eux. Si vous vous attendez à ce que cela soit complété automatiquement, je recommanderais CREATE_UPDATE.

exemple CREATE_UPDATE

Ci-dessous est votre CodePipeline Mise en scène stade, mais en utilisant CREATE_UPDATE au lieu de CREATE_CHANGE_SET. Cela crée une nouvelle pile nommée stack, ou met à jour la pile existante si une pile de ce nom existe déjà.

{ 
    "inputArtifacts": [ 
     { 
      "name": "MyAppBuild" 
     } 
    ], 
    "name": "LexBotBetaStack", 
    "actionTypeId": { 
     "category": "Deploy", 
     "owner": "AWS", 
     "version": "1", 
     "provider": "CloudFormation" 
    }, 
    "outputArtifacts": [], 
    "configuration": { 
     "ActionMode": "CREATE_UPDATE", 
     "ChangeSetName": "LexBotChangeSet", 
     "RoleArn": "arn:aws:iam::XXXXXXXXXXX:role/cloudformation-lambda-execution-role", 
     "Capabilities": "CAPABILITY_IAM", 
     "StackName": "LexBotBetaStack", 
     "TemplatePath": "MyAppBuild::SamTemplate.yaml" 
    }, 
    "runOrder": 1 
} 

CHANGE_SET_CREATE et exemple CHANGE_SET_EXECUTE

Voici un exemple de la façon dont vous pouvez utiliser CHANGE_SET_CREATE et CHANGE_SET_EXECUTE ensemble. Il crée d'abord un ensemble de modifications, sur la pile nommée, puis exécute cet ensemble de modifications. C'est vraiment utile si vous voulez avoir une étape d'approbation de CodePipeline entre l'ensemble de modifications, et l'exécuter, afin que vous puissiez examiner les changements prévus.

{ 
    "inputArtifacts": [ 
     { 
      "name": "MyAppBuild" 
     } 
    ], 
    "name": "LexBotBetaStackChangeSet", 
    "actionTypeId": { 
     "category": "Deploy", 
     "owner": "AWS", 
     "version": "1", 
     "provider": "CloudFormation" 
    }, 
    "outputArtifacts": [], 
    "configuration": { 
     "ActionMode": "CHANGE_SET_REPLACE", 
     "ChangeSetName": "LexBotChangeSet", 
     "RoleArn": "arn:aws:iam::XXXXXXXXXXX:role/cloudformation-lambda-execution-role", 
     "Capabilities": "CAPABILITY_IAM", 
     "StackName": "LexBotBetaStack", 
     "TemplatePath": "MyAppBuild::SamTemplate.yaml" 
    }, 
    "runOrder": 1 
}, 
{ 
    "name": "LexBotBetaStackExecute", 
    "actionTypeId": { 
     "category": "Deploy", 
     "owner": "AWS", 
     "version": "1", 
     "provider": "CloudFormation" 
    }, 
    "configuration": { 
     "ActionMode": "CHANGE_SET_EXECUTE", 
     "ChangeSetName": "LexBotChangeSet", 
     "StackName": "LexBotBetaStack", 
    }, 
    "runOrder": 2 
} 
+0

Merci pour vos explications. J'ai essayé les deux. Le premier travail (CREATE_UPDATE) travail. Mais en ajoutant une seconde étape d'exécution travaillée. – Idicula

+0

Cool, si cela résout votre problème, voulez-vous le marquer comme accepté? De cette façon, les personnes ayant des problèmes similaires peuvent trouver la réponse de manière plus fiable. –

+0

J'ai simplement accepté cette réponse. Merci encore une fois – Idicula