4

我使用网关部署了几个 API。如何以表格格式列出所有这些以及集成类型(如 lambda)和方法响应(如 200)等详细信息?


更新:正如答案中所建议的,我可以使用“get-rest-apis”方法来获取所有 API ID 的列表。json数据可以像这样转换为pandas数据框......

# aws apigateway get-rest-apis --region=us-east-1 > /tmp/to_file.json

import pandas as pd
import json
from pandas.io.json import json_normalize

with open("to_file.json") as f:
    data = json.load(f)

df = json_normalize(data, "items")

df["createdDate"] = pd.to_datetime(df["createdDate"], unit="s").dt.date
df = df.sort_values(["createdDate"])

df["endpointConfiguration.types"] = df["endpointConfiguration.types"].str[0]

但是如何查询以获取每个 ID 的详细信息?


为了全面了解给定 API,我需要查询几个方法,例如 get-integration、get-method-response、get-resource。其中每一个都有不同数量的所需参数,这使得自动化过程非常困难。

4

2 回答 2

4

尽管它可能无法满足您的所有要求(或者可能正是您所需要的),但实现您想要的最简单和最标准化的方法是将您的 REST API 导出为 OpenAPI 格式(以前的“Swagger”格式)。最近向 API Gateway添加了对3.0 版的支持。您可以使用您需要的其他信息来扩充/扩展输出 JSON。

官方文档:https ://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-export-api.html

于 2019-08-27T17:51:35.180 回答
1

Boto 是适用于 Python 的 Amazon Web Services (AWS) 开发工具包。可以通过使用 Python 输出技术以及不同的 Python 数据结构来以表格格式显示输出。

在以下链接中,您可以找到可用于 API 网关部署的 API 参考,以获取使用 API (如get_deployments()get_integration()get_integration_response()等)所需的所有信息:

  1. Boto3 API 网关 API
  2. Boto3 API 网关 v2 API

如果要使用 AWS CLI,可以将--output table参数与相应的 CLI 命令一起使用。例如:aws apigateway get-deployments --rest-api-id 1234123412 --output table

您可以在此处找到 AWS API Gateway 服务的 AWS CLI 命令参考:AWS API Gateway CLI 参考

于 2019-08-26T08:19:30.633 回答