选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

通过 AWS Marketplace 销售 API Gateway API

聚焦模式
通过 AWS Marketplace 销售 API Gateway API - Amazon API Gateway

构建、测试和部署 API 后,您可以将其打包到 API Gateway usage plan(使用计划)中,并通过 AWS Marketplace 将该计划作为软件即服务 (SaaS) 产品进行销售。AWS Marketplace 根据向使用计划发出的请求数量,对订阅您的产品/服务的 API 买家进行计费。

要在 AWS Marketplace 上销售 API,您必须设置销售渠道以将 AWS Marketplace 与 API Gateway 集成。一般而言,这涉及在 AWS Marketplace 上列出您的产品,使用适当的策略设置 IAM 角色以允许 API Gateway 向 AWS Marketplace 发送用量指标,将 AWS Marketplace 产品与 API Gateway 使用计划进行关联,以及将 AWS Marketplace 买家与 API Gateway API 密钥进行关联。以下各节讨论了相关详细信息。

有关在 AWS Marketplace 上将您的 API 作为 SaaS 产品进行销售的更多信息,请参阅 AWS Marketplace 用户指南

初始化 AWS Marketplace 与 API Gateway 的集成

以下任务是为了一次性初始化 AWS Marketplace 与 API Gateway 的集成,以便您将 API 作为 SaaS 产品进行销售。

在 中列出产品AWS Marketplace

要将您的使用计划作为 SaaS 产品列出,请通过 AWS Marketplace 提交产品加载表单。产品必须包含 apigateway 类型且名为 requests 的维度。此维度定义基于请求的定价,并由 API Gateway 用于计量对您的 API 提出的请求。

创建计量角色

使用以下执行策略和信任策略,创建一个名为 ApiGatewayMarketplaceMeteringRole 的 IAM 角色。此角色允许 API 代表您向 AWS Marketplace 发送用量指标。

计量角色的执行策略

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "aws-marketplace:BatchMeterUsage", "aws-marketplace:ResolveCustomer" ], "Resource": "*", "Effect": "Allow" } ] }

计量角色的可信关系策略

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "apigateway.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

将使用计划与 AWS Marketplace 产品关联

在 AWS Marketplace 上列出产品时,您会收到一个 AWS Marketplace 产品代码。要将 API Gateway 与 AWS Marketplace 集成,请将您的使用计划与 ‭AWS Marketplace 产品代码关联。您可以通过使用 API Gateway 控制台、API Gateway REST API、适用于 API Gateway 的 AWS CLI 或适用于 API Gateway 的 AWS SDK 将 API Gateway UsagePlanproductCode 字段设为 AWS Marketplace 产品代码来启用关联。以下代码示例使用 API Gateway REST API:

PATCH /usageplans/USAGE_PLAN_ID Host: apigateway.region.amazonaws.com Authorization: ... { "patchOperations" : [{ "path" : "/productCode", "value" : "MARKETPLACE_PRODUCT_CODE", "op" : "replace" }] }

处理使用计划的客户订阅

以下任务由您的开发人员门户应用程序处理。

当客户通过 AWS Marketplace 订阅您的产品时,AWS Marketplace 会将 POST 请求转发至 SaaS 订阅您在 AWS Marketplace 中上架产品时注册的 URL。POST 请求附带一个包含买家信息的 x-amzn-marketplace-token 参数。按照 SaaS 客户登记中的说明在您的开发人员门户应用程序中处理此重定向。

作为对客户订阅请求的响应,AWS Marketplace 会向您可以订阅的 Amazon SNS 主题发送 subscribe-success 通知。(请参阅 SaaS 客户登记)。要接受客户订阅请求,您应创建或检索客户的 API Gateway API 密钥,将客户的 AWS Marketplace 预置 customerId 与 API 密钥进行关联,然后将该 API 密钥添加到您的使用计划中,以此来处理 subscribe-success 通知。

当客户的订阅请求完成后,开发人员门户应用程序应向客户展示关联的 API 密钥,并告知客户该 API 密钥必须包含在对 API 提出的请求的 x-api-key 标头中。

如果客户取消对使用计划的订阅,AWS Marketplace 会向 SNS 主题发送 unsubscribe-success 通知。要完成客户取消订阅的过程,应通过从使用计划中删除客户的 API 密钥来处理 unsubscribe-success 通知。

授权客户访问使用计划

要授权给定客户访问您的使用计划,请使用 API Gateway API 为该客户获取或创建 API 密钥,然后将该 API 密钥添加到使用计划中。

以下示例介绍了如何调用 API Gateway REST API 以创建具有特定 AWS Marketplace customerId 值 (MARKETPLACE_CUSTOMER_ID) 的新 API 密钥。

POST apikeys HTTP/1.1 Host: apigateway.region.amazonaws.com Authorization: ... { "name" : "my_api_key", "description" : "My API key", "enabled" : "false", "stageKeys" : [ { "restApiId" : "uycll6xg9a", "stageName" : "prod" } ], "customerId" : "MARKETPLACE_CUSTOMER_ID" }

以下示例介绍了如何获取具有特定 AWS Marketplace customerId 值 (MARKETPLACE_CUSTOMER_ID) 的 API 密钥。

GET apikeys?customerId=MARKETPLACE_CUSTOMER_ID HTTP/1.1 Host: apigateway.region.amazonaws.com Authorization: ...

要向使用计划添加 API 密钥,请通过相关使用计划的 API 密钥创建一个 UsagePlanKey。以下示例介绍如何使用 API Gateway REST API 完成此操作,其中 n371pt 是使用计划 ID,q5ugs7qjjh 是从之前的示例返回的示例 API keyId

POST /usageplans/n371pt/keys HTTP/1.1 Host: apigateway.region.amazonaws.com Authorization: ... { "keyId": "q5ugs7qjjh", "keyType": "API_KEY" }

将客户与 API 密钥关联

必须将 ApiKeycustomerId 字段更新为客户的 AWS Marketplace 客户 ID。这可将 API 密钥与 AWS Marketplace 客户关联,从而可对买家进行计量和计费。以下代码示例调用 API Gateway REST API 来执行此操作。

PATCH /apikeys/q5ugs7qjjh Host: apigateway.region.amazonaws.com Authorization: ... { "patchOperations" : [{ "path" : "/customerId", "value" : "MARKETPLACE_CUSTOMER_ID", "op" : "replace" }] }
隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。