Misurazione personalizzata per prodotti AMI con AWS Marketplace Metering Service - Marketplace AWS

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à.

Misurazione personalizzata per prodotti AMI con AWS Marketplace Metering Service

L'AWS Marketplace Metering Service è una funzionalità di determinazione dei prezzi e misurazione che i venditori possono utilizzare per addebitare direttamente il proprio software in base alla categoria di utilizzo. Esistono cinque categorie di utilizzo: utenti, dati, larghezza di banda, host o unità. Puoi utilizzare il servizio di misurazione con prodotti basati su Amazon Machine Image (AMI), basati su container e basati su Software as a Service (SaaS). Per ulteriori informazioni, consulta la pagina relativa alla documentazione di riferimento dell'API Marketplace AWS Metering Service.

Tutto il software basato su AMI che utilizza il servizio di misurazione deve soddisfare i seguenti requisiti:

  • Il software deve essere avviato Marketplace AWS tramite Amazon Machine Image (AMI).

  • Se disponi di un prodotto esistente Marketplace AWS, devi inviare una nuova AMI e creare un nuovo prodotto per abilitare questa funzionalità.

  • A tutto il software deve essere assegnato un ruolo AWS Identity and Access Management (IAM). Il cliente finale deve aggiungere un ruolo IAM all'istanza Amazon Elastic Compute Cloud (Amazon EC2) a cui l'utente fornisce il software. L'uso di un ruolo IAM è facoltativo quando si distribuisce il software tramite. Marketplace AWSÈ necessario quando si distribuisce il software AWS Marketplace Metering Service.

  • Il tuo software deve essere in grado di determinare il consumo in qualche modo.

I prodotti che utilizzano il servizio di misurazione devono addebitare i costi ai clienti in base a una singola categoria di utilizzo, ma è possibile definire fino a 24 dimensioni di una singola categoria. A seconda della categoria, i prezzi del software possono essere calcolati in base alle risorse fornite, alle risorse simultanee o al consumo di risorse accumulate. Tutti gli addebiti sono comunque addebitati ogni ora dal cliente. Tutto l'utilizzo viene calcolato e fatturato mensilmente utilizzando lo stesso meccanismo del software esistente. Marketplace AWS

L'AWS Marketplace Metering Service consente diversi nuovi scenari. Ad esempio, se il tuo software monitora gli host, puoi addebitare un costo per ogni host monitorato. È possibile avere prezzi diversi in base alle dimensioni dell'host e addebitare il numero di host simultanei monitorati ogni ora. Analogamente, se il software consente l'accesso a più utenti di un'organizzazione, è possibile addebitare i costi in base al numero di utenti. Ogni ora, al cliente viene addebitato il numero totale di utenti assegnati.

Chiama AWS Marketplace Metering Service

Il tuo software deve chiamare il servizio di misurazione ogni ora e registrare il valore di consumo per quell'ora.

All'avvio, il software dovrebbe registrare il minute-of-the-hour momento in cui è stato avviato. Questo valore è denominato minuto di avvio. Ogni ora del primo minuto, il software deve determinare il valore di consumo per quell'ora e chiamare il servizio di misurazione. Per informazioni su come ottenere questo valore, vedere Modifica del software per utilizzare il servizio di misurazione.

Per svegliarsi ogni ora all'inizio, il software deve utilizzare uno dei seguenti approcci:

  • Un thread all'interno del software.

  • Un processo demone che si avvia con l'istanza o il software.

  • Un cron job configurato durante l'avvio dell'applicazione.

    Nota

    Il tuo software deve chiamare AWS Marketplace Metering Service utilizzando il ruolo IAM configurato sull'istanza del cliente e specificare la dimensione e la quantità di consumo.

Il tuo software può utilizzare l' AWS SDK per chiamare AWS Marketplace Metering Service, in modo simile all'implementazione di esempio seguente:

  1. Usa il profilo dell'istanza per creare un client di servizio. Ciò richiede il ruolo configurato per l'istanza EC2. Le credenziali del ruolo vengono aggiornate automaticamente dall'SDK.

  2. Ogni ora, leggi la configurazione e lo stato del software per determinare i valori di consumo per quell'ora. Ciò potrebbe includere la raccolta di un value-per-dimension.

  3. Chiama il meterUsage metodo sul client SDK con i seguenti parametri (chiama in aggiunta per ogni dimensione che viene utilizzata):

    • timestamp— Timestamp dell'ora da registrare (in UTC).

    • productCode— Codice prodotto assegnato al software.

    • dimension— Dimensione (o dimensioni) assegnate al software.

    • quantity— Valore del consumo per ora.

    • allocations— (Facoltativo) È possibile fornire allocazioni per l'utilizzo tra le proprietà monitorate. Queste allocazioni devono sommarsi al consumo totale indicato nel record. Per l'acquirente, queste vengono visualizzate come potenziali tag di allocazione dei costi nei propri strumenti di fatturazione (come la AWS Billing and Cost Management console). L'acquirente deve attivare i tag nel proprio account per monitorare i costi utilizzando questi tag.

Inoltre, il software deve chiamare un endpoint AWS Marketplace Metering Service locale. Il prodotto deve avere una corretta configurazione regionale degli endpoint, quindi us-east-1 invia i record a un us-east-1 endpoint e us-west-2 invia i record a un endpoint. us-west-2 Effettuare chiamate all'interno della regione offre agli acquirenti un'esperienza più stabile e previene situazioni in cui la disponibilità di una regione non correlata potrebbe influire sul software in esecuzione in un'altra regione.

Quando invii i record di misurazione al servizio, devi connetterti all'AWS Marketplace Metering Service nella tua regione. Utilizza il metodo getCurrentRegion() helper per determinare la regione in cui è in esecuzione l'istanza EC2, quindi trasmetti queste informazioni sulla regione al costruttore. MeteringServiceClient Se non specifichi un Regione AWS nel costruttore SDK, viene utilizzata la regione predefinita. us-east-1 Se l'applicazione tenta di effettuare chiamate interregionali al servizio, le chiamate vengono rifiutate. Per ulteriori informazioni, vedere Determinazione della regione corrente di un'applicazione e getCurrentRegion().

Gestione dei guasti

Il prodotto deve inviare i dati di misurazione al servizio, un endpoint Internet pubblico, in modo che l'utilizzo possa essere registrato e fatturato. Poiché un cliente può modificare le impostazioni di rete in modo da impedire la trasmissione dei dati di misurazione, il prodotto dovrebbe tenerne conto scegliendo una modalità di errore.

Nota

Alcuni errori di misurazione possono essere problemi transitori di connessione a. AWS Marketplace Metering Service Marketplace AWS consiglia vivamente di implementare nuovi tentativi per un massimo di 30 minuti, con interruzione esponenziale, per evitare interruzioni a breve termine o problemi di rete.

In genere, il software può fallire nell'apertura (fornisce un messaggio di avviso ma mantiene la piena funzionalità) o nella chiusura (disattiva tutte le funzionalità dell'applicazione fino a quando non viene ristabilita una connessione). È possibile scegliere di fallire l'apertura, la chiusura o qualcosa di specifico dell'applicazione. Si consiglia vivamente di evitare la chiusura in caso di guasto della misurazione per meno di due ore.

Ad esempio, in caso di mancata apertura parziale, puoi continuare a consentire l'accesso al software ma non consentire all'acquirente di modificare le impostazioni del software. In alternativa, un acquirente potrebbe comunque accedere al software ma non sarebbe in grado di creare utenti aggiuntivi. Il software è responsabile della definizione e dell'applicazione di questa modalità di errore. La modalità di errore del software deve essere inclusa quando viene inviata l'AMI e non può essere modificata in seguito.

Limitazioni

Tieni a mente queste limitazioni quando progetti e invii il tuo software compatibile con il servizio di misurazione:

  • Requisiti del ruolo IAM e del gateway Internet per i vostri clienti: i vostri clienti devono disporre di un gateway Internet e devono avviare il software con un ruolo IAM con autorizzazioni specifiche. Per ulteriori informazioni, consulta Marketplace AWS autorizzazioni API di misurazione e autorizzazione. Il tuo software non può connettersi al servizio di misurazione se queste due condizioni non sono soddisfatte.

  • Impossibilità di aggiungere un prodotto nuovo o modificare la categoria di utilizzo del prodotto Metering Service esistente: quando i clienti si abbonano al tuo prodotto software, accettano i termini e le condizioni. La modifica delle categorie di utilizzo nei prodotti con il servizio di misurazione richiede un nuovo prodotto e un nuovo abbonamento.

  • Impossibilità di modificare le dimensioni del prodotto Metering Service esistente: quando i clienti si abbonano al tuo prodotto software, accettano i termini e le condizioni. La modifica delle dimensioni dei prodotti con il servizio di misurazione richiede un nuovo prodotto e un nuovo abbonamento. Puoi aggiungere nuove dimensioni ai prodotti esistenti, fino al limite di 24.

  • Mancanza di versioni di prova gratuite e abbonamenti annuali: i prodotti Metering Service non supportano le prove gratuite e gli abbonamenti annuali al momento del lancio.

  • Considerazioni sulla distribuzione multiistanza o basata su cluster: alcuni software vengono distribuiti come parte di una distribuzione multiistanza. Quando progetti il software, considera come e dove viene misurato il consumo e dove vengono emessi i record di misurazione.

esempio di codice

Il seguente esempio di codice viene fornito per aiutarti a integrare il tuo prodotto AMI con le Marketplace AWS API necessarie per la pubblicazione e la manutenzione del prodotto.

MeterUsagecon etichettatura per l'allocazione dell'uso (opzionale)

Il seguente esempio di codice è rilevante per i prodotti AMI 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. # 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 )

Per ulteriori informazioni MeterUsagein meritoMeterUsage, consulta la sezione Marketplace AWS Metering Service API Reference.

Example response

{ "MeteringRecordId": "string" }