如何获取API Gateway指定deployment关联的resource policy?
获取API Gateway指定Stage关联Deployment的Resource Policy操作步骤
前提说明
API Gateway每次部署生成的Deployment都是独立的配置快照,当前Stage生效的所有规则(包括Resource Policy)都存在对应Deployment快照中,和当前API未部署的编辑态配置相互独立。
方法一:通过AWS CLI获取
- 首先查询目标Stage绑定的Deployment ID
- 针对REST API:
aws apigateway get-stage --rest-api-id <替换为你的REST API ID> --stage-name <替换为目标Stage名称> --query 'deploymentId' --output text - 针对HTTP API:
aws apigatewayv2 get-stage --api-id <替换为你的HTTP API ID> --stage-name <替换为目标Stage名称> --query 'deploymentId' --output text
- 针对REST API:
- 拉取对应Deployment快照中的Resource Policy配置
- 针对REST API:
aws apigateway get-deployment --rest-api-id <替换为你的REST API ID> --deployment-id <替换为上一步获取的Deployment ID> --query 'apiSummary' --output json
返回结果中可直接提取该次部署生效的Resource Policy内容。 - 针对HTTP API:
aws apigatewayv2 get-deployment --api-id <替换为你的HTTP API ID> --deployment-id <替换为上一步获取的Deployment ID> --query 'ApiSummary' --output json
- 针对REST API:
方法二:通过AWS控制台获取
- 登录AWS控制台,进入API Gateway服务页,选择对应的API实例
- 左侧导航栏点击「Stages」选项,选中你要查询的目标Stage
- 进入Stage详情页后,切换到「Deployment history」标签,可看到该Stage所有历史部署记录
- 点击你需要查询的Deployment ID,即可查看该次部署时生效的全量配置,包含Resource Policy内容
快速对比配置差异技巧
分别导出正常版本和故障版本Deployment的Resource Policy内容,存为两个独立文件后,使用diff命令即可快速定位配置差异点。
注意:部署后未重新推送的API配置修改不会同步到当前Stage的生效Deployment中,仅会保存在API的编辑态中。
内容的提问来源于stack exchange,提问作者Dan Monego
相关产品推荐
相关产品推荐

