Parameters 为不需要参数值的模板指定的参数值
我在cloudFormation模板中声明了一个名为“Env”的参数来指定部署环境,并将其默认值设置为“dev”,我在CodePipeline定义中使用ParametersOverrides来更改每个阶段的“Env”参数的值,为暂存阶段更改“staging”,为部署阶段更改“prod”。构建工作正常,但当涉及到临时部署时,我会看到此图中显示的错误 以下是模板中“我的参数”部分的外观:Parameters 为不需要参数值的模板指定的参数值,parameters,amazon-cloudformation,aws-codepipeline,Parameters,Amazon Cloudformation,Aws Codepipeline,我在cloudFormation模板中声明了一个名为“Env”的参数来指定部署环境,并将其默认值设置为“dev”,我在CodePipeline定义中使用ParametersOverrides来更改每个阶段的“Env”参数的值,为暂存阶段更改“staging”,为部署阶段更改“prod”。构建工作正常,但当涉及到临时部署时,我会看到此图中显示的错误 以下是模板中“我的参数”部分的外观: Parameters: Env: Type: String Default: dev
Parameters:
Env:
Type: String
Default: dev
AllowedValues:
- dev
- staging
- prod
Description: Deployment environment
"name": "Stage",
"actions": [
{
"name": "Stage-Create-ChangeSet",
"actionTypeId": {
"category": "Deploy",
"owner": "AWS",
"provider": "CloudFormation",
"version": "1"
},
"runOrder": 1,
"configuration": {
"ActionMode": "CHANGE_SET_REPLACE",
"Capabilities": "CAPABILITY_IAM,CAPABILITY_NAMED_IAM,CAPABILITY_AUTO_EXPAND",
"ChangeSetName": "lasco-dev-stage-changeset",
"RoleArn": "arn:aws:iam::************:role/CloudFormationLascoRole",
"StackName": "Lasco-Stage",
"TemplatePath": "BuildArtifact::package.yml",
"ParameterOverrides": "{\"Env\" : \"staging\"}"
},
"outputArtifacts": [],
"inputArtifacts": [
{
"name": "BuildArtifact"
}
],
"region": "eu-west-2"
},
{
"name": "Stage-Execute-ChangeSet",
"actionTypeId": {
"category": "Deploy",
"owner": "AWS",
"provider": "CloudFormation",
"version": "1"
},
"runOrder": 2,
"configuration": {
"ActionMode": "CHANGE_SET_EXECUTE",
"ChangeSetName": "lasco-dev-stage-changeset",
"StackName": "Lasco-Stage"
},
"outputArtifacts": [],
"inputArtifacts": [
{
"name": "BuildArtifact"
}
],
"region": "eu-west-2"
},
以下是管道中ParametersOverrides部分的外观:
Parameters:
Env:
Type: String
Default: dev
AllowedValues:
- dev
- staging
- prod
Description: Deployment environment
"name": "Stage",
"actions": [
{
"name": "Stage-Create-ChangeSet",
"actionTypeId": {
"category": "Deploy",
"owner": "AWS",
"provider": "CloudFormation",
"version": "1"
},
"runOrder": 1,
"configuration": {
"ActionMode": "CHANGE_SET_REPLACE",
"Capabilities": "CAPABILITY_IAM,CAPABILITY_NAMED_IAM,CAPABILITY_AUTO_EXPAND",
"ChangeSetName": "lasco-dev-stage-changeset",
"RoleArn": "arn:aws:iam::************:role/CloudFormationLascoRole",
"StackName": "Lasco-Stage",
"TemplatePath": "BuildArtifact::package.yml",
"ParameterOverrides": "{\"Env\" : \"staging\"}"
},
"outputArtifacts": [],
"inputArtifacts": [
{
"name": "BuildArtifact"
}
],
"region": "eu-west-2"
},
{
"name": "Stage-Execute-ChangeSet",
"actionTypeId": {
"category": "Deploy",
"owner": "AWS",
"provider": "CloudFormation",
"version": "1"
},
"runOrder": 2,
"configuration": {
"ActionMode": "CHANGE_SET_EXECUTE",
"ChangeSetName": "lasco-dev-stage-changeset",
"StackName": "Lasco-Stage"
},
"outputArtifacts": [],
"inputArtifacts": [
{
"name": "BuildArtifact"
}
],
"region": "eu-west-2"
},
有人能帮忙吗?你确定
package.yml
是正确的模板还是它的正确版本吗?是的,我正在检查构建输出工件,它是package.yml,我注意到它正在从cloudformation模板中删除参数部分,所以在管道的下一个阶段,即登台部署,cloudformation不希望参数被覆盖,我想这就是为什么我会出现这个错误,我不知道在打包应用程序时如何防止这种情况发生