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(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント