Wenn Sie für Ihr Produkt nutzungsbasierte Preise wählen, müssen Sie die Nutzung Ihrer App an die Service Control API melden.
Eine Einführung zu Service Control finden Sie im Startleitfaden.
Hinweis
- Richten Sie den Zugriff auf die Cloud Commerce Partner Procurement API ein, wie unter Anwendung einbinden beschrieben.
- Wir empfehlen, ein Dienstkonto für die Verwendung mit Service Control im Producer Portal zu erstellen.
(Für nutzungsbasierte Preise) Nutzung melden
Wenn eine Berechtigung erstellt wird, müssen Sie die Partnerbeschaffungs-API aufrufen, um eine usageReportingId mithilfe der folgenden HTTP GET-Anfrage abzurufen:
GET v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID
Die Antwort enthält Informationen zur Berechtigung im folgenden Format:
{ "name": "providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID", "provider": "YOUR_PARTNER_ID", "account": "USER_ACCOUNT_ID", "product": "example-messaging-service", "plan": "pro", "usageReportingId": "USAGE_REPORTING_ID", "state": "ENTITLEMENT_ACTIVATION_REQUESTED", "updateTime": "...", "createTime": "..." }
Zum Melden der Nutzung müssen Sie zuerst einen services.check-API-Aufruf ausführen, um die Konfiguration des Dienstes zu prüfen. Wenn das Objekt checkErrors[] leer ist, führen Sie in der Antwort einen API-Aufruf services.report aus, um den Nutzungsbericht zu senden.
Der Nutzungsbericht ist eine Service Control API Operation.
Das folgende Beispiel zeigt einen Nutzungsbericht für example-messaging-service, der Informationen über den vom Kunden verwendeten Speicher sendet:
POST https://servicecontrol.googleapis.com/v1/services/example-messaging-service.gcpmarketplace.example.com:report
{ "operations": [{ "operationId": "1234-example-operation-id-4567", "operationName": "Hourly Usage Report", "consumerId": "USAGE_REPORTING_ID", "startTime": "2019-02-06T12:00:00Z", "endTime": "2019-02-06T13:00:00Z", "metricValueSets": [{ "metricName": "example-messaging-service/UsageInGiB", "metricValues": [{ "int64Value": "150" }] }], "userLabels": { "cloudmarketplace.googleapis.com/resource_name": "order_history_cache", "cloudmarketplace.googleapis.com/container_name": "storefront_prod", "environment": "prod", "region": "us-west2" } }] }
wobei
operationIdist ein eindeutiger String, den Ihre Dienstinstanz generiert. Verwenden Sie für Ihre VorgängecheckundreportdenselbenoperationId.consumerIdist mit demusageReportingIdaus der Berechtigung identisch.startTimeundendTimestellen die Start- und Endzeit des Gesamtintervalls für denreport-Vorgang dar. In den meisten Fällen sollte diestartTimeeinesreport-Vorgangs denselben Wert wie dieendTimedes vorherigenreport-Vorgangs haben. Wenn der Dienst eines Kunden vor demstartTimeeinesreport-Vorgangs deaktiviert wird, sendet der API-Aufrufservices.checkeinen Fehler im ObjektcheckErrors[]und dem Kunden wird nichts für das entsprechende Intervall in Rechnung gestellt.MetricValueSetenthält ein oder mehrere Zwischenzeiträume und die entsprechenden aktualisierten Messwerte. Sie definieren die Messwerte Ihres Dienstes, wenn Sie Ihr Preismodell auswählen und einreichen. Sie können die Kennungen für Ihre Messwerte im Producer Portal im Abschnitt Technische Integration aufrufen und referenzieren.userLabelssind von Nutzern erstellte Labels, die als Schlüssel/Wert-Strings definiert werden, die bestimmten Syntaxanforderungen entsprechen. Diese Labels werden an die Cloud Billing-Tools zur Kostenverwaltung zur Attribution weitergeleitet. Empfehlungen zur Verwendung von Labels finden Sie unter Best Practices für die Verwendung von Labels.
Wenn die services.check-API einen oder mehrere der folgenden Fehler zurückgibt, empfehlen wir, die Bereitstellung Ihres Dienstes für den Kunden einzustellen, bis der Fehler behoben ist:
SERVICE_NOT_ACTIVATEDBILLING_DISABLEDPROJECT_DELETED