Venda suas APIs do API Gateway pelo AWS Marketplace
Depois de criar, testar e implantar suas APIs, você poderá empacotá-las em um plano de uso do API Gateway e vender o plano como um produto de Software como Serviço (SaaS) via AWS Marketplace. Os compradores da API que se inscrevem na sua oferta de produtos são cobrados pelo AWS Marketplace com base no número de solicitações feitas no plano de uso.
Para vender suas APIs no AWS Marketplace, você deve configurar o canal de vendas para integrar o AWS Marketplace ao API Gateway. De modo geral, isso envolve listar seu produto no AWS Marketplace, configurar uma função do IAM com políticas apropriadas para permitir que o API Gateway envie métricas de uso para o AWS Marketplace, associar um produto do AWS Marketplace a um plano de uso do API Gateway e associar um comprador do AWS Marketplace a uma chave de API do API Gateway. Os detalhes são discutidos nas seções a seguir.
Para obter mais informações sobre como vender sua API como um produto de SaaS no AWS Marketplace, consulte o Guia do usuário do AWS Marketplace.
Tópicos
Inicializar a integração do AWS Marketplace com o API Gateway
As tarefas a seguir destinam-se à inicialização uma única vez da integração do AWS Marketplace com o API Gateway, o que permite vender suas APIs como um produto de SaaS.
Listar um produto no AWS Marketplace
Para listar seu plano de uso como um produto SaaS, envie um formulário de carregamento de produto pelo AWS Marketplaceapigateway
do tipo requests
. Essa dimensão define o preço por solicitação e é usada pelo API Gateway para medir solicitações para suas APIs.
Criar a função de medição
Crie uma função do IAM denominada ApiGatewayMarketplaceMeteringRole
com a seguinte política de execução e política de confiança. Essa função permite que o API Gateway envie métricas de uso para o AWS Marketplace em seu nome.
Política de execução da função de medição
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "aws-marketplace:BatchMeterUsage", "aws-marketplace:ResolveCustomer" ], "Resource": "*", "Effect": "Allow" } ] }
Política de relacionamento confiável da função de medição
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "apigateway.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Associar o plano de uso com um produto do AWS Marketplace
Ao listar um produto no AWS Marketplace, você recebe um código de produto do AWS Marketplace. Para integrar o API Gateway com o AWS Marketplace, associe seu plano de uso ao código de produto do AWS Marketplace. Habilite a associação definindo o campo productCode
do UsagePlan
do API Gateway como o seu código do produto do AWS Marketplace e usando o console do API Gateway, a API REST do API Gateway, a AWS CLI para API Gateway ou AWS SDK para API Gateway. O exemplo de código a seguir usa a API REST do API Gateway:
PATCH /usageplans/
USAGE_PLAN_ID
Host: apigateway.region
.amazonaws.com Authorization: ... { "patchOperations" : [{ "path" : "/productCode", "value" : "MARKETPLACE_PRODUCT_CODE
", "op" : "replace" }] }
Gerenciar a assinatura do cliente para planos de uso
As seguintes tarefas são manipuladas pelo aplicativo do portal do desenvolvedor.
Quando um cliente se inscreve no seu produto via AWS Marketplace, o AWS Marketplace encaminha uma solicitação POST
para o URL de assinaturas de SaaS que você registrou ao publicar seu produto no AWS Marketplace. A solicitação POST
acompanha um parâmetro x-amzn-marketplace-token
que contém informações do comprador. Siga as instruções na integração de clientes de SaaS para lidar com esse redirecionamento na aplicação do portal do desenvolvedor.
Respondendo à solicitação de inscrição de um cliente, o AWS Marketplace envia uma notificação subscribe-success
para um tópico do Amazon SNS no qual você pode se inscrever. (Consulte Integração de clientes de SaaS). Para aceitar a solicitação de assinatura do cliente, você lida com a notificação subscribe-success
criando ou recuperando uma chave de API do API Gateway para o cliente, associando o customerId
provisionado pelo AWS Marketplace do cliente às chaves da API e, em seguida, adicionando a chave da API ao seu plano de uso.
Quando a solicitação de assinatura do cliente for concluída, o aplicativo de portal do desenvolvedor deverá apresentar ao cliente a chave de API associada e informá-lo de que essa chave deverá ser incluída no cabeçalho x-api-key
em solicitações para as APIs.
Quando um cliente cancela uma assinatura de um plano de uso, o AWS Marketplace envia uma notificação unsubscribe-success
ao tópico do SNS. Para concluir o processo de cancelamento da assinatura do cliente, você pode manipular a notificação unsubscribe-success
removendo chaves de API do cliente do plano de uso.
Autorizar um cliente a acessar um plano de uso
Para autorizar o acesso ao seu plano de uso para um cliente, use a API do API Gateway para buscar ou criar uma chave de API para o cliente e adicione essa chave de API ao plano de uso.
O exemplo a seguir mostra como chamar a API REST do API Gateway para criar uma nova chave de API com um valor de customerId
específico do AWS Marketplace (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
" }
O exemplo a seguir mostra como obter uma chave de API com um valor AWS Marketplace específico do customerId
(MARKETPLACE_CUSTOMER_ID
).
GET apikeys?customerId=
MARKETPLACE_CUSTOMER_ID
HTTP/1.1 Host: apigateway.region
.amazonaws.com Authorization: ...
Para adicionar uma chave de API a um plano de uso, crie uma UsagePlanKey
com a chave de API para o plano de uso relevante. O exemplo a seguir mostra como fazer isso usando a API REST do API Gateway, em que n371pt
é o ID do plano de uso e q5ugs7qjjh
é um keyId
de API de exemplo retornado dos exemplos anteriores.
POST /usageplans/n371pt/keys HTTP/1.1 Host: apigateway.
region
.amazonaws.com Authorization: ... { "keyId": "q5ugs7qjjh", "keyType": "API_KEY" }
Associar um cliente a uma chave de API
É necessário atualizar o campo customerId
de ApiKey
para o ID de cliente do AWS Marketplace. Isto associa a chave de API ao cliente do AWS Marketplace, o que permite a medição e o faturamento para o comprador. O exemplo de código a seguir chama a API REST do API Gateway para fazer isso.
PATCH /apikeys/q5ugs7qjjh Host: apigateway.
region
.amazonaws.com Authorization: ... { "patchOperations" : [{ "path" : "/customerId", "value" : "MARKETPLACE_CUSTOMER_ID
", "op" : "replace" }] }