Pengukuran khusus untuk produk AMI dengan AWS Marketplace Metering Service - AWS Marketplace

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

Pengukuran khusus untuk produk AMI dengan AWS Marketplace Metering Service

AWS Marketplace Metering Service adalah fitur penetapan harga dan pengukuran yang dapat digunakan penjual untuk secara langsung mengenakan biaya untuk perangkat lunak mereka berdasarkan kategori penggunaan. Ada lima kategori penggunaan: pengguna, data, bandwidth, host, atau unit. Anda dapat menggunakan Layanan Pengukuran dengan produk berbasis Amazon Machine Image (AMI), berbasis kontainer, dan perangkat lunak sebagai layanan (SaaS). Untuk informasi selengkapnya, lihatAWS Marketplace Layanan Pengukuran API Referensi.

Semua perangkat lunak berbasis AMI yang menggunakan Layanan Metering harus memenuhi persyaratan berikut:

  • Perangkat lunak Anda harus diluncurkan dari AWS Marketplace melalui Amazon Machine Image (AMI).

  • Jika Anda memiliki produk yang sudah ada AWS Marketplace, Anda harus mengirimkan AMI baru dan membuat produk baru untuk mengaktifkan fitur ini.

  • Semua perangkat lunak harus disediakan dengan peran AWS Identity and Access Management (IAM). Pelanggan akhir harus menambahkan IAM role ke instans Amazon Elastic Compute Cloud (Amazon EC2) pengguna menetapkan dengan perangkat lunak. Penggunaan peran IAM bersifat opsional saat Anda menggunakan perangkat lunak. AWS Marketplace Ini diperlukan saat Anda menerapkan perangkat lunak AWS Marketplace Metering Service.

  • Perangkat lunak Anda harus dapat menentukan konsumsi dalam beberapa cara.

Produk yang menggunakan Layanan Pengukuran harus membebankan biaya kepada pelanggan berdasarkan kategori penggunaan tunggal, tetapi Anda dapat menentukan hingga 24 dimensi dari satu kategori. Tergantung pada kategori, perangkat lunak dapat harga oleh sumber daya yang ditetapkan, sumber daya bersamaan, atau akumulasi konsumsi sumber daya. Semua biaya masih ditanggung per jam oleh pelanggan. Semua penggunaan dihitung dan ditagih setiap bulan menggunakan mekanisme yang sama dengan AWS Marketplace perangkat lunak yang ada.

AWS Marketplace Layanan Pengukuran memungkinkan beberapa skenario baru. Misalnya, jika monitor perangkat lunak Anda host, Anda dapat mengisi daya untuk setiap host dipantau. Anda dapat memiliki harga yang berbeda berdasarkan ukuran host, dan biaya untuk jumlah host bersamaan dipantau setiap jam. Demikian pula, jika perangkat lunak Anda memungkinkan banyak pengguna di seluruh organisasi untuk masuk, Anda dapat mengisi daya dengan jumlah pengguna. Setiap jam, pelanggan dikenakan biaya untuk jumlah total pengguna yang ditetapkan.

Hubungi AWS Marketplace Layanan Pengukuran

Perangkat lunak Anda harus menghubungi Layanan Pengukuran per jam dan mencatat nilai konsumsi untuk jam tersebut.

Ketika perangkat lunak Anda dimulai, itu harus merekam minute-of-the-hour di mana ia dimulai. Ini disebut sebagai menit awal. Setiap jam pada menit awal, perangkat lunak Anda harus menentukan nilai konsumsi untuk jam itu dan menghubungi Layanan Pengukuran. Untuk informasi tentang cara mendapatkan nilai ini, lihat Memodifikasi perangkat lunak Anda untuk menggunakan Layanan Pengukuran.

Untuk bangun setiap jam di menit awal, perangkat lunak Anda harus menggunakan salah satu pendekatan berikut:

  • Sebuah thread dalam perangkat lunak Anda.

  • Proses daemon yang dimulai dengan instans atau perangkat lunak.

  • Pekerjaan cron yang dikonfigurasi selama aplikasi startup.

    catatan

    Perangkat lunak Anda harus memanggil AWS Marketplace Layanan Pengukuran menggunakan IAM role dikonfigurasi pada contoh pelanggan dan menentukan dimensi konsumsi dan jumlah.

Perangkat lunak Anda dapat menggunakan AWS SDK untuk memanggil AWS Marketplace Metering Service, mirip dengan contoh implementasi berikut:

  1. Gunakan profil contoh untuk membuat klien layanan. Ini memerlukan peran yang dikonfigurasi untuk instans EC2. Kredensial peran disegarkan oleh SDK secara otomatis.

  2. Setiap jam, baca konfigurasi perangkat lunak Anda dan negara untuk menentukan nilai konsumsi untuk jam tersebut. Ini mungkin termasuk mengumpulkan a value-per-dimension.

  3. PanggilmeterUsagemetode pada klien SDK dengan parameter berikut (panggilan tambahan untuk setiap dimensi yang memiliki penggunaan):

    • timestamp— Stempel waktu jam yang direkam (dalam UTC).

    • productCode— Kode produk yang ditetapkan untuk perangkat lunak.

    • dimension— Dimensi (atau dimensi) yang ditetapkan untuk perangkat lunak.

    • quantity— Nilai konsumsi untuk satu jam.

    • allocations— (Opsional) Anda dapat memberikan alokasi untuk penggunaan di seluruh properti yang Anda lacak. Alokasi ini harus menambahkan hingga total konsumsi dalam catatan. Bagi pembeli, ini ditampilkan sebagai tag alokasi biaya potensial di alat penagihan mereka (seperti AWS Billing and Cost Management konsol). Pembeli harus mengaktifkan tag di akun mereka untuk melacak biaya mereka menggunakan tag ini.

Selain itu, perangkat lunak Anda harus menghubungi endpoint AWS Marketplace Layanan Pengukuran di wilayah. Produk Anda harus memiliki pengaturan titik akhir Regional yang benar, sehingga us-east-1 mengirimkan catatan ke us-east-1 titik akhir, dan us-west-2 mengirimkan catatan ke titik akhir. us-west-2 Melakukan panggilan di wilayah memberi pembeli pengalaman yang lebih stabil dan mencegah situasi di mana ketersediaan Wilayah yang tidak terkait dapat memengaruhi perangkat lunak yang berjalan di Wilayah lain.

Saat Anda mengirim catatan pengukuran ke layanan, Anda harus terhubung ke AWS Marketplace Layanan Pengukuran di Wilayah Anda. Gunakan metode getCurrentRegion() helper untuk menentukan Region di mana instans EC2 berjalan, dan kemudian meneruskan informasi Region ini ke konstruktor. MeteringServiceClient Jika Anda tidak menentukan Wilayah AWS dalam konstruktor SDK, us-east-1 Region default akan digunakan. Jika aplikasi Anda mencoba untuk membuat Cross-region panggilan ke layanan, panggilan ditolak. Untuk informasi selengkapnya, lihat Menentukan Wilayah Saat Ini Aplikasi dan getCurrentRegion().

Penanganan kegagalan

Produk Anda harus mengirimkan catatan pengukuran ke layanan, titik akhir internet publik, sehingga penggunaan dapat diambil dan ditagih. Karena mungkin bagi pelanggan untuk memodifikasi pengaturan jaringan dengan cara yang mencegah catatan pengukuran Anda dikirim, produk Anda harus memperhitungkannya dengan memilih mode kegagalan.

catatan

Beberapa kegagalan pengukuran mungkin merupakan masalah sementara dalam menghubungkan ke. AWS Marketplace Metering Service AWS Marketplace sangat merekomendasikan untuk menerapkan percobaan ulang hingga 30 menit, dengan mundur eksponensial, untuk menghindari pemadaman jangka pendek atau masalah jaringan.

Biasanya, perangkat lunak dapat gagal terbuka (memberikan pesan peringatan tetapi mempertahankan fungsionalitas penuh) atau gagal ditutup (menonaktifkan semua fungsi dalam aplikasi sampai sambungan telah dibuat kembali). Anda dapat memilih untuk gagal membuka, menutup, atau sesuatu yang spesifik untuk aplikasi Anda. Kami sangat menyarankan agar Anda menahan diri dari gagal ditutup setelah kurang dari dua jam pengukuran kegagalan.

Sebagai contoh gagal sebagian terbuka, Anda dapat terus mengizinkan akses ke perangkat lunak tetapi tidak memungkinkan pembeli untuk memodifikasi pengaturan perangkat lunak. Atau, pembeli masih dapat mengakses perangkat lunak tetapi tidak akan dapat membuat pengguna tambahan. Perangkat lunak Anda bertanggung jawab untuk menentukan dan menegakkan mode kegagalan ini. Mode kegagalan perangkat lunak Anda harus disertakan saat AMI Anda dikirimkan, dan tidak dapat diubah nanti.

Batasan

Ingatlah keterbatasan ini saat merancang dan mengirimkan perangkat lunak berkemampuan Layanan Pengukuran-enabled Anda:

  • Persyaratan peran dan gateway internet IAM untuk pelanggan Anda— Pelanggan Anda harus memiliki gateway internet dan harus meluncurkan perangkat lunak Anda dengan IAM role dengan izin tertentu. Untuk informasi selengkapnya, lihat AWS Marketplace izin API pengukuran dan hak. Perangkat lunak Anda tidak dapat terhubung ke Layanan Pengukuran jika kedua kondisi ini tidak terpenuhi.

  • Ketidakmampuan untuk menambahkan kategori penggunaan baru atau mengubah ke produk Layanan Pengukuran yang ada — Ketika pelanggan berlangganan produk perangkat lunak Anda, mereka menyetujui syarat dan ketentuan. MengubahKategori penggunaandalam produk dengan Layanan Pengukuran memerlukan produk baru dan langganan baru.

  • Ketidakmampuan untuk mengubah dimensi ke produk Layanan Pengukuran yang ada — Ketika pelanggan berlangganan produk perangkat lunak Anda, mereka menyetujui syarat dan ketentuan. Mengubah dimensi dalam produk dengan Layanan Pengukuran memerlukan produk baru dan langganan baru. Andadapatmenambahkan dimensi baru untuk produk yang ada, hingga batas 24.

  • Kurangnya uji coba gratis dan langganan tahunan — Produk Metering Service tidak mendukung uji coba gratis dan langganan tahunan saat diluncurkan.

  • Pertimbangan penggunaan multi-instans atau berbasis cluster— Beberapa perangkat lunak digunakan sebagai bagian dari deployment multi-instance. Saat Anda merancang perangkat lunak Anda, pertimbangkan bagaimana dan di mana konsumsi diukur dan di mana catatan pengukuran dipancarkan.

Contoh kode

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

MeterUsagedengan penandaan alokasi penggunaan (Opsional)

Contoh kode berikut relevan untuk produk AMI 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 selengkapnyaMeterUsage, lihat MeterUsagedi Referensi AWS Marketplace API Layanan Pengukuran.

Contoh tanggapan

{ "MeteringRecordId": "string" }