透過銷售您的 API Gateway API AWS Marketplace - Amazon API Gateway

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

透過銷售您的 API Gateway API AWS Marketplace

建置、測試和部署 API 之後,您可以將它們封裝在 API Gateway 使用計劃中,並透過以軟體即服務 (SaaS) 產品形式銷售計劃 AWS Marketplace。訂閱您產品的 API 購買者會 AWS Marketplace 根據對使用方案的要求數量計費。

若要在上銷售 API AWS Marketplace,您必須設定銷售管道以 AWS Marketplace 與 API Gateway 整合。一般而言,這包括列出您的產品 AWS Marketplace、設定 IAM 角色與適當的政策,以允許 API Gateway 傳送使用指標 AWS Marketplace、將 AWS Marketplace 產品與 API Gateway 使用計劃產生關聯,以及將 AWS Marketplace 購買者與 API Gateway API 金鑰建立關聯。下列各節將會詳細討論。

有關將 API 作為 SaaS 產品銷售的更多信息 AWS Marketplace,請參閱用AWS Marketplace 戶指南

初始化 AWS Marketplace 與 API Gateway 的整合

下列工作適用於與 API Gateway AWS Marketplace 整合的一次性初始化,可讓您將 API 當做 SaaS 產品銷售。

在以下位置列出產品 AWS Marketplace

若要將您的用量計劃列為 SaaS 產品,請透過 AWS Marketplace 提交產品載入表單。產品必須包含 requests 類型的維度 apigateway。此維度定義了 API Gateway 向您的 API 計量請求的 price-per-request 和使用。

建立計量角色

您可以使用下列執行政策與信任政策來建立名為 ApiGatewayMarketplaceMeteringRole 的 IAM 角色。此角色可讓 API Gateway 代表您傳送使用 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 UsagePlan REST API、API Gateway REST API、用於 API Gateway 或 API Gateway 的 AWS SDK,將 API 閘道的productCode欄位設定 AWS CLI 為 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,會將POST要求 AWS Marketplace 轉寄至您在刊登產品時註冊的 SaaS 訂閱 URL。 AWS MarketplacePOST 請求會隨附於 x-amzn-marketplace-token 參數,其中包含買方資訊。請遵循 SaaS 客戶上線中的指示,在開發人員入口網站應用程式中處理此重新導向。

回應客戶的訂閱請求, AWS Marketplace 將subscribe-success通知傳送至您可以訂閱的 Amazon SNS 主題。(請參閱 SaaS 客戶上線)。若要接受客戶訂閱請求,您可以透過為客戶建立或擷取 API Gateway API 金鑰,將客戶 AWS Marketplace佈建的 API 金鑰customerId與 API 金鑰建立關聯,然後將 API 金鑰新增至您的使用方案來處理subscribe-success通知。

當客戶的訂閱請求完成時,開發人員入口網站應用程式應該將相關聯的 API 金鑰提供給客戶,並通知客戶必須在 API 請求的 x-api-key 標頭中包含此 API 金鑰。

當客戶取消使用方案的訂閱時, AWS Marketplace 會傳送unsubscribe-success通知至 SNS 主題。若要完成將客戶取消訂閱的程序,您可以從用量計劃中移除客戶的 API 金鑰,來處理 unsubscribe-success 通知。

授權客戶存取用量計劃

若要授權指定客戶存取您的用量計劃,請使用 API Gateway API 為客戶擷取或建立 API 金鑰,然後將 API 金鑰新增至用量計劃。

下列範例顯示如何呼叫 API Gateway REST API,以建立具有特定 AWS Marketplace customerId值的新 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值(市場客戶 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 金鑰相關聯

您必須將customerId欄位更新為 AWS Marketplace 客戶的客戶 ID。ApiKey這會將 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" }] }