Condividi tramite


Fatturazione a consumo per contenitori di Azure con il servizio di misurazione del marketplace commerciale

Con il servizio di misurazione del marketplace commerciale, è possibile creare offerte di Azure Container che vengono addebitate in base alle unità non standard. Prima di pubblicare l'offerta nel marketplace commerciale, definire le dimensioni di fatturazione, ad esempio larghezza di banda, partizioni, file di log, analisi, messaggi di posta elettronica elaborati e così via. I clienti pagano quindi in base al consumo di queste dimensioni, con l'applicazione che informa Microsoft tramite l'API del servizio di misurazione del marketplace commerciale degli eventi fatturabili man mano che si verificano.

Prerequisiti per la fatturazione a consumo

Per consentire a un'offerta di Azure Container di usare la fatturazione a consumo, è prima necessario esaminare le opzioni di licenza descritte in Pianificare l'offerta di Azure Container e assicurarsi di avere esigenze di fatturazione personalizzate che non siano soddisfatte da uno dei sei modelli di fatturazione predefiniti esistenti.

L'offerta di Azure Container può quindi integrarsi con le API del servizio di misurazione del marketplace commerciale per informare Microsoft di eventi fatturabili.

Importante

L'applicazione dovrà chiamare le API del servizio di misurazione del marketplace commerciale. Attualmente non è disponibile un'opzione per consentire al servizio ospitato (all'esterno dell'applicazione) di chiamare l'API del servizio di misurazione.

Nota

Il servizio di misurazione del Marketplace è disponibile solo per il modello di fatturazione personalizzato e non si applica al modello di fatturazione per utente.

Come la fatturazione a consumo si adatta ai prezzi

Comprendere la gerarchia dell'offerta è importante quando si tratta di definire l'offerta insieme ai relativi modelli di determinazione dei prezzi.

  • Ogni offerta è configurata per la vendita tramite Microsoft o meno. Dopo la pubblicazione di un'offerta, questa opzione non può essere modificata.
  • Ogni offerta, configurata per la vendita tramite Microsoft, può avere uno o più piani.
  • A ogni piano è associato un modello tariffario: piano con fatturazione mensile basata sull'utilizzo o Bring your own license (BYOL). Per il piano di fatturazione mensile basato sull'utilizzo, è possibile scegliere gratuitamente, una delle sei opzioni di fatturazione predefinite o personalizzate.
  • Non è possibile aggiornare il modello tariffario e le opzioni di input dei prezzi dopo la pubblicazione.
  • Ogni piano deve avere un piano tariffario completo.
  • È possibile scegliere di usare dimensioni personalizzate per addebitare ai clienti di soddisfare le esigenze di fatturazione. Ogni dimensione rappresenta un'unità fatturabile comunicata dal servizio a Microsoft usando l'API del servizio di misurazione del marketplace commerciale.

Importante

È necessario tenere traccia dell'utilizzo nel codice e inviare solo gli eventi di utilizzo a Microsoft per l'utilizzo che si vuole fatturare al cliente.

Nota

Le offerte verranno fatturate ai clienti nella valuta del contratto del cliente, utilizzando il prezzo di mercato locale pubblicato al momento della creazione dell'offerta. L'importo pagato dai clienti e che gli ISV vengono pagati dipende dai tassi di cambio esteri al momento in cui il cliente esegue la transazione dell'offerta. Altre informazioni su "Come convertire la valuta?".

Opzioni di prezzi personalizzate di esempio

Ad esempio, Contoso è un editore il cui IP si trova nella logica di partizionamento orizzontale per l'applicazione Kubernetes. Contoso vuole addebitare ai clienti i costi in base al numero di partizioni usate. Stanno esplorando anche altre opzioni di fatturazione convenientemente e competitivo. Contoso è registrato come editore nel Centro per i partner per il programma del marketplace commerciale e vuole pubblicare offerte di contenitori per i clienti di Azure. Esistono quattro piani associati a Contoso, descritti di seguito:

  • Addebito per ogni partizione usata all'ora, ad esempio $ 1.000/partizione/ora

    Screenshot che illustra l'addebito per le partizioni usate all'ora.

  • Modellazione di un pagamento monouso o fatturazione ricorrente: si supponga che Contoso voglia addebitare a un cliente $449/mo per l'utilizzo di un massimo di 100 file di log dalla propria applicazione. La logica dell'applicazione di Contoso tiene traccia dell'evento di utilizzo per il mese e attiva un addebito alla fine del mese per l'utilizzo di 100 file di log.

    Screenshot che illustra la modellazione di un pagamento monouso o fatturazione ricorrente.

  • Modellazione della fatturazione a livelli: si supponga che Contoso voglia pagare $449/mo per un massimo di 100 partizioni e quindi prezzi a livelli per qualsiasi eccedenza. La logica dell'applicazione tiene traccia dell'utilizzo per il mese, segmenta l'utilizzo di conseguenza e lo segnala usando le API di misurazione seguenti alla fine del periodo:

    Screenshot che illustra la fatturazione a livelli di modellazione.

  • Fatturazione multidimensionale: Contoso può anche usare la misurazione personalizzata per soddisfare le esigenze di fatturazione avanzata usando più dimensioni

    Screenshot che illustra la fatturazione multidimensionale.

In base al piano selezionato, un cliente di Azure che riceve l'offerta Contoso Container viene addebitata in base all'utilizzo. Contoso conta l'utilizzo senza inviare eventi di utilizzo a Microsoft. Quando i clienti utilizzano una quantità adeguata o su base periodica, Contoso segnala l'utilizzo. I clienti non devono modificare i piani o fare nulla di diverso. Contoso misura l'utilizzo e inizia a generare eventi di utilizzo a Microsoft per l'addebito dell'utilizzo eccessivo tramite l'API del servizio di misurazione del marketplace commerciale. Microsoft a sua volta addebita al cliente l'utilizzo come specificato dall'editore nelle dimensioni personalizzate. La fatturazione viene eseguita nel ciclo di fatturazione mensile successivo.

Dimensioni di fatturazione

Ogni dimensione di fatturazione definisce un'unità personalizzata in base alla quale l'ISV può generare eventi di utilizzo. Le dimensioni di fatturazione vengono usate anche per comunicare al cliente su come verranno fatturate per l'uso del software. Sono definiti come segue:

  • ID: identificatore di dimensione non modificabile a cui si fa riferimento durante l'emissione di eventi di utilizzo.
  • Nome visualizzato: nome visualizzato associato alla dimensione, ad esempio "sms inviati".
  • Unità di misura: descrizione dell'unità di fatturazione, ad esempio "per sms" o "per 100 messaggi di posta elettronica".
  • Prezzo per unità in USD: prezzo per un'unità di dimensione. Può essere 0.

Importante

È necessario tenere traccia dell'utilizzo nel codice dell'applicazione e inviare eventi di utilizzo a Microsoft in base alle esigenze di fatturazione.

Le dimensioni di fatturazione vengono condivise in tutti i piani per un'offerta. Alcuni attributi si applicano alla dimensione in tutti i piani e altri attributi sono specifici del piano.

Gli attributi, che definiscono la dimensione stessa, vengono condivisi in tutti i piani per un'offerta. Prima di pubblicare l'offerta, una modifica apportata a questi attributi dal contesto di qualsiasi piano influisce sulla definizione della dimensione in tutti i piani. Dopo aver pubblicato l'offerta, questi attributi non sono più modificabili. Gli attributi sono:

  • ID
  • Nome visualizzato
  • Unità di misura

Gli altri attributi di una dimensione sono specifici di ogni piano e possono avere valori diversi da piano a piano. Prima di pubblicare il piano, è possibile modificare questi valori e solo questo piano sarà interessato. Dopo aver pubblicato il piano, questi attributi non saranno più modificabili. Gli attributi sono:

  • Prezzo per unità in USD

Le dimensioni hanno anche un concetto speciale denominato "enabled":

  • Enabled indica che questo piano partecipa a questa dimensione. Se si sta creando un nuovo piano che non invia eventi di utilizzo in base a questa dimensione, è possibile lasciare deselezionata questa opzione. Inoltre, tutte le nuove dimensioni aggiunte dopo la prima pubblicazione di un piano verranno visualizzate come "non abilitate" nel piano già pubblicato. Una dimensione disabilitata non verrà visualizzata in alcun elenco di dimensioni per un piano visualizzato dai clienti.

Nota

Gli scenari seguenti sono supportati in modo esplicito:

  • È possibile aggiungere una nuova dimensione a un nuovo piano. La nuova dimensione non verrà abilitata per i piani già pubblicati.

Impostazione del prezzo della dimensione per unità per mercato supportato

Analogamente ad altri prezzi basati sull'utilizzo, i prezzi delle dimensioni di fatturazione possono essere impostati in base al paese o all'area geografica supportati. È necessario usare la funzionalità di importazione ed esportazione dei dati dei prezzi nel Centro per i partner, come indicato di seguito.

  1. Definire le dimensioni desiderate e contrassegnare quali mercati sono supportati.
  2. Esportare questi dati in un file.
  3. Aggiungere i prezzi corretti per paese/area geografica e importare il file nel Centro per i partner.

L'interfaccia utente del contatore cambia per riflettere che i prezzi della dimensione possono essere visualizzati solo nel file.

Screenshot che illustra l'interfaccia utente del contatore.

Piano privato

Analogamente ai piani di fatturazione predefiniti basati sull'utilizzo, un piano con dimensioni personalizzate può essere impostato come piano privato, accessibile solo dal gruppo di destinatari definito dal piano.

Vincoli

Comportamento di blocco

Poiché una dimensione usata con il servizio di misurazione del marketplace commerciale rappresenta una comprensione del modo in cui un cliente pagherà il servizio, tutti i dettagli per una dimensione non sono più modificabili dopo la pubblicazione. È importante avere le dimensioni completamente definite per un piano prima della pubblicazione.

Dopo la pubblicazione di un'offerta con una dimensione, i dettagli a livello di offerta per tale dimensione non possono più essere modificati:

  • ID
  • Nome visualizzato
  • Unità di misura

Dopo la pubblicazione di un piano, questo dettaglio a livello di piano non può più essere modificato:

  • Indica se la dimensione è abilitata o meno per il piano

Limiti superiori

Il numero massimo di dimensioni che è possibile configurare per una singola offerta è di 30 dimensioni univoche.

Fatturazione a consumo di Azure Container

Le API di fatturazione a consumo devono essere usate quando l'editore crea dimensioni di misurazione personalizzate per pubblicare un'offerta nel Centro per i partner. L'integrazione con le API di fatturazione a consumo è necessaria per qualsiasi offerta acquistata con uno o più piani con dimensioni personalizzate per generare eventi di utilizzo.

Importante

Per altre informazioni sulla creazione di dimensioni di misurazione personalizzate per le app Kubernetes, vedere Creare un'offerta di Azure Container.

Applicazione della nota TLS 1.2

La versione 1.2 di TLS viene applicata come versione minima per le comunicazioni HTTPS. Assicurarsi di usare questa versione di TLS nel codice. TLS versione 1.0 e 1.1 sono deprecati e i tentativi di connessione vengono rifiutati.

Evento di utilizzo singolo di fatturazione a consumo

L'API evento di utilizzo deve essere chiamata dal server di pubblicazione per generare eventi di utilizzo su una risorsa attiva (sottoscritta) per il piano acquistato dal cliente specifico. L'evento di utilizzo viene generato separatamente per ogni dimensione personalizzata del piano definito dall'editore durante la pubblicazione dell'offerta.

È possibile generare un solo evento di utilizzo per ogni ora di un giorno di calendario per risorsa e dimensione. Se più unità vengono utilizzate in un'ora, accumulare tutte le unità utilizzate nell'ora e quindi generarla in un singolo evento. Gli eventi di utilizzo possono essere generati solo per le ultime 24 ore. Se si genera un evento di utilizzo in qualsiasi momento tra le 8:00 e le 8:59:59 (e viene accettato) e si invia un altro evento per lo stesso giorno tra le 8:00 e le 8:59:59, viene rifiutato come duplicato.

PUBBLICAZIONE: https://marketplaceapi.microsoft.com/api/usageEvent?api-version=<ApiVersion>

Parametri di query:

Parametro Elemento consigliato
ApiVersion Usare 2018-08-31.

Intestazioni della richiesta:

Tipo di contenuto Utilizzare application/json.
x-ms-requestid Valore stringa univoco per tenere traccia della richiesta dal client, preferibilmente un GUID. Se questo valore non viene specificato, ne viene generato uno e fornito nelle intestazioni della risposta.
x-ms-correlationid Valore stringa univoco per l'operazione sul client. Questo parametro mette in correlazione tutti gli eventi dell'operazione del client con gli eventi sul lato server. Se questo valore non viene specificato, ne viene generato uno e fornito nelle intestazioni della risposta.
authorization Token di accesso univoco che identifica l'ISV che effettua questa chiamata API. Il formato è "Bearer <access_token>" quando il valore del token viene recuperato dal server di pubblicazione, come illustrato nell'applicazione Kubernetes in Strategie di autenticazione.

Esempio di corpo della richiesta:

{
  "resourceUri": "<ARM resource URI of the Kubernetes app instance>", // unique identifier of the resource against which usage is emitted. 
  "quantity": 5.0, // how many units were consumed for the date and hour specified in effectiveStartTime, must be greater than 0 or a double integer
  "dimension": "dim1", // custom dimension identifier
  "effectiveStartTime": "2018-12-01T08:30:14", // time in UTC when the usage event occurred, from now and until 24 hours back
  "planId": "plan1", // id of the plan purchased for the offer
}

Nota

Per le app Kubernetes, resourceUri è l'URI della risorsa ARM dell'istanza dell'app Kubernetes.

Risposte

Codice: 200
OK. L'emissione di utilizzo è stata accettata e registrata sul lato Microsoft per ulteriori elaborazioni e fatturazione.

Esempio di payload della risposta:

{
  "usageEventId": <guid>, // unique identifier associated with the usage event in Microsoft records
  "status": "Accepted" // this is the only value in case of single usage event
  "messageTime": "2020-01-12T13:19:35.3458658Z", // time in UTC this event was accepted
  "resourceUri": "<ARM resource URI of the Kubernetes app instance>", // unique identifier of the resource against which usage is emitted. For SaaS it's the subscriptionId.
  "quantity": 5.0, // amount of emitted units as recorded by Microsoft
  "dimension": "dim1", // custom dimension identifier
  "effectiveStartTime": "2018-12-01T08:30:14", // time in UTC when the usage event occurred, as sent by the ISV
  "planId": "plan1", // id of the plan purchased for the offer
}

Codice: 400
Richiesta non valida.

  • Dati di richiesta mancanti o non validi forniti.
  • effectiveStartTime è più di 24 ore in passato. Evento scaduto.

Esempio di payload della risposta:

{
  "message": "One or more errors have occurred.",
  "target": "usageEventRequest",
  "details": [
    {
      "message": "The resourceUri is required.",
      "target": "ResourceUri",
      "code": "BadArgument"
    }
  ],
  "code": "BadArgument"
}

Codice: 400
Richiesta non valida.

  • L'URI della risorsa è già registrato in precedenza, è necessario attendere 24 ore prima di inviare l'utilizzo.

Esempio di payload della risposta:

{
  "message": "One or more errors have occurred.",
  "target": "usageEventRequest",
  "details": [
    {
      "message": "Invalid usage state.",
      "target": "ResourceUri",
      "code": "BadArgument"
    }
  ],
  "code": "BadArgument"
}

Codice: 403

Non consentito. Il token di autorizzazione non viene fornito, non è valido o è scaduto.

Codice: 409
Conflitto. Un evento di utilizzo è già stato segnalato correttamente per l'ID risorsa specificato, la data di utilizzo effettiva e l'ora.

Esempio di payload della risposta:

{
  "additionalInfo": {
    "acceptedMessage": {
      "usageEventId": "<guid>", //unique identifier associated with the usage event in Microsoft records
      "status": "Duplicate",
      "messageTime": "2020-01-12T13:19:35.3458658Z",
      "resourceUri": "<ARM resource URI of the Kubernetes app instance>", //unique identifier of the resource against which usage is emitted.
      "quantity": 1.0,
      "dimension": "dim1",
      "effectiveStartTime": "2020-01-12T11:03:28.14Z",
      "planId": "plan1"
    }
  },
  "message": "This usage event already exist.",
  "code": "Conflict"
}

Evento di utilizzo batch di fatturazione a consumo

L'API per gli eventi di utilizzo batch consente di generare eventi di utilizzo per più risorse acquistate contemporaneamente. Consente inoltre di generare diversi eventi di utilizzo per la stessa risorsa purché siano per ore di calendario diverse. Il numero massimo di eventi in un singolo batch è 25.

PUBBLICAZIONE: https://marketplaceapi.microsoft.com/api/batchUsageEvent?api-version=<ApiVersion>

Parametri di query:

Parametro Elemento consigliato
ApiVersion Usare 2018-08-31.

Intestazioni della richiesta:

Tipo di contenuto Utilizzare application/json.
x-ms-requestid Valore stringa univoco per tenere traccia della richiesta dal client, preferibilmente un GUID. Se questo valore non viene specificato, ne viene generato uno e fornito nelle intestazioni della risposta.
x-ms-correlationid Valore stringa univoco per l'operazione sul client. Questo parametro mette in correlazione tutti gli eventi dell'operazione del client con gli eventi sul lato server. Se questo valore non viene specificato, viene generato e fornito nelle intestazioni della risposta.
authorization Token di accesso univoco che identifica l'ISV che effettua questa chiamata API. Il formato è Bearer <access_token> quando il valore del token viene recuperato dal server di pubblicazione, come illustrato nell'applicazione Kubernetes in Strategie di autenticazione.

Nota

Nel corpo della richiesta l'identificatore della risorsa per le app Kubernetes è resourceUri.

Esempio di corpo della richiesta per le app Kubernetes:

{
  "request": [ // list of usage events for the same or different resources of the publisher
    { // first event
      "resourceUri": "<ARM resource URI of the Kubernetes app instance>", // Unique identifier of the resource against which usage is emitted. 
      "quantity": 5.0, // how many units were consumed for the date and hour specified in effectiveStartTime, must be greater than 0 or a double integer
      "dimension": "dim1", //Custom dimension identifier
      "effectiveStartTime": "2018-12-01T08:30:14",//Time in UTC when the usage event occurred, from now and until 24 hours back
      "planId": "plan1", // id of the plan purchased for the offer
    },
    { // next event
      "resourceUri": "<ARM resource URI of the Kubernetes app instance>", 
      "quantity": 39.0, 
      "dimension": "email", 
      "effectiveStartTime": "2018-11-01T23:33:10
      "planId": "gold", // id of the plan purchased for the offer
    }
  ]
}

Risposte

Codice: 200
OK. L'emissione di utilizzo batch è stata accettata e registrata sul lato Microsoft per ulteriori elaborazioni e fatturazione. L'elenco di risposte viene restituito con lo stato per ogni singolo evento nel batch. È necessario scorrere il payload della risposta per comprendere le risposte per ogni singolo evento di utilizzo inviato come parte dell'evento batch.

Esempio di payload della risposta:

{
  "count": 2, // number of records in the response
  "result": [
    { // first response
      "usageEventId": "<guid>", // unique identifier associated with the usage event in Microsoft records
      "status": "Accepted" // see list of possible statuses below,
      "messageTime": "2020-01-12T13:19:35.3458658Z", // Time in UTC this event was accepted by Microsoft,
      "resourceUri": "<ARM resource URI of the Kubernetes app instance>", // unique identifier of the resource against which usage is emitted.
      "quantity": 5.0, // amount of emitted units as recorded by Microsoft 
      "dimension": "dim1", // custom dimension identifier
      "effectiveStartTime": "2018-12-01T08:30:14",// time in UTC when the usage event occurred, as sent by the ISV
      "planId": "plan1", // id of the plan purchased for the offer
    },
    { // second response
      "status": "Duplicate",
      "messageTime": "0001-01-01T00:00:00",
      "error": {
        "additionalInfo": {
          "acceptedMessage": {
            "usageEventId": "<guid>",
            "status": "Duplicate",
            "messageTime": "2020-01-12T13:19:35.3458658Z",
            "resourceUri": "<ARM resource URI of the Kubernetes app instance>",
            "quantity": 1.0,
            "dimension": "email",
            "effectiveStartTime": "2020-01-12T11:03:28.14Z",
            "planId": "gold"
          }
        },
        "message": "This usage event already exist.",
        "code": "Conflict"
      },
      "resourceId": "<guid2>",
      "quantity": 1.0,
      "dimension": "email",
      "effectiveStartTime": "2020-01-12T11:03:28.14Z",
      "planId": "gold"
    }
  ]
}

Descrizione del codice di stato a cui si fa riferimento nella risposta API BatchUsageEvent:

Codice di stato Descrizione
Accepted Accettato.
Expired Uso scaduto.
Duplicate Uso duplicato consentito.
Error Codice di errore.
ResourceNotFound La risorsa di uso specificata non è valida.
ResourceNotAuthorized Non si è autorizzati a fornire l'utilizzo per questa risorsa.
ResourceNotActive La risorsa viene sospesa o non è mai stata attivata.
InvalidDimension Le dimensioni per cui viene passato l'uso non sono valide per questa offerta o per questo piano.
InvalidQuantity La quantità passata è inferiore o uguale a 0.
BadArgument L'input è mancante o non valido.

Codice: 400
Richiesta non valida. Il batch contiene più di 25 eventi di utilizzo.

Codice: 403
Non consentito. Il token di autorizzazione non viene fornito, non è valido o è scaduto.

La fatturazione a consumo recupera gli eventi di utilizzo

È possibile chiamare l'API degli eventi di utilizzo per ottenere l'elenco degli eventi di utilizzo. Gli ISV possono usare questa API per visualizzare gli eventi di utilizzo che sono stati pubblicati per una determinata durata configurabile di tempo e quale stato questi eventi sono al punto di chiamare l'API.

GET: https://marketplaceapi.microsoft.com/api/usageEvents

Parametri di query:

Parametro Elemento consigliato
ApiVersion Usare 2018-08-31.
usageStartDate DateTime in formato ISO8601. Ad esempio, 2020-12-03T15:00 o 2020-12-03
UsageEndDate (facoltativo) DateTime in formato ISO8601. Valore predefinito = data corrente
offerId (facoltativo) Valore predefinito = tutti disponibili
planId (facoltativo) Valore predefinito = tutti disponibili
dimensione (facoltativo) Valore predefinito = tutti disponibili
azureSubscriptionId (facoltativo) Valore predefinito = tutti disponibili
reconStatus (facoltativo) Valore predefinito = tutti disponibili

Valori possibili di reconStatus:

ReconStatus Descrizione
Inviato Non ancora elaborato da Analisi PC
Accettata Corrispondenza con ANALISI PC
Rifiutato Rifiutato nella pipeline. Contattare il supporto tecnico Microsoft per indagare sulla causa.
Mancata corrispondenza Le quantità di Analisi del MarketplaceAPI e del Centro per i partner sono entrambe diverso da zero, ma non corrispondono
TestHeaders Sottoscrizione elencata con intestazioni di test e pertanto non in Analisi PC
DryRun Inviato con SessionMode=DryRun e quindi non nel PC

Intestazioni della richiesta:

Content type Usare application/json
x-ms-requestid Valore stringa univoco (preferibilmente un GUID), per tenere traccia della richiesta dal client. Se questo valore non viene specificato, ne viene generato uno e fornito nelle intestazioni della risposta.
x-ms-correlationid Valore stringa univoco per l'operazione sul client. Questo parametro mette in correlazione tutti gli eventi dell'operazione del client con gli eventi sul lato server. Se questo valore non viene specificato, ne viene generato uno e fornito nelle intestazioni della risposta.
autorizzazione Token di accesso univoco che identifica l'ISV che effettua questa chiamata API. Il formato è Bearer <access_token> quando il valore del token viene recuperato dal server di pubblicazione.
- Applicazione Kubernetes nelle strategie di autenticazione

Risposte

Esempi di payload della risposta:

Accettato

[
  {
    "usageDate": "2020-11-30T00:00:00Z",
    "usageResourceId": "11111111-2222-3333-4444-555555555555",
    "dimension": "tokens",
    "planId": "silver",
    "planName": "Silver",
    "offerId": "mycooloffer",
    "offerName": "My Cool Offer",
    "offerType": "SaaS",
    "azureSubscriptionId": "12345678-9012-3456-7890-123456789012",
    "reconStatus": "Accepted",
    "submittedQuantity": 17.0,
    "processedQuantity": 17.0,
    "submittedCount": 17
  }
]

Inviato

[
  {
    "usageDate": "2020-11-30T00:00:00Z",
    "usageResourceId": "11111111-2222-3333-4444-555555555555",
    "dimension": "tokens",
    "planId": "silver",
    "planName": "",
    "offerId": "mycooloffer",
    "offerName": "",
    "offerType": "SaaS",
    "azureSubscriptionId": "12345678-9012-3456-7890-123456789012",
    "reconStatus": "Submitted",
    "submittedQuantity": 17.0,
    "processedQuantity": 0.0,
    "submittedCount": 17
  }
]

Mancata corrispondenza

[
  {
    "usageDate": "2020-11-30T00:00:00Z",
    "usageResourceId": "11111111-2222-3333-4444-555555555555",
    "dimension": "tokens",
    "planId": "silver",
    "planName": "Silver",
    "offerId": "mycooloffer",
    "offerName": "My Cool Offer",
    "offerType": "SaaS",
    "azureSubscriptionId": "12345678-9012-3456-7890-123456789012",
    "reconStatus": "Mismatch",
    "submittedQuantity": 17.0,
    "processedQuantity": 16.0,
    "submittedCount": 17
  }
]

Rifiutata

[
  {
    "usageDate": "2020-11-30T00:00:00Z",
    "usageResourceId": "11111111-2222-3333-4444-555555555555",
    "dimension": "tokens",
    "planId": "silver",
    "planName": "",
    "offerId": "mycooloffer",
    "offerName": "",
    "offerType": "SaaS",
    "azureSubscriptionId": "12345678-9012-3456-7890-123456789012",
    "reconStatus": "Rejected",
    "submittedQuantity": 17.0,
    "processedQuantity": 0.0,
    "submittedCount": 17
  }
]

Codici di stato

Codice: 403 Accesso negato. Il token di autorizzazione non viene fornito, non è valido o è scaduto.

Procedure consigliate per lo sviluppo e il test

Per testare l'emissione di contatori personalizzati, implementare l'integrazione con l'API di misurazione, creare un piano per l'offerta di app Kubernetes pubblicata con dimensioni personalizzate definite in esso con prezzo zero per unità. Pubblicare questa offerta come anteprima in modo che solo gli utenti limitati possano accedere e testare l'integrazione.

È anche possibile usare un piano privato per un'offerta live esistente per limitare l'accesso a questo piano durante i test a gruppi di destinatari limitati.

  • Per altre informazioni sulle API del servizio di misurazione, vedere Domande frequenti sulle API del servizio di misurazione del Marketplace.

Ottenere supporto

Se si verifica uno dei problemi seguenti, è possibile aprire un ticket di supporto.

  • Problemi tecnici relativi all'API del servizio di misurazione del marketplace.
  • Un problema che deve essere inoltrato a causa di un errore o di un bug sul lato (ad esempio, evento di utilizzo errato).
  • Eventuali altri problemi relativi alla fatturazione a consumo.

Per comprendere le opzioni di supporto dell'editore e aprire un ticket di supporto con Microsoft, seguire le istruzioni in Supporto per il programma del marketplace commerciale nel Centro per i partner.