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.
Hinweise
- Richten Sie den Zugriff auf die Cloud Commerce Partner Procurement API ein, wie unter Anwendung einbinden beschrieben.
- Wir empfehlen, im Producer Portal ein Dienstkonto für die Verwendung mit Service Control 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
operationId
ist ein eindeutiger String, den Ihre Dienstinstanz generiert. Verwenden Sie für Ihre Vorgängecheck
undreport
denselbenoperationId
.consumerId
ist mit demusageReportingId
aus der Berechtigung identisch.startTime
undendTime
stellen die Start- und Endzeit des Gesamtintervalls für denreport
-Vorgang dar. In den meisten Fällen sollte diestartTime
einesreport
-Vorgangs denselben Wert wie dieendTime
des vorherigenreport
-Vorgangs haben. Wenn der Dienst eines Kunden deaktiviert ist, bevor derstartTime
einesreport
-Vorgangs ausgeführt wird, sendet der API-Aufrufservices.check
einen Fehler im ObjektcheckErrors[]
und dem Kunden wird nichts für das entsprechende Intervall in Rechnung gestellt.MetricValueSet
enthä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.userLabels
sind von Nutzern erstellte Labels, die als Schlüssel/Wert-Strings definiert werden, die bestimmten Syntaxanforderungen entsprechen. Diese Labels werden an die Cloud Management-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_ACTIVATED
BILLING_DISABLED
PROJECT_DELETED