Configurar a medição de hora em hora com o Serviço de medição do AWS Marketplace - AWS Marketplace

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurar a medição de hora em hora com o Serviço de medição do AWS Marketplace

nota

Para implantações do Amazon EKS, o software deve usar perfis do IAM para contas de serviço (IRSA) a fim de assinar a chamada de API para a operação da API RegisterUsage. Usando a Identidade de Pods do EKS, a função de nó ou as chaves de acesso de longo prazo não são compatíveis.

Para implantações do Amazon ECS, o software deve usar o perfil do IAM de tarefa do Amazon ECS para assinar a chamada de API da operação da API RegisterUsage. O uso da função de nó ou das chaves de acesso de longo prazo não é compatível.

Se o produto de contêiner usar a definição de preço por tarefa ou pod por hora em vez de dimensões personalizadas de definição de preço por medição, você não precisará definir dimensões de medição personalizadas. Você pode usar o AWS Marketplace Metering Service para medição personalizada para produtos de contêineres no AWS Marketplace. As seções a seguir mostram como configurar a medição horária com o Serviço de medição do AWS Marketplace.

A operação de API RegisterUsage mede o uso do software por tarefa do Amazon Elastic Container Service (Amazon ECS) ou por pod do Amazon Elastic Kubernetes Service (Amazon EKS), por hora, com o uso proporcional ao segundo. Pelo menos 1 minuto de uso se aplica a tarefas ou pods que tenham curta duração. A medição contínua do uso de software é processada automaticamente pelo Metering Control Plane do AWS Marketplace. O software não precisa realizar ações específicas de medição, exceto chamar RegisterUsage uma vez para medição do uso de software para iniciar.

RegisterUsage deve ser chamado imediatamente no momento de execução de um contêiner. Se você não registrar o contêiner nas primeiras 6 horas após a execução do contêiner, o Serviço de medição do AWS Marketplace não fornecerá nenhuma garantia de medição dos meses anteriores. No entanto, a medição continuará durante o mês atual até que o contêiner termine.

O Metering Control Plane do AWS Marketplace continua cobrando dos clientes pela execução de tarefas do Amazon ECS e pods do Amazon EKS, independentemente do estado da assinatura do cliente. Isso elimina a necessidade de o software realizar verificações de direitos após a execução inicial bem-sucedida da tarefa ou do pod.

Para obter mais informações sobre como integrar a API AWS Marketplace Metering Service para produtos de contêiner com definição de preço por hora, consulte o laboratório Integrar à medição por hora do workshop do vendedor do AWS Marketplace.

Pré-requisitos de medição por hora

Antes de publicar o produto, você deve fazer o seguinte:

  1. Crie um produto de contêiner no Portal de gerenciamento do AWS Marketplace e anote seu código de produto.

    Para obter mais informações, consulte Visão geral: crie um produto em contêiner.

  2. Use um perfil do AWS Identity and Access Management (IAM) para a tarefa ou o pod que está executando o aplicativo com as permissões do IAM necessárias para chamar RegisterUsage. A política AWSMarketplaceMeteringRegisterUsage gerenciada pelo IAM tem essas permissões. Para obter mais informações sobre a política, consulte AWSMarketplaceMeteringFullAccess na Referência de política gerenciada pela AWS.

  3. (Opcional) Se quiser ver o registro em log, recomendamos que você habilite o log do AWS CloudTrail na definição de tarefa ou do pod.

  4. Faça uma chamada de teste para a operação de API RegisterUsage com um registro para todas as dimensões de preço definidas.

Teste da integração para RegisterUsage

Use a operação de API RegisterUsage para testar a integração antes de enviar a imagem ao AWS Marketplace para publicação.

Chame RegisterUsage na imagem de contêiner executando o produto no Amazon ECS ou no Amazon EKS. Use a conta da AWS que você está usando para listar o produto no AWS Marketplace. Sua integração de medição deve definir a Região da AWS dinamicamente, em vez de codificá-la. No entanto, ao testar, execute pelo menos uma tarefa do Amazon ECS ou pod do Amazon EKS com o contêiner pago na região Leste dos EUA (Norte da Virgínia). Ao fazer isso, a equipe de operações do AWS Marketplace pode verificar seu trabalho com os logs dessa região.

nota

Se o produto oferecer suporte ao Amazon ECS e ao Amazon EKS, você só precisará executar no Amazon EKS para que possamos validar sua integração.

Não é possível testar totalmente a integração até o produto ser publicado com todos os metadados e informações de definição de preço necessários. Se solicitado, a equipe de operações do catálogo do AWS Marketplace pode verificar o recebimento dos registros de medição.

Tratar erros no RegisterUsage

Se a imagem de contêiner se integrar ao AWS Marketplace Metering Service e receber uma exceção diferente de ThrottlingException na inicialização do contêiner, você deverá encerrar a imagem de contêiner para evitar uso não autorizado.

As exceções diferentes de ThrottlingException são lançadas somente na chamada inicial para a operação de API RegisterUsage. As chamadas subsequentes da mesma tarefa do Amazon ECS ou pod do Amazon EKS não lançarão CustomerNotSubscribedException, mesmo se o cliente cancelar a assinatura com a tarefa ou o pod ainda em execução. Esses clientes ainda são cobrados pela execução de contêineres depois de cancelarem a assinatura e seu uso for rastreado.

A tabela a seguir descreve os erros que a operação de API RegisterUsage pode lançar. Cada linguagem de programação do SDK da AWS tem um conjunto de diretrizes para tratamento de erros que você pode consultar para obter informações adicionais.

Erro Descrição
InternalServiceErrorException RegisterUsage não está disponível.
CustomerNotEntitledException O cliente não tem uma assinatura válida para o produto.
InvalidProductCodeException O valor ProductCode passado como parte da solicitação não existe.
InvalidPublicKeyException O valor PublicKeyVersion passado como parte da solicitação não existe.
PlatformNotSupportedException AWS MarketplaceO não é compatível com o uso de medição da plataforma subjacente. Somente o Amazon ECS, o Amazon EKS e o AWS Fargate são compatíveis.
ThrottlingException As chamadas para RegisterUsage são limitadas.
InvalidRegionException RegisterUsage deve ser chamado na mesma Região da AWS na qual a tarefa do Amazon ECS ou o pod do Amazon EKS foi executado. Isso evita que um contêiner escolha uma região (por exemplo, withRegion(“us-east-1”)) ao chamar RegisterUsage.