Configuration du comptage personnalisé pour les produits conteneurisés avec AWS Marketplace Metering Service - AWS Marketplace

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration du comptage personnalisé pour les produits conteneurisés avec AWS Marketplace Metering Service

Note

Pour les déploiements Amazon EKS, votre logiciel doit utiliser les rôles IAM pour les comptes de service (IRSA) afin de signer l'appel d'API pour l'MeterUsageopération d'API. Avec EKS Pod Identity, le rôle de nœud ou les clés d'accès à long terme ne sont pas pris en charge.

Pour les déploiements Amazon ECS, votre logiciel doit utiliser le rôle IAM de la tâche Amazon ECS pour signer l'appel d'API pour l'opération d'MeterUsageAPI. L'utilisation du rôle de nœud ou de clés d'accès à long terme n'est pas prise en charge.

Pour les déploiements Amazon Bedrock AgentCore Runtime, votre logiciel doit utiliser le rôle AgentCore d'exécution Runtime pour signer l'appel d'API pour l'opération d'MeterUsageAPI. Les clés d'accès à long terme ne sont pas prises en charge.

AWS Marketplace les produits en conteneur peuvent être mesurés sur mesure pour un maximum de 24 dimensions de prix différentes par produit. Chaque dimension peut être associée à un prix contractuel à long terme. Pour activer le comptage personnalisé, intégrez votre produit conteneur à AWS Marketplace Metering Service. Vous pouvez définir vos propres unités de tarification et des mesures personnalisées pour cette utilisation ou pour la facturation à AWS l'aide de l'opération MeterUsageAPI. Les sections suivantes vous montrent comment configurer le comptage personnalisé pour votre produit en conteneur.

Les dimensions du prix sont définies à deux endroits, une fois lors de la création de votre produit dans le Portail de gestion AWS Marketplace (portail des vendeurs) et une fois dans votre logiciel pour effectuer l'MeterUsageopération. Cette méthode à deux facteurs garantit que les offres suivantes fonctionnent comme prévu avant d'être mises à la disposition du public.

Pour configurer le comptage personnalisé, vous devez choisir la catégorie d'utilisation, le type d'unité et les dimensions de tarification :

  • Catégorie d'utilisation — La catégorie d'utilisation aide les acheteurs à comprendre ce qu'est votre produit et comment l'utiliser.

  • Type d'unité — Le type d'unité définit l'unité de mesure pour la facturation. Par exemple, la bande passante mesurée en GBps ou MBps, le nombre d'hôtes, ou les données mesurées en Mo, Go ou To.

  • Dimensions tarifaires : les dimensions tarifaires représentent une fonctionnalité ou un service pour lequel vous avez défini un prix unitaire (par exemple, les utilisateurs, les scans, les v CPUs ou les agents déployés). Les dimensions des prix sont publiques. Cependant, vous pouvez toujours définir des offres privées et des offres BYOL (Bring Your Own License) pour les produits publics. N'envoyez pas de tarification dans les relevés de mesure. Vous mesurez la quantité d'unités, et nous l'utilisons avec les prix que vous avez définis lors de la création de votre produit pour calculer la facture de l'acheteur.

    Si le prix de votre produit ne correspond à aucune des catégories ou types d'unités prédéfinis, vous pouvez choisir la catégorie d'unités générique. Utilisez ensuite la description des dimensions pour décrire l'unité.

Vous pouvez éventuellement répartir l'utilisation en allocations en fonction des propriétés que vous suivez. Les allocations sont représentées sous forme de balises pour l'acheteur. Ces balises permettent à l'acheteur de visualiser ses coûts répartis en fonction de l'utilisation par valeur des balises. Par exemple, si vous facturez par utilisateur et que les utilisateurs ont une propriété « Service », vous pouvez créer des allocations d'utilisation avec des balises comportant la clé « Département », et une allocation par valeur. Cela ne modifie pas le prix, les dimensions ou l'utilisation totale que vous signalez, mais permet à votre client de consulter ses coûts par catégories correspondant à votre produit.

Nous vous recommandons d'envoyer un relevé de mesure toutes les heures. Cependant, vous pouvez également agréger l'utilisation sur des périodes quotidiennes ou mensuelles. En cas de panne, vous pouvez agréger l'utilisation du logiciel par l'acheteur et l'envoyer dans les heures qui suivent pour le comptage. Vous ne pouvez pas envoyer plus d'un enregistrement par heure.

Pour plus d'informations sur l'intégration de AWS Marketplace Metering Service l'API pour les produits en conteneurs avec des tarifs de dosage personnalisés, consultez le laboratoire d'intégration aux compteurs personnalisés de l'atelier destiné aux AWS Marketplace vendeurs.

Important

L'essai gratuit et les droits prépayés sont suivis sur une base horaire. Par conséquent, l'envoi de ces enregistrements séparément peut entraîner une surfacturation à l'acheteur.

Prérequis à la mesure personnalisée

Avant de publier le produit, vous devez effectuer les opérations suivantes :

  1. Créez un nouveau produit conteneur dans Portail de gestion AWS Marketplace le et notez son code produit.

  2. Utilisez un rôle Gestion des identités et des accès AWS (IAM) pour la tâche, le pod ou le point de terminaison AgentCore d'exécution exécutant votre application avec les autorisations IAM nécessaires pour appeler. MeterUsage La politique gérée par IAM AWSMarketplaceMeteringRegisterUsage dispose de ces autorisations. Pour plus d'informations sur la politique, consultez AWSMarketplaceMeteringFullAccessla référence des stratégies AWS gérées.

  3. (Facultatif) Nous vous recommandons d'activer la AWS CloudTrail journalisation dans la définition de la tâche ou du pod si vous souhaitez voir la journalisation.

  4. Effectuez un appel test à l'opération d'MeterUsageAPI avec un enregistrement de toutes les dimensions de tarification que vous définissez.

MeterUsageIntégration des tests pour ECS et EKS

Utilisez cette MeterUsage opération pour tester votre intégration avant de soumettre votre image à des AWS Marketplace fins de publication.

Appelez MeterUsage depuis les images du conteneur en exécutant votre produit sur Amazon Elastic Container Service (Amazon ECS) ou Amazon Elastic Kubernetes Service (Amazon Compte AWS EKS) avec le logiciel que vous avez utilisé pour mettre le produit en vente. AWS Marketplace Votre intégration de mesure doit le définir dynamiquement Région AWS, plutôt que de le coder en dur. Toutefois, lors du test, lancez au moins une tâche Amazon ECS ou un module Amazon EKS contenant votre conteneur payant dans la région de l'est des États-Unis (Virginie du Nord) afin que l'équipe AWS Marketplace des opérations puisse vérifier votre travail avec les journaux de cette région.

Note
  • Si votre produit prend en charge à la fois Amazon ECS et Amazon EKS, il vous suffit de le lancer dans Amazon EKS pour que nous puissions valider votre intégration.

  • Testez chaque dimension avant de lancer votre produit auprès du public et après avoir ajouté une nouvelle dimension. Si vous n'envoyez pas d'enregistrement de mesure pour chaque dimension associée à un produit en conteneur, une erreur se produira et la demande échouera.

Vous ne pouvez pas tester totalement l'intégration tant que votre produit n’a pas été publié avec toutes les métadonnées requises et les informations de tarification. Sur demande, l'équipe chargée des opérations du AWS Marketplace catalogue peut vérifier la réception de vos relevés de mesure.

Tester MeterUsage l'intégration pour AgentCore

Utilisez cette MeterUsage opération pour tester votre intégration avant de soumettre votre image à des AWS Marketplace fins de publication.

Appelez MeterUsage à partir des images du conteneur en lançant votre produit sur Amazon Bedrock AgentCore avec le AWS compte sur AWS Marketplace lequel vous avez mis le produit en vente. Votre intégration de mesure doit définir la AWS région de manière dynamique, plutôt que de la coder en dur. Toutefois, lors du test, lancez au moins un AgentCore agent Amazon Bedrock contenant votre conteneur payant dans la région USA Est (Virginie du Nord) afin que l'équipe AWS Marketplace des opérations puisse vérifier votre travail avec les journaux de cette région.

Il n'est pas nécessaire d'agréger les enregistrements d'utilisation horaire. Appelez MeterUsage chaque invocation d'agent avec l'utilisation de cette invocation.

Vous devez utiliser la dernière version du AWS SDK pour votre langue. Cela permet de renseigner automatiquement le ClientToken paramètre avec une valeur générée automatiquement pour faciliter l'idempuissance. Les versions précédentes du SDK qui ne renseignent pas ce champ ne fonctionneront pas pour les MeterUsage appels provenant d'Amazon Bedrock. AgentCore En raison d'un problème réseau, vous devez réutiliser exactement la même demande lorsque vous réessayez. Cela garantit que les demandes sont traitées de manière idempotente.

En raison des différences de comportement de mesure attendu entre Amazon Bedrock AgentCore et les autres produits en conteneur, nous vous déconseillons de partager la même image de conteneur pour une utilisation sur Amazon Bedrock et AgentCore sur Amazon ECS ou EKS.

Gestion des erreurs pour MeterUsage

Appelez le MeterUsage réglage du DryRun paramètre sur true au démarrage du conteneur pour vérifier que l'intégration de la mesure fonctionne. Si l'image de votre conteneur s'intègre à l'MeterUsageopération et reçoit une exception autre qu'ThrottlingExceptionau démarrage du conteneur, vous devez arrêter le conteneur pour empêcher toute utilisation non autorisée.

Les exceptions autres que ThrottlingException sont générées uniquement lors de l'appel initial de MeterUsage. Les appels suivants provenant de la même tâche Amazon ECS, du même pod Amazon EKS ou du même point de terminaison AgentCore Runtime ne sont pas lancésCustomerNotSubscribedException, même si le client se désabonne alors que la tâche ou le module est toujours en cours d'exécution. Ces clients sont toujours facturés pour la gestion des conteneurs après leur désinscription, et leur utilisation est suivie.

Consultez MeterUsagela référence de l'AWS Marketplace Metering Service API pour obtenir une description détaillée des erreurs courantes pourMeterUsage. Chaque langage de programmation du AWS SDK possède un ensemble de directives de gestion des erreurs auxquelles vous pouvez vous référer pour plus d'informations.

(Facultatif) Marquage mesuré par le fournisseur

Le balisage mesuré par le fournisseur aide les fournisseurs de logiciels indépendants (ISVs) à donner à l'acheteur un aperçu plus précis de l'utilisation de ses logiciels et peut l'aider à répartir les coûts.

Note

Le balisage mesuré par le fournisseur n'est pas pris en charge pour les demandes de mesure pour les produits Amazon Bedrock. AgentCore

Plusieurs méthodes s'offrent à vous pour étiqueter l'utilisation du logiciel par un acheteur. La première consiste à demander d'abord à vos acheteurs ce qu'ils souhaitent voir dans leur répartition des coûts. Vous pouvez ensuite répartir l'utilisation entre les propriétés que vous suivez pour le compte de l'acheteur. Les exemples de propriétés incluent AccountIdBusiness Unit,Cost Centers, et d'autres métadonnées pertinentes pour votre produit. Ces propriétés sont présentées à l'acheteur sous forme de balises. À l'aide de balises, les acheteurs peuvent voir leurs coûts répartis en fonction de l'utilisation selon les valeurs des balises dans leur console AWS de facturation (https://console.aws.amazon.com/costmanagement/). Le balisage mesuré par le fournisseur ne modifie pas le prix, les dimensions ou l'utilisation totale que vous signalez. Il permet à votre client de consulter ses coûts par catégories correspondant à votre produit.

Dans un cas d'utilisation courant, un acheteur s'abonne à votre produit avec l'un d'eux Compte AWS. L'acheteur possède également de nombreux utilisateurs associés au même abonnement au produit. Vous pouvez créer des allocations d'utilisation à l'aide de balises dotées d'une clé deAccountId, puis attribuer l'utilisation à chaque utilisateur. Dans ce cas, les acheteurs peuvent activer le AccountId tag dans leur console Billing and Cost Management et analyser l'utilisation individuelle des utilisateurs.

Expérience du vendeur

Les vendeurs peuvent agréger les relevés de mesure des ressources avec le même ensemble de balises au lieu d'agréger l'utilisation de toutes les ressources. Par exemple, les vendeurs peuvent créer le registre des compteurs qui inclut différents UsageAllocations compartiments. Chaque compartiment représente UsageQuantity un ensemble de balises, telles que AccountId etBusinessUnit.

Dans le schéma suivant, la ressource 1 possède un ensemble unique de BusinessUnit balises AccountId et apparaît dans l'enregistrement de mesure sous la forme d'une entrée unique.

La ressource 2 et la ressource 3 ont toutes deux le même AccountId tag2222, et le même BusinessUnit tag,Operations. Par conséquent, ils sont combinés en une seule UsageAllocations entrée dans le registre de mesure.

Schéma illustrant la façon dont les étiquettes de mesure des fournisseurs combinent les données d'utilisation. Trois ressources (ressource 1, 2 et 3) différentes AccountIds BusinessUnits sont consolidées dans un seul enregistrement de mesure, UsageAllocations regroupées par AccountId et BusinessUnit avant d'être envoyées au AWS Marketplace Metering Service.

Les vendeurs peuvent également combiner des ressources sans balises en une seule UsageAllocation avec la quantité d'utilisation allouée et l'envoyer comme l'une des entréesUsageAllocations.

Les limites incluent :

  • Nombre de tags : 5

  • Taille de UsageAllocations (cardinalité) — 2 500

Les validations incluent :

  • Caractères autorisés pour la clé et la valeur du tag : a-zA-Z 0-9+ -= . _ : \ /@

  • Nombre maximum de balises dans UsageAllocation la liste : 5

  • Deux ne UsageAllocations peuvent pas avoir les mêmes balises (c'est-à-dire la même combinaison de clés et de valeurs de balise). Si tel est le cas, ils doivent utiliser le mêmeUsageAllocation.

  • La somme AllocatedUsageQuantity de UsageAllocation doit être égale àUsageQuantity, qui est l'utilisation agrégée.

Expérience d'acheteur

Le tableau suivant montre un exemple de l'expérience de l'acheteur après qu'un acheteur a activé les tags AccountId et BusinessUnit vendor.

Dans cet exemple, l'acheteur peut voir l'utilisation allouée dans son rapport d'utilisation des coûts. Les balises mesurées par le fournisseur utilisent le préfixe. “aws:marketplace:isv” Les acheteurs peuvent les activer dans Billing and Cost Management, sous Cost Allocation Tags, sous les balises de répartition des coûts AWS générées par les acheteurs.

Les première et dernière lignes du rapport d'utilisation des coûts concernent ce que le vendeur envoie au service de comptage (comme indiqué dans l'Expérience du vendeurexemple).

Rapport d'utilisation des coûts (simplifié)
ProductCode Acheteur UsageDimension UsageQuantity aws:marketplace:isv:AccountId aws:marketplace:isv:BusinessUnit
xyz 111122223333 Réseau : par (Go) inspecté 70 2222 Opérations
xyz 111122223333 Réseau : par (Go) inspecté 30 3333 Finance
xyz 111122223333 Réseau : par (Go) inspecté 20 4444 IT
xyz 111122223333 Réseau : par (Go) inspecté 20 5555 Marketing
xyz 111122223333 Réseau : par (Go) inspecté 30 1111 Marketing

Pour obtenir un exemple de code, consultez MeterUsageexemple de code avec balisage d'allocation d'utilisation (facultatif).

Exemple de code

L'exemple de code suivant est fourni pour vous aider à intégrer votre produit conteneur aux éléments AWS Marketplace APIs requis pour la publication et la maintenance de votre produit.

MeterUsageexemple de code avec balisage d'allocation d'utilisation (facultatif)

L'exemple de code suivant est pertinent pour les produits en conteneur dotés de modèles de tarification à la consommation. L'exemple Python envoie un enregistrement de mesure avec les balises d'allocation d'utilisation appropriées AWS Marketplace pour facturer des pay-as-you-go frais à vos clients.

# 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 )

Pour plus d'informations à ce sujetMeterUsage, consultez MeterUsagela référence de AWS Marketplace Metering Service l'API.

Exemple de réponse

{ "MeteringRecordId": "string" }