

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengkonfigurasi pengukuran khusus untuk produk kontainer dengan AWS Marketplace Metering Service
<a name="container-metering-meterusage"></a>

**catatan**  
 Untuk penerapan Amazon EKS, perangkat lunak Anda harus menggunakan [peran IAM untuk akun layanan (IRSA)](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) untuk menandatangani panggilan API untuk operasi 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) Menggunakan [EKS Pod Identity](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html), peran node, atau kunci akses jangka panjang tidak didukung.  
Untuk penerapan Amazon ECS, perangkat lunak Anda harus menggunakan peran [IAM tugas Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) untuk menandatangani panggilan API untuk operasi 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) Menggunakan peran node atau kunci akses jangka panjang tidak didukung.  
Untuk penerapan Amazon Bedrock AgentCore Runtime, perangkat lunak Anda harus menggunakan [peran eksekusi AgentCore Runtime](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-permissions.html#runtime-permissions-execution) untuk menandatangani panggilan API untuk operasi 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) Kunci akses jangka panjang tidak didukung.

AWS Marketplace produk kontainer dapat memiliki pengukuran khusus hingga 24 dimensi harga yang berbeda per produk. Setiap dimensi dapat memiliki harga kontrak jangka panjang yang terkait dengannya. Untuk mengaktifkan pengukuran khusus, integrasikan produk container Anda dengan AWS Marketplace Metering Service. Anda dapat menentukan unit harga Anda sendiri dan pengukuran kustom untuk penggunaan tersebut AWS untuk penagihan menggunakan operasi [https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/API_MeterUsage.html](https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/API_MeterUsage.html)API. Bagian berikut menunjukkan cara mengonfigurasi pengukuran khusus untuk produk kontainer Anda.

Dimensi harga didefinisikan di dua lokasi, sekali saat membuat produk Anda di Portal Manajemen AWS Marketplace (portal penjual) dan sekali di perangkat lunak Anda untuk melakukan `MeterUsage` operasi. Metode dua faktor ini memastikan bahwa penawaran berikutnya bekerja sebagaimana dimaksud sebelum dibuat tersedia untuk umum.

Untuk mengatur pengukuran khusus, Anda harus memilih kategori penggunaan, tipe unit, dan dimensi harga: 
+ **Kategori penggunaan**— Kategori penggunaan membantu pembeli memahami produk Anda dan cara menggunakannya. 
+ **Tipe unit**— Tipe unit mendefinisikan satuan ukuran untuk penagihan. Misalnya, bandwidth diukur dalam GBps atau MBps, jumlah host, atau data yang diukur dalam MB, GB, atau TB.
+ **Dimensi harga** — Dimensi harga mewakili fitur atau layanan yang telah Anda tetapkan harga per unit (misalnya, pengguna, pemindaian, vCPUs, atau agen yang digunakan). Dimensi harga bersifat publik. Namun, Anda masih dapat menentukan penawaran pribadi dan Bring Your Own License (BYOL) untuk produk publik. Jangan mengirim harga dalam catatan pengukuran. Anda mengukur jumlah unit, dan kami menggunakannya bersama dengan harga yang Anda tentukan saat membuat produk Anda untuk menghitung tagihan pembeli. 

  Jika harga produk Anda tidak sesuai dengan kategori atau tipe unit yang telah ditentukan sebelumnya, Anda dapat memilih kategori **Unit** generik. Kemudian, gunakan deskripsi dimensi untuk menggambarkan apa unitnya.

Opsional, Anda dapat mendistribusikan penggunaan ke alokasi oleh properti yang Anda melacak. Alokasi direpresentasikan sebagai tag kepada pembeli. Tag ini memungkinkan pembeli untuk melihat biaya mereka dibagi menjadi penggunaan berdasarkan nilai tag. Sebagai contoh, jika Anda mengisi oleh pengguna, dan pengguna memiliki properti “Departemen”, Anda dapat membuat alokasi penggunaan dengan tag yang memiliki kunci “Departemen”, dan satu alokasi per nilai. Ini tidak mengubah harga, dimensi, atau total penggunaan yang Anda laporkan, tetapi memungkinkan pelanggan Anda untuk melihat biaya mereka berdasarkan kategori yang sesuai dengan produk Anda.

Kami menyarankan Anda mengirim catatan pengukuran setiap jam. Namun, Anda dapat menggabungkan penggunaan selama periode harian atau bulanan juga. Jika Anda mengalami pemadaman, Anda dapat menggabungkan penggunaan perangkat lunak pembeli dan mengirimkannya dalam pengukuran jam berikutnya. Anda tidak dapat mengirim lebih dari satu catatan per jam.

*Untuk informasi selengkapnya tentang mengintegrasikan AWS Marketplace Metering Service API untuk produk kontainer dengan harga pengukuran khusus, lihat lab [Integrasikan dengan pengukuran khusus](https://catalog.workshops.aws/mpseller/en-US/container/integrate-custom) bengkel penjual.AWS Marketplace *

**penting**  
Percobaan gratis dan hak prabayar dilacak pada tingkat per jam. Akibatnya, mengirim catatan ini secara terpisah dapat menyebabkan pembeli menjadi kelebihan biaya.

**Topics**
+ [Prasyarat pengukuran](#custom-metering-prereqs)
+ [`MeterUsage`Integrasi pengujian untuk ECS dan EKS](#testing-meterusage-integration)
+ [MeterUsage Integrasi pengujian untuk AgentCore](#testing-agentcore-metering)
+ [Penanganan kesalahan untuk `MeterUsage`](#custom-metering-entitlement-error-handling)
+ [(Opsional) Penandaan terukur vendor](#container-vendor-metered-tagging)
+ [Contoh kode](#container-meter-code-example)
+ [Mengintegrasikan produk kontainer Anda menggunakan pengukuran khusus dengan dan AWS Marketplace Metering Service AWS SDK untuk Java](java-integration-example-meterusage.md)

## Prasyarat pengukuran
<a name="custom-metering-prereqs"></a>

Sebelum menerbitkan produk, Anda harus melakukan hal berikut:

1. Buat produk kontainer baru di Portal Manajemen AWS Marketplace, dan catat kode produknya.

1. Gunakan peran AWS Identity and Access Management (IAM) untuk tugas, pod, atau titik akhir AgentCore Runtime yang menjalankan aplikasi Anda dengan izin IAM yang diperlukan untuk memanggil. `MeterUsage` Kebijakan terkelola `AWSMarketplaceMeteringRegisterUsage` meliputi izin-izin ini. Untuk informasi selengkapnya tentang kebijakan, lihat [ AWSMarketplaceMeteringFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSMarketplaceMeteringFullAccess.html)di *Referensi Kebijakan AWS Terkelola*.

1. (Opsional) Kami menyarankan Anda mengaktifkan AWS CloudTrail logging dalam tugas atau definisi pod jika Anda ingin melihat logging.

1. Lakukan panggilan uji ke operasi `MeterUsage` API dengan catatan untuk semua dimensi harga yang Anda tetapkan.

## `MeterUsage`Integrasi pengujian untuk ECS dan EKS
<a name="testing-meterusage-integration"></a>

Gunakan `MeterUsage` operasi untuk menguji integrasi Anda sebelum mengirimkan gambar Anda AWS Marketplace untuk dipublikasikan.

Panggilan `MeterUsage` dari gambar kontainer dengan menjalankan produk Anda di Amazon Elastic Container Service (Amazon ECS) Service (Amazon ECS) atau Amazon Elastic Kubernetes Service (Amazon EKS Akun AWS ) dengan yang Anda gunakan untuk membuat daftar produk. AWS Marketplace Integrasi pengukuran Anda harus secara dinamis mengatur Wilayah AWS, bukan hard coding itu. Namun, saat menguji, luncurkan setidaknya satu tugas Amazon ECS atau pod Amazon EKS yang berisi kontainer berbayar Anda di Wilayah AS Timur (Virginia Utara) sehingga tim AWS Marketplace operasi dapat memverifikasi pekerjaan Anda dengan log di Wilayah tersebut.

**catatan**  
Jika produk Anda mendukung Amazon ECS dan Amazon EKS, Anda hanya perlu meluncurkan di Amazon EKS bagi kami untuk memvalidasi integrasi Anda.
Uji setiap dimensi sebelum meluncurkan produk Anda ke publik dan setelah menambahkan dimensi baru. Jika Anda tidak mengirim catatan pengukuran untuk setiap dimensi yang terkait dengan produk kontainer, itu akan mengakibatkan kesalahan dengan permintaan yang gagal.

Anda tidak dapat sepenuhnya menguji integrasi sampai produk Anda dipublikasikan dengan semua metadata dan informasi harga yang diperlukan. Jika diminta, tim operasi AWS Marketplace katalog dapat memverifikasi penerimaan catatan pengukuran Anda.

## MeterUsage Integrasi pengujian untuk AgentCore
<a name="testing-agentcore-metering"></a>

Gunakan `MeterUsage` operasi untuk menguji integrasi Anda sebelum mengirimkan gambar Anda AWS Marketplace untuk dipublikasikan.

Panggil `MeterUsage` dari gambar kontainer dengan menjalankan produk Anda di Amazon Bedrock AgentCore dengan AWS akun yang Anda gunakan untuk membuat daftar AWS Marketplace produk. Integrasi pengukuran Anda harus secara dinamis mengatur AWS Wilayah, daripada mengkodekannya dengan keras. Namun, saat menguji, luncurkan setidaknya satu AgentCore agen Amazon Bedrock yang berisi kontainer berbayar Anda di Wilayah AS Timur (Virginia N.) sehingga tim AWS Marketplace operasi dapat memverifikasi pekerjaan Anda dengan log di Wilayah tersebut. 

 Anda tidak perlu menggabungkan catatan penggunaan per jam. Panggil `MeterUsage` setiap pemanggilan agen dengan penggunaan untuk pemanggilan itu.

Anda harus menggunakan AWS SDK versi terbaru yang dirilis untuk bahasa Anda. Ini secara otomatis mengisi `ClientToken` parameter dengan nilai yang dihasilkan secara otomatis untuk membantu idempotensi. Rilis SDK sebelumnya yang tidak mengisi bidang ini tidak akan berfungsi untuk `MeterUsage` panggilan dari dalam Amazon Bedrock. AgentCore Karena masalah jaringan, Anda harus menggunakan kembali permintaan yang sama persis saat mencoba lagi. Melakukan hal itu memastikan bahwa permintaan diperlakukan secara idempoten.

Karena perbedaan perilaku pengukuran yang diharapkan antara Amazon Bedrock AgentCore dan produk kontainer lainnya, kami tidak menyarankan berbagi gambar kontainer yang sama untuk digunakan di Amazon Bedrock dan AgentCore di Amazon ECS atau EKS.

## Penanganan kesalahan untuk `MeterUsage`
<a name="custom-metering-entitlement-error-handling"></a>

Panggil `MeterUsage` pengaturan `DryRun` parameter ke true saat startup kontainer untuk memvalidasi bahwa integrasi pengukuran berfungsi. Jika citra kontainer Anda terintegrasi dengan`MeterUsage`operasi dan menerima pengecualian selain`ThrottlingException`pada startup kontainer, Anda harus mengakhiri kontainer untuk mencegah penggunaan yang tidak sah.

Pengecualian selain`ThrottlingException`dilemparkan hanya pada panggilan awal untuk`MeterUsage`. Panggilan berikutnya dari tugas Amazon ECS yang sama atau pod Amazon EKS atau titik akhir AgentCore Runtime tidak dibuang`CustomerNotSubscribedException`, meskipun pelanggan berhenti berlangganan saat tugas atau pod masih berjalan. Pelanggan tersebut masih dikenakan biaya untuk menjalankan kontainer setelah mereka berhenti berlangganan, dan penggunaannya dilacak.

Lihat [MeterUsage](https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/API_MeterUsage.html)di *Referensi AWS Marketplace Metering Service API* untuk deskripsi rinci tentang kesalahan umum untuk`MeterUsage`. Setiap bahasa pemrograman AWS SDK memiliki seperangkat pedoman penanganan kesalahan yang dapat Anda rujuk untuk informasi tambahan. 

## (Opsional) Penandaan terukur vendor
<a name="container-vendor-metered-tagging"></a>

Penandaan yang diukur vendor membantu Vendor Perangkat Lunak Independen (ISVs) memberi pembeli wawasan yang lebih terperinci tentang penggunaan perangkat lunak mereka dan dapat membantu mereka melakukan alokasi biaya.

**catatan**  
Penandaan yang diukur vendor tidak didukung untuk permintaan pengukuran untuk produk Amazon Bedrock. AgentCore 

Anda memiliki beberapa cara untuk menandai penggunaan perangkat lunak pembeli. Salah satunya adalah pertama-tama bertanya kepada pembeli Anda apa yang ingin mereka lihat dalam alokasi biaya mereka. Kemudian Anda dapat membagi penggunaan di seluruh properti yang Anda lacak untuk akun pembeli. Contoh properti termasuk`AccountId`,, `Business Unit``Cost Centers`, dan metadata relevan lainnya untuk produk Anda. Properti ini diekspos ke pembeli sebagai tag. Dengan menggunakan tag, pembeli dapat melihat biayanya dibagi menjadi penggunaan berdasarkan nilai tag di Konsol AWS Penagihan ([https://console.aws.amazon.com/costmanagement/](https://console.aws.amazon.com/costmanagement/)). Penandaan yang diukur vendor tidak mengubah harga, dimensi, atau total penggunaan yang Anda laporkan. Hal ini memungkinkan pelanggan Anda untuk melihat biaya mereka berdasarkan kategori yang sesuai dengan produk Anda.

Dalam kasus penggunaan umum, pembeli berlangganan produk Anda dengan satu Akun AWS. Pembeli juga memiliki banyak pengguna yang terkait dengan langganan produk yang sama. Anda dapat membuat alokasi penggunaan dengan tag yang memiliki kunci`AccountId`, dan kemudian mengalokasikan penggunaan untuk setiap pengguna. Dalam hal ini, pembeli dapat mengaktifkan `AccountId` tag di konsol Billing and Cost Management mereka dan menganalisis penggunaan pengguna individu.

### Pengalaman penjual
<a name="container-vendor-metered-tag-seller"></a>

Penjual dapat menggabungkan catatan pengukuran untuk sumber daya dengan kumpulan tag yang sama alih-alih menggabungkan penggunaan untuk semua sumber daya. Misalnya, penjual dapat membuat catatan pengukuran yang mencakup ember yang berbeda`UsageAllocations`. Setiap bucket mewakili `UsageQuantity` untuk satu set tag, seperti `AccountId` dan`BusinessUnit`. 

Dalam diagram berikut, **Resource 1** memiliki satu set `AccountId` dan `BusinessUnit` tag yang unik, dan muncul di **Rekaman Pengukuran** sebagai entri tunggal. 

**Resource 2** dan **Resource 3** keduanya memiliki `AccountId` tag yang sama`2222`,, dan `BusinessUnit` tag yang sama,`Operations`. Akibatnya, mereka digabungkan menjadi satu `UsageAllocations` entri dalam **Rekaman Pengukuran**.

![\[Diagram yang menunjukkan bagaimana tag metering vendor menggabungkan data penggunaan. Tiga sumber daya (Sumber Daya 1, 2, dan 3) dengan berbeda AccountIds dan BusinessUnits dikonsolidasikan ke dalam Rekaman Pengukuran tunggal dengan UsageAllocations dikelompokkan oleh AccountId dan BusinessUnit sebelum dikirim ke AWS Marketplace Metering Service.\]](http://docs.aws.amazon.com/id_id/marketplace/latest/userguide/images/seller-vendor-meter-tag.png)


Penjual juga dapat menggabungkan sumber daya tanpa tag menjadi satu `UsageAllocation` dengan jumlah penggunaan yang dialokasikan dan mengirimkannya sebagai salah satu entri di. `UsageAllocations`

Batasan meliputi:
+ Jumlah tag — 5
+ Ukuran `UsageAllocations` (kardinalitas) — 2.500

Validasi meliputi:
+ Karakter diperbolehkan untuk kunci tag dan nilai — a-zA-Z 0-9\$1 -= . \$1:\$1 /@
+ Tag maksimum di seluruh `UsageAllocation` daftar - 5
+ Dua tidak `UsageAllocations` dapat memiliki tag yang sama (yaitu, kombinasi yang sama dari kunci tag dan nilai). Jika itu masalahnya, mereka harus menggunakan hal yang sama`UsageAllocation`.
+ Jumlah `AllocatedUsageQuantity` dari `UsageAllocation` harus sama dengan`UsageQuantity`, yang merupakan penggunaan agregat.

### Pengalaman pembeli
<a name="container-vendor-metered-tag-buyer"></a>

Tabel berikut menunjukkan contoh pengalaman pembeli setelah pembeli mengaktifkan tag `AccountId` dan `BusinessUnit` vendor. 

Dalam contoh ini, pembeli dapat melihat penggunaan yang dialokasikan dalam **Laporan Penggunaan Biaya** mereka. Tag yang diukur vendor menggunakan awalan. `“aws:marketplace:isv”` Pembeli dapat mengaktifkannya di Billing and Cost Management, **di bawah Tag Alokasi Biaya AWS, tag alokasi** **biaya yang dihasilkan**.

Baris pertama dan terakhir dari **Laporan Penggunaan Biaya** relevan dengan apa yang dikirim Penjual ke Layanan Pengukuran (seperti yang ditunjukkan dalam [Pengalaman penjual](#container-vendor-metered-tag-seller) contoh).


**Laporan Penggunaan Biaya (Sederhana)**  

| ProductCode  | Pembeli | UsageDimension | UsageQuantity | `aws:marketplace:isv:AccountId ` | `aws:marketplace:isv:BusinessUnit` | 
| --- | --- | --- | --- | --- | --- | 
| xyz | 111122223333 | Jaringan: per (GB) diperiksa  | 70 | 2222 | Operasi | 
| xyz | 111122223333 | Jaringan: per (GB) diperiksa  | 30 | 3333 | Keuangan | 
| xyz | 111122223333 | Jaringan: per (GB) diperiksa  | 20 | 4444 | IA | 
| xyz | 111122223333 | Jaringan: per (GB) diperiksa  | 20 | 5555 | Pemasaran | 
| xyz | 111122223333 | Jaringan: per (GB) diperiksa  | 30 | 1111 | Pemasaran | 

Untuk contoh kode, lihat [`MeterUsage`contoh kode dengan penandaan alokasi penggunaan (Opsional)](#container-meterusage-code-example).

## Contoh kode
<a name="container-meter-code-example"></a>

Contoh kode berikut disediakan untuk membantu Anda mengintegrasikan produk kontainer Anda dengan yang AWS Marketplace APIs diperlukan untuk menerbitkan dan memelihara produk Anda.

### `MeterUsage`contoh kode dengan penandaan alokasi penggunaan (Opsional)
<a name="container-meterusage-code-example"></a>

Contoh kode berikut relevan untuk produk kontainer dengan model harga konsumsi. Contoh Python mengirimkan catatan pengukuran dengan tag alokasi penggunaan yang sesuai untuk membebankan biaya AWS Marketplace kepada pelanggan Anda. 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 
)
```

Untuk informasi selengkapnya`MeterUsage`, lihat [MeterUsage](https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/API_MeterUsage.html)di *Referensi AWS Marketplace Metering Service API*.

### Contoh tanggapan
<a name="container-meterusage-code-response"></a>

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

# Mengintegrasikan produk kontainer Anda menggunakan pengukuran khusus dengan dan AWS Marketplace Metering Service AWS SDK untuk Java
<a name="java-integration-example-meterusage"></a>

AWS Marketplace produk kontainer dapat memiliki pengukuran khusus hingga 24 dimensi harga yang berbeda per produk. Untuk mengaktifkan pengukuran khusus, Anda mengintegrasikan produk container Anda dengan AWS Marketplace Metering Service. Anda dapat menentukan unit harga Anda sendiri dan pengukuran kustom untuk penggunaan tersebut AWS untuk penagihan menggunakan operasi [https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/API_MeterUsage.html](https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/API_MeterUsage.html)API. Contoh berikut menguraikan implementasi yang menggunakan AWS SDK untuk Java untuk mengintegrasikan dengan operasi [AWS Marketplace Metering Service](https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/Welcome.html)`MeterUsage`. 

Untuk detail lengkap, lihat[`MeterUsage`Contoh Java](#meterusage-java-example). Banyak langkah-langkah berikut berlaku terlepas dari bahasa. 

**Contoh: Integrasi Layanan AWS Marketplace Metering**

1. Masuk ke [Portal Manajemen AWS Marketplace](https://aws.amazon.com/marketplace/management/tour).

1. Dari**Aset**, pilih**Kontainer**untuk mulai membuat produk kontainer baru. Membuat produk menghasilkan kode produk untuk produk untuk mengintegrasikan dengan citra kontainer Anda. Untuk informasi tentang izin pengaturan AWS Identity and Access Management (IAM), lihat. [AWS Marketplace izin API pengukuran dan hak](iam-user-policy-for-aws-marketplace-actions.md)

1.  Unduh [AWS Java SDK](https://aws.amazon.com/sdk-for-java/) publik. 
**penting**  
 Untuk memanggil operasi metering API dari Amazon Elastic Kubernetes Service (Amazon EKS)[, Anda harus AWS menggunakan](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts-minimum-sdk.html) SDK yang didukung dan berjalan di klaster Amazon EKS yang menjalankan Kubernetes 1.13 atau yang lebih baru. 

1. Panggil `MeterUsage` operasi dari tugas atau pod setiap jam sekali untuk setiap penggunaan dimensi. Operasi API menerima satu catatan pengukuran untuk kombinasi unik`Dimension`,`Resource`, dan`Hour`. Sumber daya adalah salah satu Amazon Elastic kontainer Service (Amazon ECS) tugas atau 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.
   }
   ```
**catatan**  
Dimungkinkan untuk melihat masalah sementara dalam menghubungkan ke. AWS Marketplace Metering Service AWS Marketplace sangat merekomendasikan menerapkan percobaan ulang hingga 30 menit, dengan mundur eksponensial, untuk menghindari pemadaman jangka pendek atau masalah jaringan.

1. Buat kembali versi baru gambar kontainer Anda yang menyertakan `MeterUsage` panggilan, beri tag penampung, dan dorong ke registri Docker apa pun yang kompatibel dengan Amazon ECS atau Amazon EKS, seperti Amazon Elastic Container Registry (Amazon ECR). Jika Anda menggunakan Amazon ECR, memastikan bahwa akun meluncurkan tugas Amazon ECS atau Amazon EKS pod memiliki izin pada repositori Amazon ECR. Jika tidak, operasi gagal.

1. Buat [IAM](https://aws.amazon.com/iam/) role yang memberikan izin untuk kontainer Anda untuk dipanggil`MeterUsage`, seperti yang didefinisikan dalam contoh kode berikut. Anda harus menyediakan peran ini AWS Identity and Access Management (IAM) dalam parameter [Peran Tugas tugas tugas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_role_arn) Amazon ECS atau definisi pod Amazon EKS.

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

****  

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

------

1. Buat tugas Amazon ECS atau definisi pod Amazon EKS yang mereferensikan wadah yang telah terintegrasi AWS Marketplace dan mereferensikan peran IAM yang Anda buat di langkah 6. Jika Anda ingin melihat logging, aktifkan AWS CloudTrail logging dalam definisi tugas. 

1. Buat Amazon ECS atau Amazon EKS cluster untuk menjalankan tugas Anda atau pod. Untuk informasi selengkapnya tentang membuat klaster Amazon ECS, lihat [Membuat klaster](https://docs.aws.amazon.com/AmazonECS/latest/userguide/create_cluster.html) di *Panduan Pengembang Layanan Kontainer Elastis Amazon*. Untuk informasi selengkapnya tentang membuat cluster Amazon EKS (menggunakan Kubernetes versi 1.1.3.x atau yang lebih baru), lihat[Membuat klaster EKS Amazon](https://docs.aws.amazon.com/eks/latest/userguide/create_cluster.html).

1. Konfigurasikan cluster Amazon ECS atau Amazon EKS dan luncurkan definisi tugas Amazon ECS atau pod Amazon EKS yang Anda buat di langkah 8, di Wilayah us-east-1. AWS Hanya selama proses pengujian ini, sebelum produk ditayangkan, bahwa Anda harus menggunakan Wilayah ini.

1. Saat Anda mendapatkan respons yang valid dari`MeterUsage`untuk masing-masing dimensi yang diterbitkan untuk produk, Anda dapat mulai membuat produk kontainer Anda. Untuk pertanyaan, hubungi[AWS Marketplace Operasi Penjual](https://aws.amazon.com/marketplace/management/contact-us/)Tim. 

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

Contoh kode berikut menggunakan AWS Marketplace Metering Service AWS SDK untuk Java dan AWS untuk memanggil `MeterUsage` operasi.

Contoh kode berikut panggilan`MeterUsage`operasi tanpa`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);
    }
}
```

Contoh kode berikut panggilan`MeterUsage`Operasi dengan`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();
    }
```