我正在尝试通过 CDK 创建一个 LambdaRestApi 以及 这个研讨会。
// Define aws lambda resource
const helloLambda = new Function(this, 'HelloHandler', {
runtime: Runtime.NODEJS_20_X,
code: Code.fromAsset('lambda'),
handler: 'hello.handler'
});
// Define an API GW Rest API
const api = new LambdaRestApi(this, 'Endpoint', {
handler: helloLambda,
deployOptions: {
stageName: 'development'
}
});
当我过去在没有 CDK 的情况下完成此操作时,我总是在顶级根“/”路径上创建没有任何方法的资源,如下所示:
有没有办法通过 CDK LambdaRestApi 来实现这一点?我尝试过这些选项,包括设置
proxy: false
并将代理集成手动添加到 RestApi 而不是 LambdaRestApi。我不清楚为什么如果您使用代理,您会希望这些方法位于顶级路径上。
我尝试直接添加代理,发现根路径方法仍然被创建。
// Define aws lambda resource
const helloLambda = new Function(this, 'HelloHandler', {
runtime: Runtime.NODEJS_20_X,
code: Code.fromAsset('lambda'),
handler: 'hello.handler'
});
// Define an API GW Rest API
const api = new RestApi(this, 'Endpoint', {
deployOptions: {
stageName: 'development'
}
});
api.root.addProxy({ defaultIntegration: new LambdaIntegration(helloLambda) });
我想知道
anyMethod
属性是否符合您的要求?
api.root.addProxy({
anyMethod: false,
defaultIntegration: new LambdaIntegration(helloLambda)
});