AwsCustomResource如何设置Lambda运行时?nodejs12.x已不支持
解决AwsCustomResource默认Node.js 12.x运行时不支持的问题
在AWS CDK的AwsCustomResource构造参数中,你可以通过lambdaOptions属性指定Lambda函数的运行时版本,具体操作如下:
- 在
AwsCustomResource的配置对象中添加lambdaOptions字段,通过runtime指定AWS当前支持的Node.js版本(比如NODEJS_20_X、NODEJS_18_X)。 - 确保使用的CDK版本支持该运行时,建议保持CDK为较新的稳定版本。
修改后的代码示例:
import * as lambda from 'aws-cdk-lib/aws-lambda'; import * as cr from 'aws-cdk-lib/custom-resources'; import * as iam from 'aws-cdk-lib/aws-iam'; // 原sdkCall配置保持不变 const sdkCall: cr.AwsSdkCall = { service: 'KMS', action: 'replicateKey', physicalResourceId: cr.PhysicalResourceId.of('CustomResource::KeyReplicaCreation'), parameters: { KeyId: keyId, ReplicaRegion: replicaRegion } }; new cr.AwsCustomResource(this, `example replica`, { onCreate: sdkCall, onUpdate: sdkCall, policy: cr.AwsCustomResourcePolicy.fromStatements([ new iam.PolicyStatement({ effect: iam.Effect.ALLOW, actions: ['kms:*'], resources: ['*'] }) ]), // 添加Lambda运行时配置 lambdaOptions: { runtime: lambda.Runtime.NODEJS_20_X } });
注意事项:
- 优先选择AWS处于**长期支持(LTS)**状态的Node.js版本,避免后续再次出现运行时不兼容问题。
- 若你的CDK版本较旧,需先升级CDK到支持目标运行时的版本。
内容的提问来源于stack exchange,提问作者dead_webdev
相关产品推荐
相关产品推荐

