AWSCodepipeline自我变异步骤重置了StackProps环境
创始人
2024-09-24 12:32:33
0

在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环境。

要解决此问题,可以采取以下步骤:

  1. 将“StackProps”指向一个新的键/值对。
  2. 在为新的StackProps环境设置参数时,确保在自我变异阶段之后不会更新StackProps环境。
  3. 编写一个Bash脚本,用于从AWS Systems Manager Parameter Store中读取StackProps环境的键/值对,将其保存在本地文件系统中,并将其提供给Codepipeline进行使用。
  4. 将Bash脚本添加到AWS Codebuild上,并在部署环节中调用此脚本来替换StackProps配置文件。

例如,在将Codepipeline与CloudFormation集成时,可以按照以下方式编写Bash

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...