amazon-web-services - 如何使用 AWS CDK 更新现有 SSM 参数

标签 amazon-web-services aws-cloudformation aws-cdk aws-ssm

我想使用 AWS CDK 更新 SSM 参数。

我的用例:在第一个堆栈中,我正在创建 SSM 参数。在第二个堆栈中想要更新(更改)它。我遇到的解决方案之一是使用 lambda,我想避免它。

这是一种通过 CDK 更新现有参数的方法,也许是 cfn_param.set_value

第一堆:

    class ParamSetupStack(Stack):
    
        def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None:
            super().__init__(scope, construct_id, **kwargs)
    
    
    
            ssm.StringParameter( self,
                                f'PIPELINE-PARAM-1',
                                parameter_name="parma-1",
                                string_value="SOME STRING VALUE",
                                description="Desctiption of ...."
                                )

第二个堆栈:

    class UpdateParamStack(Stack):
    
        def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None:
            super().__init__(scope, construct_id, **kwargs)
    
            template = cfn_inc.CfnInclude(self, "Template",
                                      template_file="PATH/TO/ParamSetupStack.json",
                                      preserve_logical_ids=False)
    
            cfn_param = template.get_resource("PIPELINE-PARAM-1")
    
            cfn_param.set_value("NEW VALUE")

最佳答案

您最好的选择是避免此要求。跨堆栈资源修改使您的 IaaC 难以推理并引入部署时副作用。并且让CDK最佳实践众神交叉。

如果您绝对必须,您可以使用 Custom Resource更改另一个堆栈中定义的资源。 AwsCustomResource构造(在幕后使用 lambda)可以在部署生命周期中执行任意 SDK 命令。

注释:

  1. from_string_parameter_name 这样的类方法是 import read-only versions of existing resources 的惯用方式。 。这些对您的情况没有帮助。
  2. 解析 CDK 生成的模板(如 OP 中所示)是一种反模式,无论如何都无法解决您的问题。

关于amazon-web-services - 如何使用 AWS CDK 更新现有 SSM 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71328933/

相关文章:

amazon-web-services - 如何访问CDK创建的EC2实例?

amazon-web-services - 使用 CloudFormation 调整 Redshift 集群的大小

javascript - 如何找到我刚刚上传到 S3 的流的总大小?

python - 使用 Airflow 从 S3 进行批处理

json - 通过cloudformation创建IAM角色时policyName出错

amazon-web-services - 使用 AWS CDK 将 Lambda 触发器添加到导入的 Cognito 用户池

python-3.x - CloudFormation 堆栈删除无法删除 VPC

amazon-web-services - AWS CloudFormation 代码构建 : Can i use ECR image as Environment image

amazon-web-services - 从 cloudformation 在 API Gateway 中获得意外结果

aws-cloudformation - 如何在AWS CDK中引用生成的域名 `elasticsearch.CfnDomain`?