You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Amplify自定义资源中CDK引用REST API如何获取rootResourceId

获取API Gateway rootResourceId的实现方法

同CDK应用内创建的API

如果目标REST API是在当前CDK应用中定义的,不需要手动查询ID:

  • 同一栈内引用:直接访问RestApi实例自带的restApiRootResourceId属性即可,示例代码:
// 你的API创建逻辑
const createdRestApi = new apigateway.RestApi(this, 'RestApi', {
  // 原有API配置
});
// 直接读取属性,无需额外查询
const rootResId = createdRestApi.restApiRootResourceId;
  • 跨栈引用:在API所在的栈将restApiId和restApiRootResourceId通过CfnOutput导出,在消费栈中导入这两个值传入fromRestApiAttributes即可。

已存在的独立API(非当前CDK应用创建)

两种获取方式:

  1. 直接使用固定值:所有API Gateway REST API的根路径(/)对应的资源ID固定为字符串root,直接传入即可正常调用root相关方法,示例:
const restApi = apigateway.RestApi.fromRestApiAttributes(this, 'RestApi', {
  restApiId: dependencies.api.rest.ApiId,
  rootResourceId: 'root'
});
// 后续创建/webhooks路径的逻辑可以正常执行
const queueResource = restApi.root.resourceForPath('/webhooks');
  1. CLI查询方式(极少数固定值不生效的场景使用):执行以下命令,替换占位符为实际的API ID即可拿到根资源ID:
aws apigateway get-resources --rest-api-id 替换为你的REST_API_ID --query "items[?path=='/'].id" --output text

拿到完整的RestApi引用后,即可正常给/webhooks路径创建SQS集成,把端点直接指向SQS而不需要Lambda中转。

内容的提问来源于stack exchange,提问作者Ryan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 06:51:37