Наборы изменений версий в AWS Codepipeline и Cloudformation - PullRequest
0 голосов
/ 26 октября 2018

Обычный фрагмент развертывания AWS Cloudformation CodePipeline выглядит следующим образом:

        - Name: CreateChangeSet
          ActionTypeId:
            Category: Deploy
            Owner: AWS
            Version: '1'
            Provider: CloudFormation
          Configuration:
            ActionMode: CHANGE_SET_REPLACE
            RoleArn: ...
            StackName: ...
            ChangeSetName: deploy-commit
            TemplatePath: ...
            Capabilities: CAPABILITY_IAM
          InputArtifacts:
            - Name: ...
          RunOrder: 1

        - Name: ExecuteChangeSet
          ActionTypeId:
            Category: Deploy
            Owner: AWS
            Provider: CloudFormation
            Version: '1'
          Configuration:
            ActionMode: CHANGE_SET_EXECUTE
            ChangeSetName: deploy-commit
            RoleArn: ..
            StackName: ...
          RunOrder: 2

Мы создаем набор изменений и выполняем. Есть ли шаблон или способ, с помощью которого мы можем получить уникальный ChangeSetName для каждого нового выпуска. Причина CHANGE_SET_REPLACE удаляет предыдущий и создает новый с тем же именем, и поэтому мы потеряли историю.

1 Ответ

0 голосов
/ 27 октября 2018

Ваше исходное действие, GitHub или CodeCommit, должно уже иметь историю изменений. Но, согласно вашему запросу, к сожалению, CloudFormation CodePipeline не поддерживает создание набора изменений с разными именами для каждого выполнения. Все возможные режимы действий перечислены в следующей ссылке, и ни один из них не поддерживает создание набора изменений с разными именами для каждого выполнения. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-action-reference.html#w2ab1c13c13b9

Одним из возможных подходов к удовлетворению ваших потребностей является написание собственного пользовательского типа действия CloudFormation с использованием CodeBuild, Lambda invoke или настраиваемого типа действия. Вы можете иметь собственную реализацию для вызова API CloudFormation для создания набора изменений с новыми именами и развертывания набора изменений. Дополнительную информацию о типе настраиваемого действия можно найти по адресу https://docs.aws.amazon.com/codepipeline/latest/userguide/actions-create-custom-action.html

...