Venda sus API de API Gateway a través de AWS Marketplace - Amazon API Gateway

Venda sus API de API Gateway a través de AWS Marketplace

Después de crear, probar e implementar las API, puede empaquetarlas en un plan de uso de API Gateway y venderlo como producto de software como servicio (SaaS) a través de AWS Marketplace. AWS Marketplace factura a los compradores de la API que se han suscrito a su oferta de producto en función del número de solicitudes realizadas en el plan de uso.

Para vender sus API en AWS Marketplace, debe configurar el canal de ventas para integrar AWS Marketplace en API Gateway. En términos generales, esto implica publicar el producto en AWS Marketplace, configurar un rol de IAM con las políticas adecuadas para permitir a API Gateway enviar métricas de uso a AWS Marketplace, asociar un producto de AWS Marketplace con un plan de uso de API Gateway y asociar un comprador de AWS Marketplace con una clave de API de API Gateway. En las próximas secciones se ofrece información adicional.

Para obtener más información sobre la venta de la API como un producto SaaS en AWS Marketplace, consulte la Guía del usuario de AWS Marketplace.

Inicializar la integración de AWS Marketplace con API Gateway

Las siguientes tareas son para inicializar por única vez la integración de AWS Marketplace con API Gateway, lo que le permite vender sus API como un producto de SaaS.

Publicar un producto en AWS Marketplace

Para publicar su plan de uso como un producto SaaS, envíe un formulario de carga de producto través de AWS Marketplace. El producto debe contener una dimensión con el nombre apigateway del tipo requests. Esta dimensión define el precio por solicitud y API Gateway la utiliza para medir las solicitudes a sus API.

Crear el rol de medición

Cree un rol de IAM denominado ApiGatewayMarketplaceMeteringRole con las siguientes políticas de ejecución y confianza. Este rol permite a API Gateway enviar métricas de uso a AWS Marketplace en su nombre.

Política de ejecución del rol de medición

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

Política de relación de confianza del rol de medición

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

Asociar el plan de uso con el producto de AWS Marketplace

Cuando publica un producto en AWS Marketplace, recibe un código de producto de AWS Marketplace. Para integrar API Gateway en AWS Marketplace, asocie su plan de uso con el código de producto de AWS Marketplace. Para habilitar la asociación mediante el establecimiento del campo productCode del UsagePlan de API Gateway en el código de producto de AWS Marketplace, puede utilizar la consola de API Gateway, la API REST de API Gateway, la AWS CLI para API Gateway o un AWS SDK para API Gateway. En el ejemplo de código siguiente se utiliza la API de REST de API Gateway:

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

Administrar la suscripción de clientes a planes de uso

La aplicación del portal para desarrolladores se encarga de las siguientes tareas.

Cuando un cliente se suscribe a su producto mediante AWS Marketplace, AWS Marketplace reenvía una solicitud POST a la URL de suscripciones SaaS que registró cuando publicó su producto en AWS Marketplace. La solicitud POST incluye un parámetro x-amzn-marketplace-token que contiene la información del comprador. Siga las instrucciones de Incorporación de clientes de SaaS para gestionar esta redirección en su aplicación del portal de desarrolladores.

En respuesta a la solicitud de suscripción de un cliente, AWS Marketplace envía una notificación subscribe-success a un tema de Amazon SNS al que usted puede suscribirse. (Consulte Incorporación de clientes de SaaS). Para aceptar la solicitud de suscripción del cliente, administre la notificación subscribe-success mediante la creación o la recuperación de una clave de la API de API Gateway para el cliente, asociando el customerId aprovisionado por AWS Marketplace del cliente a las claves de la API y agregando después la clave de la API a su plan de uso.

Cuando se completa la solicitud de suscripción del cliente, la aplicación del portal para desarrolladores debe presentar al cliente la clave de API asociada e informarle de que debe incluirse en el encabezado x-api-key de las solicitudes a las API.

Cuando un cliente cancela una suscripción a un plan de uso, AWS Marketplace envía una notificación unsubscribe-success al tema de SNS. Para completar el proceso de anular la suscripción del cliente, administra la notificación unsubscribe-success eliminando las claves de API del cliente del plan de uso.

Autorizar a un cliente para obtener acceso a un plan de uso

Para autorizar el acceso a su plan de uso para un cliente determinado, utilice la API de API Gateway para recuperar o crear una clave de API para el cliente y agréguela al plan de uso.

En el siguiente ejemplo, se muestra cómo llamar a la API REST de API Gateway para crear una nueva clave de API con un valor de AWS Marketplace específico, customerId (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" }

El siguiente ejemplo muestra cómo obtener una clave de API con un valor AWS Marketplace de customerId específico (MARKETPLACE_CUSTOMER_ID).

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

Para agregar una clave de API a un plan de uso, cree un recurso UsagePlanKey con la clave de API para el plan de uso pertinente. El siguiente ejemplo muestra cómo realizar esto usando la API de REST de API Gateway, donde n371pt es el ID del plan de uso y q5ugs7qjjh es un keyId de API de ejemplo devuelto en los ejemplos anteriores.

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

Asociar un cliente a una clave de API

Debe actualizar el campo de ApiKey customerId con el ID del cliente de AWS Marketplace. De esta forma, se asociará la clave de API con el cliente de AWS Marketplace, con lo que podrá medir y facturar las solicitudes del comprador. El siguiente ejemplo de código llama a la API de REST de API Gateway para hacerlo.

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