CDK LambdaRestAPI 没有根路径方法

问题描述 投票:0回答:1

我正在尝试通过 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'
  }
});

但是,这会创建一个如下所示的 API 网关: enter image description here

当我过去在没有 CDK 的情况下完成此操作时,我总是在顶级根“/”路径上创建没有任何方法的资源,如下所示: enter image description here

有没有办法通过 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) });
amazon-web-services aws-lambda aws-api-gateway aws-cdk
1个回答
0
投票

我想知道

anyMethod
属性是否符合您的要求?

api.root.addProxy({ 
  anyMethod: false, 
  defaultIntegration: new LambdaIntegration(helloLambda) 
});
© www.soinside.com 2019 - 2024. All rights reserved.