AWS CDK Grant Lambda DynamoDB FullAccess

У меня есть лямбда, с которой я хочу иметь возможность создавать таблицы динамо-базы данных (не только для доступа, но и для создания таблиц с динамическими именами).

const lambdaA = new lambda.Function(this, 'lambda-a', {
  functionName: 'lambda-a',
  memorySize: 256,
  runtime: lambda.Runtime.NODEJS_12_X,
  handler: 'index.handler',
  code: lambda.Code.fromAsset(path.join(require.resolve('/lambda-a'), '..')),
});

Как это сделать с помощью AWS CDK?

Думаю, мне нужно как-то добавить политику AmazonDynamoDBFullAccess (или другую политику, позволяющую создавать таблицы) к роли выполнения лямбды.


person Simon Verhoeven    schedule 02.12.2020    source источник


Ответы (1)


Может сделать что-то вроде этого

const lambdaARole = new iam.Role(this, 'LambdaRole', {
  assumedBy: new iam.ServicePrincipal('lambda.amazonaws.com'),
});

lambdaARole.addManagedPolicy(
  ManagedPolicy.fromAwsManagedPolicyName('AmazonDynamoDBFullAccess')
);

const lambdaA = new lambda.Function(this, 'lambda-a', {
  functionName: 'lambda-a',
  memorySize: 256,
  runtime: lambda.Runtime.NODEJS_12_X,
  handler: 'index.handler',
  code: lambda.Code.fromAsset(path.join(require.resolve('/lambda-a'), '..')),
  role: lambdaARole,
});

person maafk    schedule 03.12.2020