Мы можем предоставить это имя как CodePipeline, так и выходным данным, извлекая его в раздел Mappings .
В приведенном ниже примере я создал структуру Mappings, которая содержит StackName
. Чтобы использовать функцию !FindInMap
, нам нужна двухуровневая карта , поэтому она выглядит немного сложной. Не стесняйтесь предлагать улучшения:)
Mappings:
MetaInfo:
Names:
StackName: TestStackName
Resources:
MyCodePipeline:
Type: AWS::CodePipeline::Pipeline
Properties:
...
Stages:
...
- Name: Deploy
Actions:
- Name: DeployAction
...
Configuration:
ActionMode: CREATE_UPDATE
StackName: !FindInMap [MetaInfo, Names, StackName]
...
Outputs:
TestStackName:
Description: MyCodePipeline.DeployActionStage.Configuration.TestStackName
Value: !FindInMap [MetaInfo, Names, StackName]
Export:
Name: MyCodePipeline-DeployActionStage-Configuration-TestStackName
Это дает мне следующие результаты в консоли CloudFormation:
Key: TestStackName
Value: TestStackName
Description: MyCodePipeline.DeployActionStage.Configuration.TestStackName
Export name: MyCodePipeline-DeployActionStage-Configuration-TestStackName