You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用CDK阻止栈内Lambda资源被意外更新的方法咨询

在AWS CDK中配置CloudFormation栈策略保护Lambda资源

核心解决方案

CDK的Stack类提供了addStackPolicyStatement方法,可直接在代码中添加栈策略规则,阻止指定Lambda资源被更新。

代码示例(TypeScript)

import { Stack, StackProps, aws_lambda as lambda, CfnStackPolicy } from 'aws-cdk-lib';
import { Construct } from 'constructs';

export class MyLambdaStack extends Stack {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props);

    // 定义需要保护的Lambda函数
    const protectedLambda = new lambda.Function(this, 'ProtectedLambda', {
      runtime: lambda.Runtime.NODEJS_20_X,
      handler: 'index.handler',
      code: lambda.Code.fromAsset('./lambda-src'),
    });

    // 添加栈策略,禁止对该Lambda执行任何更新操作
    this.addStackPolicyStatement(new CfnStackPolicy({
      effect: 'Deny',
      principals: ['*'],
      actions: ['Update:*'],
      resources: [protectedLambda.functionArn],
    }));
  }
}

关键说明

  • 该策略会阻止CloudFormation对目标Lambda执行任何更新操作,包括因栈内其他资源变更触发的Lambda重新部署
  • 若需要临时更新该Lambda,可通过AWS控制台手动修改栈策略,或临时注释CDK中的策略代码后重新部署
  • 确保resources字段正确引用Lambda的ARN,CDK会自动解析资源的ARN值,无需硬编码

内容的提问来源于stack exchange,提问作者therealdakotal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 07:02:34