如何让AWS CDK自动查询不同区域的参数与密钥Lambda扩展层ARN?
在AWS CDK中自动获取多区域的AWS参数与密钥Lambda扩展层ARN
当然可以实现,不需要逐个区域硬编码ARN。AWS官方提供的AWS-Parameters-and-Secrets-Lambda-Extension-Arm64层,在所有支持的区域中使用固定的账号ID(177933569100),ARN格式统一为arn:aws:lambda:{区域ID}:177933569100:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:{版本号}。
你可以通过CDK的Stack.of(this).region方法自动获取当前栈部署的区域,动态拼接出对应区域的层ARN,代码示例如下:
from aws_cdk import Stack, aws_lambda as lambda_ # 在Lambda函数定义的上下文内 region = Stack.of(this).region # 替换版本号为你需要的版本,当前示例为2 params_secrets_layer_arn = f"arn:aws:lambda:{region}:177933569100:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:2" # 然后在Lambda的layers参数中使用 lambda_function = lambda_.Function( self, "MyLambda", # 其他配置(运行时、代码路径等)... layers=[lambda_.LayerVersion.from_layer_version_arn( "AWS-Parameters-and-Secrets-Lambda-Extension-Layer-ARM64", params_secrets_layer_arn )] )
这样不管你的流水线部署到哪个区域,CDK都会自动生成对应区域的层ARN,无需手动维护多区域的ARN列表。需要注意的是,如果后续官方更新了层的版本号,你需要同步调整代码中的版本号部分。
内容的提问来源于stack exchange,提问作者Jack Rogers
相关产品推荐
相关产品推荐

