Vendez vos API d'API Gateway via AWS Marketplace - Amazon API Gateway

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Vendez vos API d'API Gateway via AWS Marketplace

Après avoir créé, testé et déployé vos API, vous pouvez les mettre en package dans un plan d'utilisation API Gateway et vendre le plan en tant que produit logiciel en tant que service (SaaS) via AWS Marketplace. Les acheteurs d'API abonnés à votre offre de produit sont facturés par AWS Marketplace en fonction du nombre de demandes effectuées pour le plan d'utilisation.

Pour vendre vos API sur AWS Marketplace, vous devez configurer le canal de vente afin d'intégrer AWS Marketplace avec API Gateway. En règle générale, cela implique la publication de votre produit sur AWS Marketplace, la configuration d'un rôle IAM avec des stratégies appropriées pour permettre à API Gateway d'envoyer des métriques d'utilisation à AWS Marketplace, l'association d'un produit AWS Marketplace à un plan d'utilisation API Gateway et l'association d'un acheteur AWS Marketplace disposant d'une clé API d'API Gateway. Les détails sont présentés dans les sections suivantes.

Pour plus d'informations sur la vente de votre API en tant que produit SaaS sur AWS Marketplace, consultez le Guide de l'utilisateur AWS Marketplace.

Initialisation de l'intégration de AWS Marketplace avec API Gateway

Les tâches suivantes concernent l'initialisation unique de l'intégration de AWS Marketplace avec API Gateway, ce qui vous permet de vendre vos API en tant que produit SaaS.

Publier un produit sur AWS Marketplace

Pour publier votre plan d'utilisation en tant que produit SaaS, soumettez un formulaire de chargement de produit via AWS Marketplace. Le produit doit comporter une dimension nommée apigateway du type requests. Cette dimension définit le prix par demande et est utilisée par API Gateway afin de mesurer les demandes relatives à vos API.

Création du rôle de mesure

Créez un rôle IAM nommé ApiGatewayMarketplaceMeteringRole avec la stratégie d'exécution et la stratégie d'approbation suivantes. Ce rôle permet à API Gateway d'envoyer des métriques d'utilisation à AWS Marketplace en votre nom.

Stratégie d'exécution du rôle de mesure

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

Stratégie de la relation d'approbation du rôle de mesure

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

Association du plan d'utilisation au produit AWS Marketplace

Lorsque vous ajoutez un produit sur AWS Marketplace, vous recevez un code produit AWS Marketplace. Pour intégrer API Gateway avec AWS Marketplace, associez votre plan d'utilisation au code produit AWS Marketplace. Vous activez l'association en établissant le champ productCode du UsagePlan API Gateway dans votre code produit AWS Marketplace à l'aide de la console API Gateway, de l'API REST API Gateway, de la AWS CLI pour API Gateway ou d'un kit SDK AWS pour API Gateway. L'exemple de code suivant utilise l'API REST API Gateway :

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

Gestion de l'abonnement des clients aux plans d'utilisation

Les tâches suivantes sont gérées par l'application portail développeur.

Lorsqu'un client s'abonne à votre produit via AWS Marketplace, AWS Marketplace transmet une demande POST à l'URL d'abonnements SaaS que vous avez enregistrée lors de la publication de votre produit sur AWS Marketplace. La demande POST est associée à un paramètre x-amzn-marketplace-token contenant les informations de l'acheteur. Suivez les instructions fournies dans SaaS customer onboarding pour gérer cette redirection dans votre application de portail pour développeurs.

En réponse à la demande d'abonnement d'un client, AWS Marketplace envoie une notification subscribe-success à une rubrique Amazon SNS à laquelle vous pouvez vous abonner. (Veuillez consulter SaaS customer onboarding). Pour accepter la demande d'abonnement client, vous gérez la notification subscribe-success en créant ou en récupérant une clé API d'API Gateway pour le client, en associant le customerId fourni par AWS Marketplace du client aux clés API, puis en ajoutant la clé API à votre plan d'utilisation.

Lorsque la demande d'abonnement du client se termine, l'application portail développeur doit présenter au client la clé d'API associée et informer celui-ci que la clé d'API doit être incluse dans l'en-tête x-api-key des demandes auprès des API.

Lorsqu'un client annule un abonnement à un plan d'utilisation, AWS Marketplace envoie une notification unsubscribe-success à la rubrique SNS. Pour désinscrire le client, vous gérez la notification unsubscribe-success en supprimant les clés d'API du client du plan d'utilisation.

Autorisation d'accès à un plan d'utilisation

Pour autoriser un client spécifique à accéder à votre plan d'utilisation, utilisez l'API API Gateway afin d'extraire ou de créer une clé d'API pour le client et ajoutez celle-ci au plan d'utilisation.

L'exemple suivant montre comment appeler l'API REST API Gateway pour créer une nouvelle clé API avec une valeur customerId AWS Marketplace spécifique (MARKETPLACE_CUSTOMER_ID).

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" }

L'exemple suivant montre comment obtenir une clé d'API avec une valeur AWS Marketplace customerId (MARKETPLACE_CUSTOMER_ID) spécifique.

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

Pour ajouter une clé d'API à un plan d'utilisation, créez une UsagePlanKey avec la clé d'API correspondant au plan d'utilisation approprié. L'exemple suivant montre comment effectuer cette opération à l'aide de l'API REST API Gateway, où n371pt correspond à l'ID du plan d'utilisation et q5ugs7qjjh un exemple de keyId d'API retourné des exemples précédents.

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

Association d'un client à une clé d'API

Vous devez mettre à jour le champ customerId de l’ApiKey avec l'ID client AWS Marketplace du client. Cette opération associe la clé d'API au client AWS Marketplace, ce qui permet d'effectuer les mesures et la facturation pour l'acheteur. L'exemple de code suivant appelle l'API REST API Gateway à cet effet.

PATCH /apikeys/q5ugs7qjjh Host: apigateway.region.amazonaws.com Authorization: ... { "patchOperations" : [{ "path" : "/customerId", "value" : "MARKETPLACE_CUSTOMER_ID", "op" : "replace" }] }