Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Integrieren Sie Ihr Containerprodukt mithilfe von kundenspezifischer Dosierung mit dem AWS Marketplace Metering Service und AWS SDK for Java

Fokusmodus
Integrieren Sie Ihr Containerprodukt mithilfe von kundenspezifischer Dosierung mit dem AWS Marketplace Metering Service und AWS SDK for Java - AWS Marketplace

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

AWS Marketplace Bei Container-Produkten können individuelle Messwerte für bis zu 24 verschiedene Preisdimensionen pro Produkt festgelegt werden. Um die benutzerdefinierte Messung zu aktivieren, integrieren Sie Ihr Container-Produkt in den AWS Marketplace Metering Service. Sie können Ihre eigenen Preiseinheiten und die benutzerdefinierte Messung für diese Nutzung bis hin AWS zur Abrechnung mithilfe des MeterUsageAPI-Vorgangs definieren. Das folgende Beispiel beschreibt eine Implementierung, die den AWS SDK for Java zur Integration in den AWS Marketplace Metering Service MeterUsage verwendet.

Vollständige Details finden Sie unter MeterUsageJava-Beispiele. Viele der folgenden Schritte gelten unabhängig von der Sprache.

Beispiel: Integration von AWS Marketplace Metering Services
  1. Melden Sie sich an der AWS Marketplace Management Portal an.

  2. Wählen Sie unter Assets die Option Containers aus, um mit der Erstellung eines neuen Container-Produkts zu beginnen. Das Erstellen des Produkts generiert den Produkt-Code für das Produkt, das mit Ihrem Container-Abbild integriert werden soll. Informationen zum Einstellen von AWS Identity and Access Management (IAM-) Berechtigungen finden Sie unterAWS Marketplace Mess- und Berechtigungs-API-Berechtigungen.

  3. Laden Sie das öffentliche AWS Java-SDK herunter.

    Wichtig

    Um die Metering-API-Operationen von Amazon Elastic Kubernetes Service (Amazon EKS) aus aufzurufen, müssen Sie ein unterstütztes AWS SDK verwenden und auf einem Amazon EKS-Cluster mit Kubernetes 1.13 oder höher ausführen.

  4. Rufen Sie den MeterUsage Vorgang von der Aufgabe oder dem Pod aus einmal pro Stunde für jede Dimensionsnutzung auf. Der API-Vorgang akzeptiert einen Messdatensatz für eine eindeutige Kombination aus DimensionResource, undHour. Bei der Ressource handelt es sich entweder um eine Amazon Elastic Container Service (Amazon ECS) -Aufgabe oder um einen Amazon EKS-Pod.

    { "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. }
    Anmerkung

    Es ist möglich, dass vorübergehende Probleme bei der Verbindung mit dem AWS Marketplace Metering Service auftreten. AWS Marketplace empfiehlt dringend, Wiederholungsversuche für bis zu 30 Minuten mit exponentiellem Back-up durchzuführen, um kurzfristige Ausfälle oder Netzwerkprobleme zu vermeiden.

  5. Erstellen Sie eine neue Version Ihres Container-Images, die den MeterUsage Aufruf enthält, taggen Sie den Container und übertragen Sie ihn in eine beliebige Docker-Registry, die mit Amazon ECS oder Amazon EKS kompatibel ist, z. B. Amazon Elastic Container Registry (Amazon ECR). Wenn Sie Amazon ECR verwenden, stellen Sie sicher, dass das Konto, das die Amazon ECS-Aufgabe oder den Amazon EKS-Pod startet, über Berechtigungen für das Amazon ECR-Repository verfügt. Andernfalls schlägt die Operation fehl.

  6. Erstellen Sie eine IAM-Rolle, die Ihrem Container die Berechtigung zum Aufrufen erteiltMeterUsage, wie im folgenden Codebeispiel definiert. Sie müssen diese Rolle AWS Identity and Access Management (IAM) im Parameter Task Role der Amazon ECS-Aufgabe oder der Amazon EKS-Pod-Definition angeben.

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "aws-marketplace:MeterUsage" ], "Effect": "Allow", "Resource": "*" } ] }
  7. Erstellen Sie eine Amazon ECS-Aufgabe oder eine Amazon EKS-Pod-Definition, die auf den Container verweist, der in Schritt 6 integriert wurde, AWS Marketplace und auf die IAM-Rolle verweist, die Sie in Schritt 6 erstellt haben. Wenn Sie die Protokollierung sehen möchten, aktivieren Sie die AWS CloudTrail Protokollierung in der Aufgabendefinition.

  8. Erstellen Sie einen Amazon ECS- oder Amazon EKS-Cluster, um Ihre Aufgabe oder Ihren Pod auszuführen. Weitere Informationen zum Erstellen eines Amazon ECS-Clusters finden Sie unter Creating a Cluster im Amazon Elastic Container Service Developer Guide. Weitere Informationen zum Erstellen eines Amazon EKS-Clusters (mit Kubernetes Version 1.1.3.x oder höher) finden Sie unter Erstellen eines Amazon EKS-Clusters.

  9. Konfigurieren Sie den Amazon ECS- oder Amazon EKS-Cluster und starten Sie die Amazon ECS-Aufgabendefinition oder den Amazon EKS-Pod, den Sie in Schritt 8 erstellt haben, in der Region us-east-1 AWS . Nur während dieses Testprozesses, also bevor das Produkt live ist, müssen Sie diese Region verwenden.

  10. Wenn Sie MeterUsage für jede der für das Produkt veröffentlichten Abmessungen eine gültige Antwort von erhalten haben, können Sie mit der Erstellung Ihres Container-Produkts beginnen. Bei Fragen wenden Sie sich bitte an das AWS Marketplace Seller Operations-Team.

MeterUsageJava-Beispiele

In den folgenden Codebeispielen wird der AWS SDK for Java und der AWS Marketplace Metering Service verwendet, um den MeterUsage Vorgang aufzurufen.

Im folgenden Codebeispiel wird der MeterUsage Vorgang ohne Angabe von Daten aufgerufenUsageAllocations.

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); } }

Im folgenden Codebeispiel wird die MeterUsage Operation with aufgerufenUsageAllocations.

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(); }

Auf dieser Seite

DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.