在AWS Codepipeline的自我变异步骤中,可能会发现在“Deployment”阶段中,使用了StackProps配置文件,并为StackProps环境提供了一些参数,如下所示:
- name: Deploy
actions:
- name: Deploy
actionTypeId:
category: Deploy
owner: AWS
provider: CloudFormation
version: 1
configuration:
ActionMode: CREATE_UPDATE
StackName: !Sub '${Application}-${Environment}'
Capabilities: CAPABILITY_NAMED_IAM
TemplatePath: BuildArtifacts::stacktemplate.yaml
RoleArn: !GetAtt CloudFormationRole.Arn
ParameterOverrides: !Sub |
{
"Environment": "${Environment}",
"Parameter1": "${PARAMETER1}",
"Parameter2": "${PARAMETER2}"
}
StackPolicyDuringUpdateBody: !Sub |
{
"Statement": [
{
"Effect": "Allow",
"Action": "Update:*",
"Principal": "*",
"Resource": "*"
}
]
}
StackProps: !ImportValue StackProps-${Environment}
上述代码中的“StackProps”是一个环境变量,它指向了一个存储在AWS Systems Manager Parameter Store中的键/值对。该键/值对包含关于此环境配置的所有信息。在使用Codepipeline和CloudFormation更改堆栈时,会自动将此参数用于所有请求和更新。如果在自我变异步骤中更改了StackProps配置文件,则Codepipeline会自动替换,因此可能会重置StackProps环境。
要解决此问题,可以采取以下步骤:
例如,在将Codepipeline与CloudFormation集成时,可以按照以下方式编写Bash
上一篇:AWSCodePipeline中使用dockercompose发生错误
下一篇:AWSCodePipeline(GitHub)部署到ElasticBeanstalk(Django)时出现“ModuleNotFoundError:找不到名为'my_site'的模块