Configurando a medição personalizada para AMI produtos com AWS Marketplace Metering Service - 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á.

Configurando a medição personalizada para AMI produtos com AWS Marketplace Metering Service

O AWS Marketplace Metering Service é um recurso de precificação e medição que você pode usar para cobrar diretamente pelo seu software por categoria de uso. Há cinco categorias de uso: usuários, dados, largura de banda, hosts ou unidade. Você pode usar o Metering Service com produtos baseados em Amazon Machine Image (AMI), em contêineres e em software como serviço (SaaS). As seções a seguir fornecem mais informações sobre como configurar a medição personalizada com o AWS Marketplace Metering Service.

O AWS Marketplace Metering Service possibilita vários novos cenários. Por exemplo, se o seu software monitora hosts, você pode cobrar pelos hosts monitorados. Você pode ter preços diferentes com base no tamanho do host e cobrar pelo número de hosts simultâneos monitorados por hora. Da mesma forma, se o seu software permite que muitos usuários em uma organização façam login, você pode cobrar pelo número de usuários. A cada hora, o cliente será cobrado pelo número total de usuários provisionados.

Para obter mais informações, consulte a APIReferência do serviço de AWS Marketplace medição.

Requisitos

Todo software AMI baseado que usa o Serviço de Medição deve atender aos seguintes requisitos:

  • Seu software deve ser lançado AWS Marketplace por meio de uma Amazon Machine Image (AMI).

  • Se você tiver um produto existente em AWS Marketplace, deverá enviar um novo AMI e criar um novo produto para ativar esse recurso.

  • Todo software deve ser provisionado com uma função AWS Identity and Access Management (IAM). O cliente final deve adicionar uma IAM função à instância do Amazon Elastic Compute Cloud (AmazonEC2) que o usuário está provisionando com o software. O uso de uma IAM função é opcional quando você implanta software por meio de AWS Marketplace. É necessário quando você implanta o software AWS Marketplace Metering Service.

  • O software deve ser capaz de determinar o consumo de alguma forma.

Serviço de medição AWS do Call Marketplace

O software deve chamar o Serviço de medição a cada hora e registrar o valor do consumo relativo a essa hora.

Quando o software é iniciado, ele deve registrar o minute-of-the-hour local em que foi iniciado. Isso é chamado de start-minute. A cada hora no start-minute, o software deve determinar o valor do consumo relativo a essa hora e chamar o Serviço de medição. Para obter informações sobre como obter esse valor, consulte Modificação do software para usar o Serviço de medição.

Para despertar a cada hora no start-minute, o software deverá usar uma das seguintes abordagens:

  • Uma thread dentro do software.

  • Um processo de daemon que é iniciado com a instância ou o software.

  • Um trabalho cron que é configurado durante a inicialização do aplicativo.

    nota

    Seu software deve chamar o AWS Marketplace Metering Service usando a IAM função configurada na instância do cliente e especificar a dimensão e o valor do consumo.

Seu software pode usar o AWS SDK para chamar o AWS Marketplace Metering Service, semelhante ao exemplo de implementação a seguir:

  1. Use o perfil de instância para criar um cliente de serviço. Isso requer a função configurada para a EC2 instância. As credenciais da função são atualizadas automaticamente pelo. SDK

  2. A cada hora, leia o estado e a configuração do software par determinar os valores de consumo para essa hora. Isso pode incluir a coleta de um value-per-dimension.

  3. Chame o meterUsage método no SDK cliente com os seguintes parâmetros (chame adicionalmente para cada dimensão que tenha uso):

    • timestamp— Timestamp da hora que está sendo gravada (emUTC).

    • productCode: código do produto atribuído ao software.

    • dimension: dimensão (ou dimensões) atribuída ao software.

    • quantity: valor de consumo da hora.

    • allocations: (opcional) você pode fornecer alocações para o uso nas propriedades rastreadas. Essas alocações devem somar o consumo total no registro. Para o comprador, elas são exibidas como possíveis etiquetas de alocação de custos em suas ferramentas de cobrança (como o AWS Billing and Cost Management console). O comprador deve ativar as tags em sua conta para rastrear os custos usando essas tags.

Além disso, seu software deve chamar um endpoint do AWS Marketplace Metering Service na região. O produto deve ter uma configuração de endpoint regional correta, para que us-east-1 envie registros para o endpoint us-east-1 e us-west-2 envie registros para o endpoint us-west-2. Fazer chamadas na região fornece aos compradores uma experiência mais estável e evita situações em que a disponibilidade de uma região não relacionada pode afetar a execução do software em outra região.

Ao enviar registros de medição para o serviço, você deve se conectar ao AWS Marketplace Metering Service em sua região. Use o método getCurrentRegion() auxiliar para determinar a região na qual a EC2 instância está sendo executada e, em seguida, passe essas informações de região para o MeteringServiceClient construtor. Se você não especificar um Região da AWS no SDK construtor, a us-east-1 região padrão será usada. Se o aplicativo tentar realizar chamadas entre regiões para o serviço, elas serão rejeitadas. Para obter mais informações, consulte Determinando a região atual de um aplicativo e getCurrentRegion().

Tratamento de falhas

O produto deve enviar registros de medição ao serviço, um endpoint de Internet pública, para que o uso possa ser capturado e faturado. Como é possível que um cliente modifique as configurações de rede de tal forma que impeça que os registros de medição sejam entregues, o produto deve considerar isso escolhendo um modo de falha.

nota

Algumas falhas de medição podem ser problemas transitórios na conexão com o. AWS Marketplace Metering Service AWS Marketplace recomenda fortemente a implementação de novas tentativas por até 30 minutos, com recuo exponencial, para evitar interrupções de curto prazo ou problemas de rede.

Normalmente, o software pode falhar aberto (fornecer uma mensagem de aviso, mas mantém toda a funcionalidade) ou falhar fechado (desativar todas as funcionalidades no aplicativo até que uma conexão seja restabelecida). Você pode optar por falhar aberto, fechado ou algo específico par ao aplicativo. É altamente recomendável que você evite deixar de encerrar depois de menos de duas horas de falhas de medição.

Como exemplo de falha parcialmente aberto, você pode continuar a permitir o acesso ao software, mas não permitir que o comprador modifique as configurações do software. Ou, um comprador ainda pode acessar o software, mas não seria capaz de criar usuários adicionais. O software é responsável por definir e impor esse modo de falha. O modo de falha do seu AMI software deve ser incluído no envio e não pode ser alterado posteriormente.

Limitações

Mantenha as seguintes limitações em mente ao projetar e enviar software habilitado para Serviço de medição:

  • IAMrequisitos de função e gateway de internet para seus clientes — Seus clientes devem ter um gateway de internet e devem iniciar seu software com uma IAM função com permissões específicas. Para obter mais informações, consulte AWS Marketplace permissões da API de medição e titulação. O software não poderá se conectar ao Serviço de medição se essas duas condições não forem atendidas.

  • Incapacidade de adicionar ou alterar nova categoria de uso ao produto existente no Serviço de medição: quando os clientes assinam seu produto de software, estão concordando com os termos e condições. A alteração das categorias de uso em produtos com o Serviço de medição exige um novo produto e uma nova assinatura.

  • Incapacidade de alterar dimensões no produto existente no Serviço de medição: quando os clientes assinam seu produto de software, estão concordando com os termos e condições. A alteração das dimensões em produtos com o Serviço de medição exige um novo produto e uma nova assinatura. Você pode adicionar novas dimensões aos produtos existentes, até o limite de 24.

  • Falta de avaliação gratuita e de assinaturas anuais: os produtos no Serviço de medição não são compatíveis com avaliações gratuitas e assinaturas anuais na inicialização.

  • Considerações sobre a implantação de várias instâncias ou com base em cluster: alguns softwares serão implantados como parte de uma implantação de várias instâncias. Ao projetar o software, considere como e onde o consumo é medido e onde os registros de medição são emitidos.

Exemplo de código

O exemplo de código a seguir é fornecido para ajudá-lo a integrar seu AMI produto com o AWS Marketplace APIs necessário para publicar e manter seu produto.

MeterUsage com marcação de alocação de uso (opcional)

O exemplo de código a seguir é relevante para AMI produtos com modelos de preços de consumo. O exemplo do Python envia um registro de medição com as tags de alocação de uso apropriadas para AWS Marketplace cobrar taxas de seus clientes. pay-as-you-go

# NOTE: Your application will need to aggregate usage for the # customer for the hour and set the quantity as seen below. # AWS Marketplace can only accept records for up to an hour in the past. # # productCode is supplied after the AWS Marketplace Ops team has # published the product to limited # Import AWS Python SDK import boto3 import time usageRecord = [ { "AllocatedUsageQuantity": 2, "Tags": [ { "Key": "BusinessUnit", "Value": "IT" }, { "Key": "AccountId", "Value": "123456789" }, ] }, { "AllocatedUsageQuantity": 1, "Tags": [ { "Key": "BusinessUnit", "Value": "Finance" }, { "Key": "AccountId", "Value": "987654321" }, ] } ] marketplaceClient = boto3.client("meteringmarketplace") response = marketplaceClient.meter_usage( ProductCode="testProduct", Timestamp=int(time.time()), UsageDimension="Dimension1", UsageQuantity=3, DryRun=False, UsageAllocations=usageRecord )

Para obter mais informações sobreMeterUsage, consulte MeterUsagena APIReferência do serviço AWS Marketplace de medição.

Exemplo de resposta

{ "MeteringRecordId": "string" }