AWS CDKで作成するLambda(node.js)とロールをデプロイする方法
前提
CDKプロジェクト作成は「AWS CDKでLambda(node.js)をデプロイする」参照してください。
Lambdaデプロイと同時にロールもデプロイする
デフォルトだと、適当な名前のロールが作成されて、AWSLambdaBasicExecutionRoleしか割り当てられていません。「SecretsManagerReadWrite」も割り当ててみます。
lib配下のts修正
tsファイルを修正します。
import { Stack, StackProps, aws_lambda_nodejs as lambda, Duration } from 'aws-cdk-lib';
import { Construct } from 'constructs';
import { Runtime } from 'aws-cdk-lib/aws-lambda';
import * as iam from 'aws-cdk-lib/aws-iam';
export class Sample001Stack extends Stack {
constructor(scope: Construct, id: string, props?: StackProps) {
super(scope, id, props);
const executionLambdaRole = new iam.Role(
this,
'SampleLambdaExecutionRole',
{
roleName: 'sample-lambda-execution-role',
assumedBy: new iam.ServicePrincipal('lambda.amazonaws.com'),
managedPolicies: [
iam.ManagedPolicy.fromAwsManagedPolicyName(
'service-role/AWSLambdaBasicExecutionRole'
),
iam.ManagedPolicy.fromAwsManagedPolicyName(
'SecretsManagerReadWrite'
)
],
}
);
const index = new lambda.NodejsFunction(this, 'IndexHandler', {
entry: "lambda/index.js",
runtime: Runtime.NODEJS_16_X,
timeout: Duration.minutes(10),
bundling: {
nodeModules: ['@aws-sdk/client-secrets-manager']
},
role: executionLambdaRole
})
}
}
これでデプロイします。
cdk deploy
ロール名が指定した名前で作成されています。
ロールです。
参考サイト
aws-cdk-lib.aws_iam module · AWS CDK
Language | Package

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES20xx),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^




コメント