AWS Marketplace で API Gateway API を販売する - Amazon API Gateway

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

AWS Marketplace で API Gateway API を販売する

API を作成、テスト、デプロイしたら、API Gateway の 使用量プランにパッケージ化し、AWS Marketplace を通じてプランを SaaS (Software-as-a-Service) 製品として販売します。製品にサブスクライブする API の購入者には、使用量プランに対して行われたリクエストの数に基づいて AWS Marketplace により請求されます。

AWS Marketplace で API を販売するには、AWS Marketplace と API Gateway を統合する販売チャネルを設定する必要があります。一般に、これには AWS Marketplace への製品の掲載、API Gateway が使用状況メトリクスを AWS Marketplace に送信するための適切なポリシーを持つ IAM ロールの設定、AWS Marketplace 製品と API Gateway 使用量プランの関連付け、AWS Marketplace の購入者と API Gateway API キーの関連付けが必要です。詳細については、以降のセクションで説明します。

AWS Marketplace で API を SaaS 製品として販売する方法の詳細については、AWS Marketplace 販売者ガイドを参照してください。

API Gateway との AWS Marketplace の統合を初期化する

以下のタスクは、API Gateway との AWS Marketplace の統合を初期化する 1 回限りのタスクです。これにより、API を SaaS 製品として販売できるようになります。

AWS Marketplace に製品を掲載する

使用量プランを SaaS 製品として掲載するには、AWS Marketplace を通じて製品ロードフォームを送信します。商品には、apigateway タイプの requests というディメンションが含まれている必要があります。このディメンションは、リクエストあたりの料金を定義し、API へのリクエストを計測するために API Gateway により使用されます。

計測ロールの作成

次の実行ポリシーと信頼ポリシーを持つ 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 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 は、AWS Marketplace で製品を掲載したときに登録した SaaS サブスクリプション URL に POST リクエストを送信します。POST リクエストには、購入者情報を含む x-amzn-marketplace-token パラメータが付属しています。「SaaS の顧客のオンボーディング」の手順に従って、開発者ポータルアプリケーションでこのリダイレクトを処理します。

顧客のサブスクリプションリクエストに応答して、AWS Marketplace は subscribe-success 通知をサブスクライブ可能な Amazon SNS トピックに送信します(「SaaS の顧客のオンボーディング」を参照してください)。顧客のサブスクリプションリクエストを受け入れるには、顧客の API Gateway API キーを作成または取得して、AWS Marketplace によってプロビジョニングされた顧客の 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 値 (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" }] }