确认Lambda函数已经部署,函数名称和Arn已经正确
确认API网关部署在同一个AWS账号
使用AWS CDK创建API网关,并将它与Lambda函数关联,代码示例如下:
import * as cdk from '@aws-cdk/core'
import * as apigateway from '@aws-cdk/aws-apigateway'
import * as lambda from '@aws-cdk/aws-lambda'
export class MyStack extends cdk.Stack {
constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
super(scope, id, props)
// 创建lambda函数
const myLambdaFunction = new lambda.Function(this, 'myLambda', {
runtime: lambda.Runtime.NODEJS_10_X,
code: lambda.Code.fromAsset('path/to/lambda/code'),
handler: 'index.handler',
})
// 创建API Gateway
const api = new apigateway.RestApi(this, 'myApi', {
restApiName: 'My test rest api',
})
// 创建默认的Lambda集成
const myLambdaIntegration = new apigateway.LambdaIntegration(myLambdaFunction)
api
.root
.addMethod('GET', myLambdaIntegration)
}
}
import * as cdk from '@aws-cdk/core'
import * as lambda from '@aws-cdk/aws-lambda'
import * as apigateway from '@aws-cdk/aws-apigateway'
export class MyStack extends cdk.Stack {
constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
super(scope, id, props)
// 创建lambda函数
const myLambdaFunction = new lambda.Function(this, 'myLambda', {
runtime: lambda.Runtime.NODEJS_10_X,
code: lambda.Code.fromAsset('path/to/lambda/code'),
handler: 'index.handler',
})
// 创建API Gateway
const api = new apigateway.RestApi(this, 'myApi', {
restApiName: 'My