部署 AWS API
Amazon API Gateway 使开发人员能够发布和管理访问 AWS 和其他网络服务和数据源的 API。连接到 API 网关后,你可以从 Postman 中查看 API 部署状态和历史记录。你还可以查看每个阶段的 Amazon CloudWatch 指标,以深入了解你的 API 的运营情况。
此集成支持 HTTP 和 REST API 的 OpenAPI 3.0 定义。你可以从 Amazon API Gateway 导入定义并在 Postman 中使用它。对于 HTTP API,你可以选择将你的定义从 Postman 导出到 API Gateway。你可以使用 AWS 控制台将导出的定义部署到阶段,或直接从 Postman 将 HTTP API 定义部署到阶段。
连接到亚马逊 API 网关
要连接到 Postman 中的 Amazon API Gateway,请在边栏中选择API ,然后选择一个 API。选择部署,然后选择AWS API Gateway。
在设置与 API 网关的连接时,你可以选择通过创建 AWS IAM 角色或使用 AWS 访问密钥进行身份验证。按照你选择的方法执行以下步骤:
当你删除 API 或将其从工作空间中移除时,不会删除或移除任何已配置的集成。在 Postman主页上,选择Integrations并搜索“AWS API Gateway”以查看 AWS API 网关集成 列表。要删除集成,请选择它,然后选择删除集成。
使用 AWS IAM 角色进行身份验证
要使用 AWS IAM 角色设置与 Amazon API Gateway 的连接,请在AWS Authentication Mechanism 下选择**IAM**。
输入此集成的昵称并选择AWS API 类型(HTTP 或 REST)。
要在 AWS 中为 Postman 创建 IAM 角色,请执行以下操作:
打开 AWS IAM 控制台 并选择创建角色。
在选择受信任实体的类型下,选择另一个 AWS 账户。
输入 Postman 的AWS 账户 ID:
258201882842
在选项下,选中需要外部 ID复选框并输入来自 Postman 的外部 ID。你可以在第 1 步:创建 IAM 角色下找到外部 ID 。
有关更多信息,请参阅 有关使用外部 ID 的 AWS IAM 指南 。
选择下一步:权限。
选择现有的 IAM 策略或选择创建策略。如果要创建策略,请使用以下 JSON 代码:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt909923626743",
"Effect": "Allow",
"Action": [
"apigateway:GET",
"apigateway:PUT",
"apigateway:POST",
"cloudwatch:GetMetricData"
],
"Resource": [
"*"
]
}
]
}此策略将为 HTTP API 定义启用导出和部署。(REST API 定义不支持导出和部署。)你可以
Action
根据需要自定义 IAM 策略中的部分:"apigateway:GET"
-(必需)允许在 Postman 中查看 HTTP 和 REST API 的 API 网关部署。"apigateway:PUT"
- 允许将 HTTP API 定义 导出 到 API 网关。"apigateway:POST"
- 允许将 HTTP API 定义 部署 到 API 网关上的一个阶段。"apigateway:*"
- 将所有 GET、PUT、POST、PATCH、DELETE 权限分配给 IAM 角色。"cloudwatch:GetMetricData"
- 允许在 Postman 中 查看 CloudWatch 指标 。
选择下一步:标签。
选择下一步:审查。
添加角色名称和角色描述,然后选择创建角色。
从 AWS 复制Role ARN并将其粘贴到 Postman 中的Step 2: Enter role ARN and region下。接下来进入 API 网关所在的AWS 区域,选择**API 网关。准备就绪后,选择“连接”**。
使用 AWS 访问密钥进行身份验证
要使用 AWS 访问密钥设置与 Amazon API Gateway 的连接,请选择AWS 身份验证机制下的访问密钥。
接下来,输入有关连接的信息:
- 输入此集成的昵称。
- 选择AWS API 类型(HTTP 或 REST)。
- 输入你的 AWS 账户的访问密钥 ID和秘密访问密钥。(了解如何 在 AWS 中查找你的凭证 。)
- 进入 API 网关所在的AWS 区域,选择**API 网关**。
准备就绪后,选择“连接”。
导入定义
建立连接后,你可以选择从 API 网关导入 HTTP 或 REST 定义:
- 要导入定义,请选择要从中导入定义的AWS 阶段,然后选择**导入**。导入定义将替换你当前的 API 定义或添加一个新定义(如果不存在)。
- 如果你不想导入定义,请选择Maybe later。连接到 Amazon API Gateway 后,你可以随时 导入定义。
查看 Amazon API Gateway 部署
连接到 Amazon API Gateway 后,你可以在 Postman 中查看 API 定义的导出和部署历史记录。在边栏中选择API ,然后选择一个 API。选择部署。
- 对于每个阶段,你都可以查看活动部署和上次更新日期。你还可以查看上周的 CloudWatch 指标,例如平均延迟和
4xx
错误数量5xx
。- 选择阶段旁边的箭头以查看更多详细信息,包括调用 URL 和阶段描述(来自 AWS)。
- 选择阶段名称以在 CloudWatch 仪表板上 查看指标。
- 对于 Postman 的每一次导出,你都可以查看导出的来源和导出的时间。
- 对于每个部署,你可以查看部署 ID、描述和创建日期。
在Deployments视图中,你可以执行以下操作:
查看 CloudWatch 指标
Amazon CloudWatch 为部署到 Amazon API Gateway 的 API 提供监控和可观察性。默认情况下,API Gateway 指标数据每隔一分钟自动发送到 CloudWatch。连接到 API 网关后,你可以在 Postman 中查看最近一周的 CloudWatch 指标。
在Deployments视图中,选择阶段的名称以查看该阶段的 CloudWatch 控制面板。仪表板上的图表显示延迟、集成延迟、4xx
错误5xx
率和计数的指标。
- 将鼠标悬停在图表上的数据点上以查看详细的指标数据。
- 将鼠标悬停在特定图表的信息图标上 以了解有关指标的更多信息。
从 CloudWatch 控制面板,你可以执行以下操作:
- 要查看不同阶段的指标,请在下拉列表中选择阶段。
- 要查看不同时间范围的指标,请在下拉列表中选择时间范围。
- 要在 AWS 中查看 API 网关的指标,请选择查看仪表板。
- 要在 AWS 中查看此阶段,请选择View Stage on AWS。
- 要查看最新的 CloudWatch 指标,请选择刷新图标 。
更新 CloudWatch 的现有 IAM 策略
Amazon API Gateway 集成支持在 Postman 中查看 CloudWatch 指标。如果你之前在配置集成时创建了 IAM 策略,你可能需要更新该策略以启用 CloudWatch 指标。确保将"cloudwatch:GetMetricData"
操作添加到你的 IAM 策略中:
"Action": [
"apigateway:GET",
"apigateway:PUT",
"apigateway:POST",
"cloudwatch:GetMetricData"
],
从 Amazon API Gateway 导入定义
你可以将 HTTP 或 REST 定义从连接的 Amazon API Gateway 导入到你在 Postman 中的 API。导入定义将替换你当前的 API 定义或添加一个新定义(如果不存在)。
- 在边栏中选择API ,然后选择一个 API。
- 选择部署。
- 选择导入定义。
- 选择要从中导入定义的AWS 阶段。
- 选择导入。
导出和部署你的 API
导出 HTTP API 定义使其在连接的 Amazon API Gateway 中可用。从 Postman 导出定义后,使用 AWS 控制台配置定义并将其部署到 API Gateway 中的阶段。导出时,你还可以选择将定义直接从 Postman 部署到连接的 API 网关中的一个阶段。一旦部署了定义,用户就可以开始调用 API。
可以从 Postman 导出和部署 HTTP API 定义。要部署 REST API 定义,请使用 AWS 控制台。
要将 API 定义导出并部署到 AWS 阶段,请执行以下操作:
在边栏中选择API ,然后选择一个 API。
选择部署。
选择部署 API。
选择要部署的定义的来源。你可以选择当前定义或定义的任何 已发布版本。
(可选)如果你想在导出后将定义部署到某个阶段,请选择Deploy on a stage。选择要将定义部署到的 AWS 阶段,然后输入简短说明。
要部署你的定义,你的网关必须至少有一个配置了集成的路由。
选择部署。
如果你在导出或部署时遇到问题,请确保你已在 IAM 策略中 分配 PUT 和 POST 权限。
从 Postman 推送和部署定义时,将保留 对 Open API 的 API 网关扩展(供应商扩展)。 在将合并的定义推送到 API 网关之前,Postman 将 API 网关中存在的任何扩展合并到定义中。