Parameters 为不需要参数值的模板指定的参数值

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

我在cloudFormation模板中声明了一个名为“Env”的参数来指定部署环境,并将其默认值设置为“dev”,我在CodePipeline定义中使用ParametersOverrides来更改每个阶段的“Env”参数的值,为暂存阶段更改“staging”,为部署阶段更改“prod”。构建工作正常,但当涉及到临时部署时,我会看到此图中显示的错误

以下是模板中“我的参数”部分的外观:

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不希望参数被覆盖,我想这就是为什么我会出现这个错误,我不知道在打包应用程序时如何防止这种情况发生