gpt4 book ai didi

node.js - 使用 AWS CDK 为 lambda 指定自定义角色

转载 作者:搜寻专家 更新时间:2023-10-31 23:03:03 25 4
gpt4 key购买 nike

我知道它很新,但我没有看到任何语言的示例如何为使用 AWS CDK 创建的 lambda 指定角色。

我正在尝试这样做

const cdk       = require('@aws-cdk/cdk');
const lambda = require('@aws-cdk/aws-lambda');
const iam = require('@aws-cdk/aws-iam');

const path = require('path');

class MyStack extends cdk.Stack {
constructor (parent, id, props) {
super(parent, id, props);

//
// Create a lambda...
const fn = new lambda.Function(this, 'MyFunction-cdktest', {
runtime: lambda.Runtime.NodeJS810,
handler: 'index.handler',
code: lambda.Code.directory( path.join( __dirname, 'lambda')),
role: iam.RoleName('lambda_basic_execution')
});

}
}

class MyApp extends cdk.App {
constructor (argv) {
super(argv);

new MyStack(this, 'hello-cdk');
}
}

console.log(new MyApp(process.argv).run());

为了尝试为该函数指定一个现有的 IAM 角色,但这似乎不是正确的语法。我也可以(或者甚至更喜欢)动态生成特定于此 lambda 的自定义角色,但我也没有看到任何有关如何执行此操作的示例。

有没有人知道如何实现这一点?

最佳答案

一个Lambda已经自带了一个执行角色,它已经具备了基本的执行权限。如果您想为其拥有的角色添加额外的权限,请执行以下操作:

import * as iam from '@aws-cdk/aws-iam';

lambda.addToRolePolicy(new iam.PolicyStatement()
.addResource('arn:aws:....')
.addAction('s3:GetThing'));

或者更好的是,使用一种方便的功能来获取某些资源的权限:

bucket.grantRead(lambda.role);

关于node.js - 使用 AWS CDK 为 lambda 指定自定义角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52636929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com