string, props?: cdk.StackProps) { super(scope, id, props) const queue = new sqs.Queue(this, 'RequestQueue') const processor = new lambdaNodejs.NodejsFunction(this, 'Processor', { entry: path.join(__dirname, '../lambda/processor.ts'), handler: 'handler', runtime: lambda.Runtime.NODEJS_24_X, n environment: { QUEUE_URL: queue.queueUrl, }, }) processor.addEventSource( new lambdaEventSources.SqsEventSource(queue), ) const api = new apigateway.RestApi(this, 'Api') const integrationRole = new iam.Role(this, 'ApiGwSqsRole', assumedBy: new iam.ServicePrincipal('apigateway.amazonaws.com') }) 簡単な構成を AWS CDKで作成する queue.grantSendMessages(integrationRole) const sqsIntegration = new apigateway.AwsIntegration({ service: 'sqs', path: `${cdk.Aws.ACCOUNT_ID}/${queue.queueName}`, integrationHttpMethod: 'POST', options: { credentialsRole: integrationRole, ==== 略 ==== }, }) const messages = api.root.addResource('messages') messages.addMethod('POST', sqsIntegration, { methodResponses: [ { statusCode: '200' }, ], }) } }