在 AWS CDK 中,我们可以通过以下方式有条件地为 Lambda 函数创建 IAM 角色:
const role = new iam.Role(this, 'LambdaExecutionRole', {
assumedBy: new iam.ServicePrincipal('lambda.amazonaws.com'),
roleName: 'my-lambda-role'
});
const lambdaFunc = new lambda.Function(this, 'MyLambdaFunction', {
code: new lambda.AssetCode('lambda-code'),
handler: 'index.handler',
runtime: lambda.Runtime.NODEJS_10_X,
role: role
});
const createRole = new cdk.CfnParameter(this, 'CreateLambdaRole', {
type: 'String',
default: 'false',
allowedValues: ['true', 'false'],
description: 'Create new Lambda execution role'
});
if (createRole.valueAsString === 'true') {
role = new iam.Role(this, 'LambdaExecutionRole', {
assumedBy: new iam.ServicePrincipal('lambda.amazonaws.com'),
roleName: 'my-lambda-role'
});
// Attach policies to the role here
}
const lambdaFunc = new lambda.Function(this, 'MyLambdaFunction', {
code: new lambda.AssetCode('lambda-code'),
handler: 'index.handler',
runtime: lambda.Runtime.NODEJS_10_X,
role: role
});
cdk deploy --parameters CreateLambdaRole=true
以上代码示例展示了如何使用 AWS CDK 在 Lambda 函数中有条件地创建 IAM 角色。通过使用 cdk.CfnParameter,我们可以为创建 IAM 角色提供条件。
上一篇:AWSCDK-无法通过Cloudfront域名访问ALB
下一篇:awscdk/cloudformationautoscalingdontstartinstancebeforelifecyclehookisenabled