Preços contratuais para produtos de contêiner com o AWS License Manager
Para produtos baseados em contêiner com preços contratuais, você pode usar o AWS License Manager para associar licenças ao seu produto. AWS License Manager é uma ferramenta de gerenciamento de licenças que permite que seu aplicativo rastreie e atualize licenças (também conhecidas como direitos) que foram adquiridas por um cliente. Esta seção fornece informações sobre como integrar seu produto ao AWS License Manager. Depois que a integração for concluída, você poderá publicar sua lista de produtos no AWS Marketplace.
Se você estiver integrando o License Manager a um produto AWS Marketplace for Containers Anywhere para Amazon EKS Anywhere, Amazon ECS Anywhere, Amazon Elastic Compute Cloud (Amazon EC2) ou on-premises, siga as instruções em Integração de um AWS Marketplace for Containers Anywhere ao License Manager.
Para obter mais informações sobre o AWS License Manager, consulte o Guia do usuário do AWS License Manager e a Referência de comandos do AWS License Manager.
Tópicos
Modelos de licença
A integração do AWS Marketplace ao AWS License Manager oferece suporte a dois modelos de licença:
Modelo de licença configurável
O modelo de licença configurável (também conhecido como modelo de licença quantificável) autoriza o comprador a uma quantidade específica de recursos após a aquisição da licença.
Você define uma dimensão de preço e um preço unitário. Em seguida, o comprador pode escolher a quantidade de recursos que deseja comprar.
exemplo da dimensão de preços e do preço unitário
Você pode definir uma dimensão de preço (como backup de dados) e um preço unitário (como USD 30/unidade).
O comprador pode optar por comprar 5, 10 ou 20 unidades.
Seu produto rastreia e mede o uso para medir a quantidade de recursos consumidos.
Com o modelo de configuração, os direitos são contados de uma destas duas maneiras:
Licença emitida
A licença é extraída do conjunto de quantidades permitidas de licenças após o uso. Esse direito é verificado permanentemente e não pode ser devolvido ao pool de licenças.
exemplo de processar uma quantidade limitada de dados
Um usuário tem o direito de processar 500 GB de dados. À medida que continuam processando os dados, a quantidade é extraída do pool de 500 GB até que todas as licenças de 500 GB sejam consumidas.
Para licenças emitidas, você pode usar a operação de API CheckoutLicense
para verificar as unidades de licença (direitos) que são consumidas.
exemplo de backup no S3 para várias unidades/ano
Você tem um produto de armazenamento que permite fazer backup no Amazon Simple Storage Service (Amazon S3) de até 1.024 unidades de dados por um ano. Seu aplicativo pode ser executado usando várias instâncias do Amazon EC2. Seu aplicativo tem um mecanismo para rastrear e agregar dados. Seu software chama a operação de API CheckoutLicense
com o ID do produto em cada backup ou em intervalos fixos para atualizar as quantidades consumidas.
Neste exemplo, seu software chama a operação de API CheckoutLicense
para verificar 10 unidades de dados. Quando a capacidade total atinge o limite de backup que o cliente comprou, a chamada da API falha.
Solicitação
linux-machine ~]$ aws license-manager checkout-license\ --product-sku "2205b290-19e6-4c76-9eea-377d6bf7la47" \ --checkout-type "PERPETUAL" \ --key-fingerprint "aws:294406891311:AWS/Marketplace:issuer-fingerprint" \ --entitlements "Name=DataConsumption, Value=l0, Unit=Count" \ --client-token "AKIAIOSFODNN7EXAMPLE"
Resposta
{"CheckoutType": "PERPETUAL", "EntitlementsAllowed": [{ "Name": "IntermediateTier", "Units": "None" }], "Expiration": "2021-04-22Tl9:02:36", "IssuedAt": "2021-04-22Tl8:02:36", "LicenseArn": "arn:aws:license-manager::294406891311:license:l-16bf01b...", "LicenseConsumptionToken": "AKIAIOSFODNN7EXAMPLE" }
Licenças flutuantes
A licença é devolvida ao conjunto da quantidade permitida de licenças após o uso.
Para licenças flutuantes, o aplicativo verifica os direitos no conjunto de direitos usando a operação de API CheckoutLicense
quando o recurso está sendo usado. A resposta da operação de API CheckoutLicense
inclui um token de consumo de licença, que é um identificador exclusivo para o checkout. O token de consumo de licença pode ser usado para realizar ações adicionais nos direitos que são retirados, como devolvê-los ao conjunto de licenças ou estender a finalização da compra.
Para devolver o direito ao conjunto, use a operação de API CheckInLicense
quando o recurso não estiver mais em uso.
aws license-manager check-in-license --license-consumption-token "f1603b3c1f574b7284db84..."
Em caso de falha de verificação do direito (no caso de o aplicativo falhar), o direito volta para o conjunto automaticamente após 60 minutos. Se o recurso estiver em uso por mais de 60 minutos, é uma prática recomendada manter o direito retirado do conjunto usando a operação de API ExtendLicenseConsumption
enquanto o recurso estiver sendo usado.
aws license-manager extend-license-consumption --license-consumption-token "f1603b3c1f574b7284..."
exemplo do número de usuários a partir de um limite superior fixo
Um usuário tem direito a 500 usuários simultâneos no aplicativo. Conforme os usuários fazem login e se desconectam, eles são retirados e retornados ao conjunto de 500 usuários. No entanto, o aplicativo não pode retirar mais de 500 usuários do conjunto porque 500 usuários simultâneos é o limite máximo fixo.
Para direitos flutuantes, você pode usar a operação de API CheckInLicense
para devolver as unidades de licença ao conjunto de direitos.
exemplo do número de usuários simultâneos por um ano
O preço do produto é baseado no número de usuários simultâneos. O cliente compra uma licença para 10 usuários por um ano. O cliente executa o software fornecendo permissões do AWS Identity and Access Management (IAM). Quando um usuário faz login, seu aplicativo chama a operação de API CheckoutLicense
para reduzir a quantidade em 1. Quando o usuário se desconecta, o aplicativo retorna essa licença para o conjunto chamando a operação de API CheckInLicense
. Se você não chamar CheckInLicense
, o check-in da unidade de licença será feito automaticamente depois de 1 hora.
nota
Na solicitação a seguir, key-fingerprint
não é um valor reservado, mas o valor real da impressão digital com a qual todas as licenças serão publicadas.
Solicitação
aws license-manager checkout-license\ --product-sku "2205b290-19e6-4c76-9eea-377d6bf7la47" \ --checkout-type "PROVISIONAL" \ --key-fingerprint "aws:294406891311:AWS/Marketplace:issuer-fingerprint" \ --entitlements "Name=ReadOnlyUSers, Value=l0, Unit=Count" \ --client-token "AKIAIOSFODNN7EXAMPLE"
Resposta
{ "CheckoutType": "PROVISIONAL", "EntitlementsAllowed": [ { "Name": "ReadOnlyUsers", "Count": 10, "Units": "Count", "Value": "Enabled" } }, "Expiration": "2021-04-22Tl9:02: 36", "IssuedAt": "2021-04-22Tl8:02:36", "LicenseArn": "arn:aws:license-manager::294406891311:license:l-16bf01b...", "LicenseConsumptionToken": "AKIAIOSFODNN7EXAMPLE" }
Modelo de licença em nível
O modelo de licença em nível dá ao comprador o direito a um nível específico de recursos do aplicativo após a aquisição da licença.
Você cria níveis para seu produto, como Básico, Intermediário e Premium. Em seguida, o comprador seleciona um dos níveis predefinidos.
O aplicativo não precisa rastrear ou medir o uso do aplicativo.
Com o modelo de licença em nível, os direitos não são contados, mas significam um nível de serviço que foi adquirido pelo cliente.
Se você quiser oferecer recursos agrupados, os níveis são preferíveis.
exemplo dos níveis Básico, Intermediário e Premium
Um cliente pode assinar um contrato para um dos três níveis possíveis do software: Básico, Intermediário ou Premium. Cada um desses níveis tem seu próprio preço. Seu software pode identificar o nível que o cliente assinou invocando a operação de API CheckoutLicense
e especificando todos os níveis possíveis na solicitação.
A resposta da solicitação contém o direito correspondente ao nível que o cliente adquiriu. Com base nessas informações, o software pode fornecer a experiência adequada ao cliente.
Solicitação
linux-machine ~]$ aws license-manager checkout-license\ --product-sku "2205b290-19e6-4c76-9eea-377d6bf7la47" \ --checkout-type "PROVISIONAL" \ --key-fingerprint "aws:294406891311:AWS/Marketplace:issuer-fingerprint" \ --entitlements "Name=BasicTier, Unit=None" "Name=IntermediateTier, Unit=None" \ "Name=PremiumTier, Unit=None"
Resposta
{ "CheckoutType": "PROVISIONAL", "EntitlementsAllowed": [ { "Name": "IntermediateTier", "Units": "None" } }, "Expiration": "2021-04-22Tl9:02:36", "IssuedAt": "2021-04-22Tl8:02:36", "LicenseArn": "arn:aws:license-manager::294406891311:license:l-16bf01b...", "LicenseConsumptionToken": "AKIAIOSFODNN7EXAMPLE" }
Pré-requisitos de integração do AWS License Manager
Antes de publicar o produto, você deve fazer o seguinte:
-
Crie um produto de contêiner no Portal de gerenciamento do AWS Marketplace e anote seu código de produto.
Para ter mais informações, consulte Visão geral: crie um produto em contêiner.
-
Use um perfil do IAM para a tarefa ou o pod que está executando o aplicativo com as permissões do IAM necessárias para chamar as operações de API
CheckoutLicense
,ExtendLicenseConsumption
eCheckInLicense
.As permissões do IAM obrigatórias são detalhadas na política do IAM.
{ "Version":"2012-10-17", "Statement":[ { "Sid":"VisualEditorO", "Effect":"Allow", "Action":[ "license-manager:CheckoutLicense", "license-manager:GetLicense", "license-manager:CheckInLicense", "license-manager:ExtendLicenseConsumption", "license-manager:ListReceivedLicenses" ], "Resource":"*" } ] }
-
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.
Integração de um produto de contêiner ao License Manager
Para integrar seu produto baseado em contêiner ao License Manager
-
Defina as permissões do IAM para chamar o License Manager. Para ter mais informações, consulte Pré-requisitos de integração do AWS License Manager.
-
Faça o download do SDK AWS.
nota
Não configure credenciais da AWS em seu software. As credenciais da AWS do comprador são obtidas automaticamente no runtime quando seu contêiner está sendo executado em uma instância do Amazon EC2, tarefa do Amazon ECS ou pod do Amazon EKS.
-
Adicione verificações de licença ao seu produto.
Seu produto pode chamar a operação de API da
CheckoutLicense
onde quer que a verificação da licença deva ser realizada. Para verificar a licença, seu produto deve saber:-
O emissor confiável da licença (AWS Marketplace)
-
O SKU do produto (ID do produto) do aplicativo
-
O direito de verificar este aplicativo
As chamadas de API variam de acordo com o tipo de preço das licenças que você configura.
-
-
Publique sua lista de produtos no AWS Marketplace.
Operações de API do License Manager
Para gerenciar as licenças armazenadas na conta do License Manager do cliente, seu software pode usar as seguintes chamadas de API:
-
GetLicense
: uma API que o software pode consultar. Ela recupera o status de uma licença comprada (ou seja, expirada ou expirando em breve) e envia uma notificação de status ao cliente. -
CheckoutLicense
: descobre as licenças que o usuário comprou. Você também pode usar a operação de APICheckoutLicense
para atualizar a quantidade de licenças quando o usuário tiver consumido alguma quantidade de licenças. ComCheckoutLicense
, você pode continuar verificando as quantidades de licenças usadas pelo cliente. Quando o cliente esgota todas as licenças, essa chamada retorna um erro. Para obter informações sobre a cadência sugerida para execução deCheckoutLicense
, consulte Renovações e upgrades de licenças. -
ExtendLicenseConsumption
: no caso de dimensões flutuantes, quando o software comprar uma licença, a licença retornará ao conjunto automaticamente após 60 minutos. Se você quiser estender o tempo em que a licença permanece verificada, use a operação de APIExtendLicenseConsumption
para estender a licença por mais 60 minutos. -
CheckInLicense
: no caso de dimensões flutuantes, quando quiser devolver a licença ao conjunto de direitos, use a operação de APICheckInLicense
. -
API
ListReceivedLicenses
: lista as licenças compradas pelo comprador.
Renovações e upgrades de licenças
Os clientes podem renovar ou atualizar as licenças no Portal de gerenciamento do AWS Marketplace. Depois de fazer uma compra adicional, o AWS Marketplace gera uma nova versão da licença que reflete os novos direitos. Seu software lê os novos direitos usando as mesmas operações de API. Você não precisa fazer nada diferente em termos de integração do License Manager para lidar com renovações e atualizações.
Devido a renovações de licenças, upgrades, cancelamentos e assim por diante, recomendamos que seu produto chame a operação de API CheckoutLicense
em um ritmo regular enquanto o produto estiver em uso. Ao usar a operação de API CheckoutLicense
em um ritmo regular, o produto pode detectar alterações nos direitos, como atualizações e expiração.
Recomendamos que você realize a chamada de API CheckoutLicense
a cada 15 minutos.