

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Configurazione di contatori personalizzati per prodotti container con AWS Marketplace Metering Service
<a name="container-metering-meterusage"></a>

**Nota**  
 Per le implementazioni di Amazon EKS, il tuo software deve utilizzare [IAM roles for service accounts (IRSA)](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) per firmare la chiamata API per il funzionamento dell'[https://docs.aws.amazon.com/marketplace/latest/APIReference/API_marketplace-metering_MeterUsage.html](https://docs.aws.amazon.com/marketplace/latest/APIReference/API_marketplace-metering_MeterUsage.html)API. L'utilizzo di [EKS Pod Identity](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html), il ruolo del nodo o le chiavi di accesso a lungo termine non sono supportati.  
Per le distribuzioni di Amazon ECS, il tuo software deve utilizzare il ruolo [IAM dell'attività di Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) per firmare la chiamata API per l'operazione API. [https://docs.aws.amazon.com/marketplace/latest/APIReference/API_marketplace-metering_MeterUsage.html](https://docs.aws.amazon.com/marketplace/latest/APIReference/API_marketplace-metering_MeterUsage.html) L'utilizzo del ruolo del nodo o delle chiavi di accesso a lungo termine non è supportato.  
Per le distribuzioni AgentCore di Amazon Bedrock Runtime, il tuo software deve utilizzare il [ruolo AgentCore di esecuzione Runtime](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-permissions.html#runtime-permissions-execution) per firmare la chiamata API per l'[https://docs.aws.amazon.com/marketplace/latest/APIReference/API_marketplace-metering_MeterUsage.html](https://docs.aws.amazon.com/marketplace/latest/APIReference/API_marketplace-metering_MeterUsage.html)operazione API. Le chiavi di accesso a lungo termine non sono supportate.

Marketplace AWS i prodotti container possono avere una misurazione personalizzata per un massimo di 24 diverse dimensioni di prezzo per prodotto. A ogni dimensione può essere associato un prezzo contrattuale a lungo termine. Per abilitare la misurazione personalizzata, integra il tuo prodotto container con AWS Marketplace Metering Service. Puoi definire le tue unità di prezzo e la misurazione personalizzata per tale utilizzo e per la fatturazione utilizzando AWS il funzionamento dell'API. [https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/API_MeterUsage.html](https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/API_MeterUsage.html) Le seguenti sezioni mostrano come configurare la misurazione personalizzata per il prodotto container.

Le dimensioni del prezzo sono definite in due posizioni, una volta durante la creazione del prodotto nel Portale di gestione Marketplace AWS (portale dei venditori) e una volta nel software per eseguire l'`MeterUsage`operazione. Questo metodo a due fattori garantisce che le offerte successive funzionino come previsto prima di essere rese disponibili al pubblico.

Per configurare la misurazione personalizzata, devi scegliere la categoria di utilizzo, il tipo di unità e le dimensioni del prezzo: 
+ **Categoria di utilizzo**: la categoria di utilizzo aiuta gli acquirenti a capire cos'è il tuo prodotto e come utilizzarlo. 
+ **Tipo di unità**: il tipo di unità definisce l'unità di misura per la fatturazione. Ad esempio, la larghezza di banda misurata in GBps o MBps, il numero di host o i dati misurati in MB, GB o TB.
+ **Dimensioni dei prezzi**: le dimensioni dei prezzi rappresentano una funzionalità o un servizio per cui hai impostato un prezzo unitario (ad esempio, utenti, scanCPUs, v o agenti distribuiti). Le dimensioni relative ai prezzi sono pubbliche. Tuttavia, puoi comunque definire offerte private e Bring Your Own License (BYOL) per prodotti pubblici. Non inserire i prezzi nei registri di misurazione. Tu misuri la quantità di unità e noi la utilizziamo insieme ai prezzi che hai definito durante la creazione del prodotto per calcolare la fattura dell'acquirente. 

  Se il prezzo del prodotto non corrisponde a nessuna delle categorie o dei tipi di unità predefiniti, puoi scegliere la categoria di **unità** generica. Quindi, utilizza la descrizione della dimensione per descrivere cos'è l'unità.

Facoltativamente, è possibile distribuire l'utilizzo in allocazioni in base alle proprietà monitorate. Le allocazioni vengono rappresentate come tag per l'acquirente. Questi tag consentono all'acquirente di visualizzare i costi suddivisi in base all'utilizzo in base ai valori dei tag. Ad esempio, se addebiti in base all'utente e gli utenti hanno la proprietà «Dipartimento», puoi creare allocazioni di utilizzo con tag con la chiave «Dipartimento» e un'allocazione per valore. Ciò non modifica il prezzo, le dimensioni o l'utilizzo totale riportato, ma consente al cliente di visualizzare i costi per categorie appropriate al prodotto.

Ti consigliamo di inviare un record di misurazione ogni ora. Tuttavia, puoi aggregare l'utilizzo anche su periodi giornalieri o mensili. In caso di interruzione, puoi aggregare l'utilizzo del software da parte degli acquirenti e inviarlo per la misurazione delle ore successive. Non puoi inviare più di un record all'ora.

*Per ulteriori informazioni sull'integrazione dell' AWS Marketplace Metering Service API per i prodotti container con prezzi di misurazione personalizzati, consulta il laboratorio [Integrazione con misurazione personalizzata](https://catalog.workshops.aws/mpseller/en-US/container/integrate-custom) del workshop per i Marketplace AWS venditori.*

**Importante**  
La prova gratuita e i diritti prepagati vengono monitorati su base oraria. Di conseguenza, l'invio separato di questi documenti potrebbe comportare un sovrapprezzo per l'acquirente.

**Topics**
+ [Prerequisiti per la misurazione personalizzata](#custom-metering-prereqs)
+ [Test `MeterUsage` dell'integrazione per ECS ed EKS](#testing-meterusage-integration)
+ [Test di MeterUsage integrazione per AgentCore](#testing-agentcore-metering)
+ [Gestione degli errori per `MeterUsage`](#custom-metering-entitlement-error-handling)
+ [(Facoltativo) Etichettatura in base al fornitore](#container-vendor-metered-tagging)
+ [Esempio di codice](#container-meter-code-example)
+ [Integrazione del prodotto container utilizzando la misurazione personalizzata con e AWS Marketplace Metering Service AWS SDK per Java](java-integration-example-meterusage.md)

## Prerequisiti per la misurazione personalizzata
<a name="custom-metering-prereqs"></a>

Prima di pubblicare il prodotto, devi fare quanto segue:

1. Crea un nuovo prodotto contenitore in e prendi nota del relativo codice prodotto. Portale di gestione Marketplace AWS

1. Utilizza un ruolo AWS Identity and Access Management (IAM) per l'endpoint task, pod o AgentCore Runtime che esegue l'applicazione con le autorizzazioni IAM necessarie per effettuare la chiamata. `MeterUsage` La policy gestita da IAM `AWSMarketplaceMeteringRegisterUsage` dispone di queste autorizzazioni. Per ulteriori informazioni sulla policy, consulta [ AWSMarketplaceMeteringFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSMarketplaceMeteringFullAccess.html)il *AWS Managed Policy Reference.*

1. (Facoltativo) Ti consigliamo di abilitare la AWS CloudTrail registrazione nella definizione dell'attività o del contenitore se desideri visualizzare la registrazione.

1. Effettua una chiamata di prova all'operazione `MeterUsage` API con un record per tutte le dimensioni di prezzo che definisci.

## Test `MeterUsage` dell'integrazione per ECS ed EKS
<a name="testing-meterusage-integration"></a>

Utilizza l'`MeterUsage`operazione per testare l'integrazione prima di inviare l'immagine Marketplace AWS per la pubblicazione.

`MeterUsage`Esegui la chiamata dalle immagini del contenitore eseguendo il prodotto su Amazon Elastic Container Service (Amazon ECS) o Amazon Elastic Kubernetes Service (Amazon EKS Account AWS ) con il codice su cui pubblichi il prodotto. Marketplace AWS La tua integrazione di misurazione deve impostare dinamicamente il file Regione AWS, anziché codificarlo. Tuttavia, durante il test, avvia almeno un'attività Amazon ECS o un pod Amazon EKS contenente il tuo container a pagamento nella regione degli Stati Uniti orientali (Virginia settentrionale) in modo che il team Marketplace AWS operativo possa verificare il tuo lavoro con i log di quella regione.

**Nota**  
Se il tuo prodotto supporta sia Amazon ECS che Amazon EKS, devi solo avviarlo in Amazon EKS per consentirci di convalidare la tua integrazione.
Testa ogni dimensione prima di lanciare il prodotto al pubblico e dopo aver aggiunto una nuova dimensione. Se non invii un record di misurazione per ogni dimensione associata a un prodotto contenitore, si verificherà un errore e la richiesta non andrà a buon fine.

Non puoi testare completamente l'integrazione finché il prodotto non sarà pubblicato con tutti i metadati e le informazioni sui prezzi richiesti. Se richiesto, il team operativo del Marketplace AWS catalogo può verificare la ricezione dei dati di misurazione.

## Test di MeterUsage integrazione per AgentCore
<a name="testing-agentcore-metering"></a>

Utilizza l'`MeterUsage`operazione per testare l'integrazione prima di inviare l'immagine Marketplace AWS per la pubblicazione.

Effettua una chiamata `MeterUsage` dalle immagini del contenitore eseguendo il prodotto su Amazon Bedrock AgentCore con l' AWS account su Marketplace AWS cui pubblichi il prodotto. La tua integrazione di misurazione deve impostare dinamicamente la AWS regione, anziché codificarla. Tuttavia, durante il test, avvia almeno un AgentCore agente Amazon Bedrock contenente il tuo container a pagamento nella regione Stati Uniti orientali (Virginia settentrionale) in modo che il team Marketplace AWS operativo possa verificare il tuo lavoro con i log di quella regione. 

 Non è necessario aggregare i record di utilizzo orario. `MeterUsage`Richiamate ogni chiamata di un agente con l'utilizzo di tale chiamata.

È necessario utilizzare l'ultima versione rilasciata dell' AWS SDK per la propria lingua. Questo compila automaticamente il `ClientToken` parametro con un valore generato automaticamente per favorire l'idempotenza. Le versioni precedenti dell'SDK che non compilano questo campo non funzioneranno per `MeterUsage` le chiamate dall'interno di Amazon Bedrock. AgentCore A causa di un problema di rete, devi riutilizzare esattamente la stessa richiesta quando riprovi. In questo modo si garantisce che le richieste vengano trattate in modo ideale.

A causa delle differenze nel comportamento di misurazione previsto tra Amazon Bedrock AgentCore e altri prodotti container, non è consigliabile condividere la stessa immagine del contenitore da utilizzare su Amazon Bedrock e AgentCore su Amazon ECS o EKS.

## Gestione degli errori per `MeterUsage`
<a name="custom-metering-entitlement-error-handling"></a>

Chiama l'`MeterUsage`impostazione del `DryRun` parametro su true all'avvio del contenitore per verificare che l'integrazione della misurazione funzioni. Se l'immagine del contenitore si integra con l'`MeterUsage`operazione e riceve un'eccezione diversa `ThrottlingException` dall'avvio del contenitore, è necessario chiudere il contenitore per impedirne l'uso non autorizzato.

Le eccezioni diverse da `ThrottlingException` vengono generate solo durante la chiamata iniziale a. `MeterUsage` Le chiamate successive dalla stessa attività Amazon ECS o dal pod Amazon EKS o dallo stesso endpoint AgentCore Runtime non vengono generate`CustomerNotSubscribedException`, anche se il cliente annulla l'iscrizione mentre l'attività o il pod è ancora in esecuzione. A questi clienti vengono comunque addebitati i costi per l'utilizzo dei container dopo l'annullamento dell'iscrizione e il loro utilizzo viene monitorato.

[MeterUsage](https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/API_MeterUsage.html)Consulta l'*AWS Marketplace Metering Service API Reference* per le descrizioni dettagliate degli errori più comuni per. `MeterUsage` Ogni linguaggio di programmazione AWS SDK dispone di una serie di linee guida per la gestione degli errori a cui puoi fare riferimento per ulteriori informazioni. 

## (Facoltativo) Etichettatura in base al fornitore
<a name="container-vendor-metered-tagging"></a>

L'etichettatura basata sul fornitore aiuta i fornitori di software indipendenti (ISVs) a fornire all'acquirente informazioni più dettagliate sull'utilizzo del software e può aiutarlo a eseguire l'allocazione dei costi.

**Nota**  
L'etichettatura basata sul fornitore non è supportata per le richieste di misurazione per i prodotti Amazon Bedrock. AgentCore 

Esistono diversi modi per contrassegnare l'utilizzo del software da parte di un acquirente. Uno consiste nel chiedere innanzitutto agli acquirenti cosa vogliono vedere nella ripartizione dei costi. Quindi puoi suddividere l'utilizzo tra le proprietà monitorate per l'account dell'acquirente. Esempi di proprietà includono `AccountId` `Business Unit``Cost Centers`, e altri metadati pertinenti per il tuo prodotto. Queste proprietà vengono esposte all'acquirente come tag. Utilizzando i tag, gli acquirenti possono visualizzare i costi suddivisi in base all'utilizzo in base ai valori dei tag nella loro AWS Billing Console ([https://console.aws.amazon.com/costmanagement/](https://console.aws.amazon.com/costmanagement/)). I tag misurati in base al fornitore non modificano il prezzo, le dimensioni o l'utilizzo totale segnalato. Consente ai clienti di visualizzare i costi per categorie appropriate al prodotto.

In un caso d'uso comune, un acquirente sottoscrive un abbonamento al tuo prodotto utilizzando un Account AWS prodotto. L'acquirente ha inoltre numerosi utenti associati allo stesso abbonamento al prodotto. È possibile creare allocazioni di utilizzo con tag con una chiave di e `AccountId` quindi allocare l'utilizzo a ciascun utente. In questo caso, gli acquirenti possono attivare il `AccountId` tag nella console di Billing and Cost Management e analizzare l'utilizzo da parte dei singoli utenti.

### Esperienza del venditore
<a name="container-vendor-metered-tag-seller"></a>

I venditori possono aggregare i record di misurazione delle risorse con lo stesso set di tag anziché aggregare l'utilizzo di tutte le risorse. Ad esempio, i venditori possono creare il record di misurazione che include diversi bucket. `UsageAllocations` Ogni bucket rappresenta un set di tag, ad `UsageQuantity` esempio e. `AccountId` `BusinessUnit` 

Nel diagramma seguente, **Resource 1** ha un set unico di `BusinessUnit` tag `AccountId` e viene visualizzata nel **Metering Record** come una voce singola. 

La **risorsa 2** e la **risorsa 3** hanno entrambe lo stesso `AccountId` tag e lo stesso `BusinessUnit` tag. `2222` `Operations` Di conseguenza, vengono combinati in un'unica `UsageAllocations` voce nel **Metering Record**.

![\[Diagramma che mostra come i tag di misurazione dei fornitori combinano i dati di utilizzo. Tre risorse (Risorsa 1, 2 e 3) con dati diversi AccountIds BusinessUnits vengono consolidate in un unico record di misurazione, UsageAllocations raggruppate per AccountId e BusinessUnit prima di essere inviate al AWS Marketplace Metering Service.\]](http://docs.aws.amazon.com/it_it/marketplace/latest/userguide/images/seller-vendor-meter-tag.png)


I venditori possono anche combinare le risorse senza tag in un'unica risorsa `UsageAllocation` con la quantità di utilizzo assegnata e inviarla come una delle voci inserite. `UsageAllocations`

I limiti includono:
+ Numero di tag: 5
+ Dimensione di `UsageAllocations` (cardinalità): 2.500

Le convalide includono:
+ Caratteri consentiti per la chiave e il valore del tag: a-zA-Z 0-9\$1 -= . \$1:\$1 /@
+ Numero massimo di tag nell'`UsageAllocation`elenco: 5
+ Due non `UsageAllocations` possono avere gli stessi tag (ovvero la stessa combinazione di chiavi e valori dei tag). In tal caso, devono usare lo stesso`UsageAllocation`.
+ La somma `AllocatedUsageQuantity` di `UsageAllocation` deve essere uguale a`UsageQuantity`, che è l'utilizzo aggregato.

### Esperienza dell'acquirente
<a name="container-vendor-metered-tag-buyer"></a>

La tabella seguente mostra un esempio dell'esperienza dell'acquirente dopo che un acquirente ha attivato i tag `AccountId` e `BusinessUnit` fornitore. 

In questo esempio, l'acquirente può visualizzare l'utilizzo allocato nel proprio rapporto **sui costi** di utilizzo. I tag misurati dal fornitore utilizzano il prefisso. `“aws:marketplace:isv”` Gli acquirenti possono attivarli in Billing and Cost Management, **in Tag di allocazione dei costi AWS, tag di allocazione** **dei costi generati**.

La prima e l'ultima riga del **report sull'utilizzo dei costi** sono pertinenti a ciò che il venditore invia al servizio di misurazione (come mostrato nell'esempio). [Esperienza del venditore](#container-vendor-metered-tag-seller)


**Report sull'utilizzo dei costi (semplificato)**  

| ProductCode  | Acquirente | UsageDimension | UsageQuantity | `aws:marketplace:isv:AccountId ` | `aws:marketplace:isv:BusinessUnit` | 
| --- | --- | --- | --- | --- | --- | 
| xyz | 111122223333 | Rete: per (GB) ispezionata  | 70 | 2222 | Operazioni | 
| xyz | 111122223333 | Rete: per (GB) ispezionata  | 30 | 3333 | Ambito finanziario | 
| xyz | 111122223333 | Rete: per (GB) ispezionata  | 20 | 4444 | IT | 
| xyz | 111122223333 | Rete: per (GB) ispezionata  | 20 | 5555 | Marketing | 
| xyz | 111122223333 | Rete: per (GB) ispezionata  | 30 | 1111 | Marketing | 

Per un esempio di codice, consulta [`MeterUsage`esempio di codice con etichettatura per l'allocazione dell'utilizzo (opzionale)](#container-meterusage-code-example).

## Esempio di codice
<a name="container-meter-code-example"></a>

Il seguente esempio di codice viene fornito per aiutarvi a integrare il prodotto contenitore con quanto Marketplace AWS APIs necessario per la pubblicazione e la manutenzione del prodotto.

### `MeterUsage`esempio di codice con etichettatura per l'allocazione dell'utilizzo (opzionale)
<a name="container-meterusage-code-example"></a>

Il seguente esempio di codice è rilevante per i prodotti container con modelli di determinazione dei prezzi al consumo. L'esempio di Python invia un record di misurazione con i tag di allocazione dell'uso appropriati per addebitare le Marketplace AWS commissioni ai clienti. 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. 
# Marketplace AWS can only accept records for up to an hour in the past. 
#
# productCode is supplied after the Marketplace AWS 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 
)
```

*Per ulteriori informazioni in merito`MeterUsage`, consulta l'API [MeterUsage](https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/API_MeterUsage.html)Reference.AWS Marketplace Metering Service *

### Esempio di risposta
<a name="container-meterusage-code-response"></a>

```
{ "MeteringRecordId": "string" }
```

# Integrazione del prodotto container utilizzando la misurazione personalizzata con e AWS Marketplace Metering Service AWS SDK per Java
<a name="java-integration-example-meterusage"></a>

Marketplace AWS i prodotti container possono avere una misurazione personalizzata per un massimo di 24 diverse dimensioni di prezzo per prodotto. Per abilitare la misurazione personalizzata, integri il tuo prodotto container con AWS Marketplace Metering Service. Puoi definire le tue unità di prezzo e la misurazione personalizzata per tale utilizzo e per la fatturazione utilizzando AWS il funzionamento dell'API. [https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/API_MeterUsage.html](https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/API_MeterUsage.html) L'esempio seguente delinea un'implementazione che utilizza il servizio di misurazione AWS SDK per Java per l'integrazione con il funzionamento del servizio di [Marketplace AWS misurazione](https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/Welcome.html). `MeterUsage` 

Per tutti i dettagli completi, consultare [`MeterUsage`Esempi di Java](#meterusage-java-example). Molti dei passaggi seguenti si applicano indipendentemente dalla lingua. 

**Esempio: integrazione del servizio Marketplace AWS di misurazione**

1. Accedi alla [Portale di gestione Marketplace AWS](https://aws.amazon.com/marketplace/management/tour).

1. Da **Assets**, scegli **Containers** per iniziare a creare un nuovo prodotto container. La creazione del prodotto genera il codice prodotto per il prodotto da integrare con l'immagine del contenitore. Per informazioni sull'impostazione delle autorizzazioni AWS Identity and Access Management (IAM), consulta[Marketplace AWS autorizzazioni API di misurazione e autorizzazione](iam-user-policy-for-aws-marketplace-actions.md).

1.  Scarica l'[SDK AWS Java](https://aws.amazon.com/sdk-for-java/) pubblico. 
**Importante**  
 Per chiamare le operazioni dell'API di misurazione da Amazon Elastic Kubernetes Service (Amazon EKS)[, devi AWS utilizzare](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts-minimum-sdk.html) un SDK supportato ed eseguirlo su un cluster Amazon EKS che esegue Kubernetes 1.13 o versione successiva. 

1. Chiama l'`MeterUsage`operazione dal task o dal pod una volta all'ora per ogni utilizzo di dimensione. L'operazione API accetta un record di misurazione per una combinazione unica di `Dimension``Resource`, e`Hour`. La risorsa è un'attività Amazon Elastic Container Service (Amazon ECS) o un pod Amazon EKS.

   ```
   {
       "ProductCode" : "string", // (required)
       "UsageDimension" : "string", // (required)
       "UsageQuantity":  int, // (optional) Default is 0. Acceptable value from [0, 2147483647 (INT_MAX)]
       "Timestamp": Date, // (required) Timestamp in UTC. Value can be one hour in the past.
       "UsageAllocations": List<UsageAllocation> // (optional) UsageAllocations across 1 or more tags.
   }
   ```
**Nota**  
È possibile riscontrare problemi transitori nella connessione a. AWS Marketplace Metering Service Marketplace AWS consiglia vivamente di implementare nuovi tentativi per un massimo di 30 minuti, con backoff esponenziale, per evitare interruzioni a breve termine o problemi di rete.

1. Ricostruisci una nuova versione dell'immagine del contenitore che includa la `MeterUsage` chiamata, tagga il contenitore e inviala a qualsiasi registro Docker compatibile con Amazon ECS o Amazon EKS, come Amazon Elastic Container Registry (Amazon ECR). Se utilizzi Amazon ECR, assicurati che l'account che avvia l'attività Amazon ECS o il pod Amazon EKS disponga delle autorizzazioni per l'archivio Amazon ECR. In caso contrario, l'operazione non va a buon fine.

1. Crea un ruolo [IAM](https://aws.amazon.com/iam/) che conceda l'autorizzazione alla chiamata del contenitore`MeterUsage`, come definito nel seguente esempio di codice. È necessario fornire questo ruolo AWS Identity and Access Management (IAM) nel parametro [Task Role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_role_arn) della definizione del task Amazon ECS o del pod Amazon EKS.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": [
                   "aws-marketplace:MeterUsage"
                   ],
                   "Effect": "Allow",
                   "Resource": "*"
           }
       ]
   }
   ```

------

1. Crea un'attività Amazon ECS o una definizione del pod Amazon EKS che faccia riferimento al contenitore integrato Marketplace AWS e che faccia riferimento al ruolo IAM creato nella fase 6. Se desideri visualizzare la registrazione, abilita la AWS CloudTrail registrazione nella definizione dell'attività. 

1. Crea un cluster Amazon ECS o Amazon EKS per eseguire la tua attività o il tuo pod. Per ulteriori informazioni sulla creazione di un cluster Amazon ECS, consulta [Creating a cluster](https://docs.aws.amazon.com/AmazonECS/latest/userguide/create_cluster.html) nella *Amazon Elastic Container Service Developer Guide*. [Per ulteriori informazioni sulla creazione di un cluster Amazon EKS (utilizzando Kubernetes versione 1.1.3.x o successiva), consulta Creazione di un cluster Amazon EKS.](https://docs.aws.amazon.com/eks/latest/userguide/create_cluster.html)

1. Configura il cluster Amazon ECS o Amazon EKS e avvia la definizione di attività Amazon ECS o il pod Amazon EKS che hai creato nella fase 8, nella regione us-east-1. AWS È solo durante questo processo di test, prima che il prodotto sia disponibile, che devi utilizzare questa regione.

1. Quando ricevi una risposta valida `MeterUsage` per ciascuna delle dimensioni pubblicate per il prodotto, puoi iniziare a creare il tuo prodotto contenitore. Per domande, contatta il team [operativo Marketplace AWS del venditore](https://aws.amazon.com/marketplace/management/contact-us/). 

## `MeterUsage`Esempi di Java
<a name="meterusage-java-example"></a>

I seguenti esempi di codice utilizzano AWS Marketplace Metering Service per chiamare l'`MeterUsage`operazione. AWS SDK per Java 

Il seguente esempio di codice chiama l'`MeterUsage`operazione senza alcuna`UsageAllocations`.

```
import com.amazonaws.services.marketplacemetering.AWSMarketplaceMetering;
import com.amazonaws.services.marketplacemetering.AWSMarketplaceMeteringClientBuilder;
import com.amazonaws.services.marketplacemetering.model.MeterUsageRequest;
import com.amazonaws.services.marketplacemetering.model.MeterUsageResult;

import java.util.Date;

public class MeterUsage {
    private static final String PRODUCT_CODE = ".......";
    private final AWSMarketplaceMetering awsMarketplaceMetering;

    public MeterUsage() {
        awsMarketplaceMetering = AWSMarketplaceMeteringClientBuilder.standard().build();
    }

    /**
     * Submits metering record for a FCP Dimension. The API accepts 1 metering record per dimension
     * for a given buyer's resource for a given timestamp hour. Ex. If a buyer is running 10 tasks,
     * the API will accepts 1 call to MeterUsage in an hour for a given dimension for each running task.
     *
     * @param dimension - FCP dimension name provided during the publishing of the product.
     * @param quantity - FCP dimension consumption value for the hour.
     * @param timestamp - Timestamp, in UTC, for which the usage is being reported.
     *                  Timestamp cant be more than 1 hour in the past.
     *                  Make sure the timestamp value is not before the start of the software usage.
     */
    public void callMeterUsage(String dimension, int quantity, Date timestamp) {
        MeterUsageRequest meterUsageRequest = new MeterUsageRequest()
                .withProductCode(PRODUCT_CODE)
                .withUsageDimension(dimension)
                .withUsageQuantity(quantity)
                .withTimestamp(timestamp);
        MeterUsageResult meterUsageResult = awsMarketplaceMetering.meterUsage(meterUsageRequest);
    }
}
```

Il seguente esempio di codice richiama l'`MeterUsage`operazione con`UsageAllocations`.

```
private static String callMeterUsageWithAllocationsByTag(AWSMarketplaceMetering marketplaceMetering) {
        // Tag Keys for the product
        String tagKey1 = "Key1";
        String tagKey2 = "Key2";
        String tagKey3 = "Key3";

        // 1st Usage Allocation bucket which has two Tags [{Key1, Key1Value1},{Key2, Key2Value1}]
        List<Tag> tagsForUsageAllocation1 = Arrays.asList(new Tag().withKey(tagKey1).withValue("Key1Value1"),
                new Tag().withKey(tagKey2).withValue("Key2Value1"));
        UsageAllocation usageAllocation1 = new UsageAllocation()
                .withTags(tagsForUsageAllocation1)
                .withAllocatedUsageQuantity(20);

        // 2nd Usage Allocation bucket which has two Tags [{Key1, Key1Value2},{Key2, Key2Value1}]
        List<Tag> tagsForUsageAllocation2 = Arrays.asList(new Tag().withKey(tagKey1).withValue("Key1Value2"),
                new Tag().withKey(tagKey2).withValue("Key2Value1"));
        UsageAllocation usageAllocation2 = new UsageAllocation()
                .withTags(tagsForUsageAllocation2)
                .withAllocatedUsageQuantity(20);

        // 3rd Usage Allocation bucket which has two Tags [{Key1, Key1Value2},{Key2, Key2Value2},{Key3, Key3Value1}]
        List<Tag> tagsForUsageAllocation3 = Arrays.asList(new Tag().withKey(tagKey1).withValue("Key1Value2"),
                new Tag().withKey(tagKey2).withValue("Key2Value2"),
                new Tag().withKey(tagKey3).withValue("Key3Value1"));
        UsageAllocation usageAllocation3 = new UsageAllocation()
                .withTags(tagsForUsageAllocation3)
                .withAllocatedUsageQuantity(15);

        // 4th Usage Allocation bucket with no tags
        UsageAllocation usageAllocation4 = new UsageAllocation()
                .withAllocatedUsageQuantity(15);

        List<UsageAllocation> usageAllocationList = Arrays.asList(usageAllocation1,
                usageAllocation2,
                usageAllocation3,
                usageAllocation4);

        MeterUsageRequest meterUsageRequest = new MeterUsageRequest()
                .withProductCode("TestProductCode")
                .withUsageDimension("Dimension1")
                .withTimestamp(new Date())
                //UsageQuantity value must match with sum of all AllocatedUsageQuantity
                .withUsageQuantity(70)
                .withUsageAllocations(usageAllocationList);

        MeterUsageResult meterUsageResult;
        try {
            meterUsageResult = marketplaceMetering.meterUsage(meterUsageRequest);
        } catch (Exception e) {
            // Log Error
            throw e;
        }

        return meterUsageResult.getMeteringRecordId();
    }
```