1. Konfigurieren Sie den Funktionszähler
Aktivieren Sie eine Exportfunktion in der Autorisierungsrichtlinie und legen Sie ein Limit von 500 pro Monat fest. Entscheiden Sie, ob das Überschreiten des Grenzwerts gemäß der konfigurierten Überschreitungsregel dieser Funktion blockiert oder zulässig ist.
Funktionszähler gehören zur Lizenz des Kunden. Sie sind vom Geräte- und API-Abonnementkontingent des Anbieter-Arbeitsbereichs getrennt. Tägliche und monatliche Funktionsperioden verwenden UTC; Ein monatlicher Zeitraum wird zu Beginn des nächsten UTC Kalendermonats zurückgesetzt.
2. Öffnen Sie einen SDK-Client
Kopieren Sie die Produkt-ID unter Konsole > Produkte. Öffnen Sie die Signaturprüfschlüssel dieses Produkts und tragen Sie alle Schlüssel-ID/Public-Key-Paare im Initialisierungscode ein. Ersetzen Sie YOUR_PRODUCT_ID, YOUR_KEY_ID und YOUR_PUBLIC_KEY. Die Schnellintegration kann den Code erzeugen. Eine Produktkonfigurationsdatei ist nicht erforderlich; das SDK verwendet standardmäßig https://www.licentivo.com.
Für eine normale Berechtigung verwenden Sie RunFeature. Für eine eingeschränkte Nutzungsaktion verwenden Sie RunMeteredFeature. Eine erfolgreiche lokale Berechtigungsprüfung ist kein Beweis dafür, dass das Online-Kontingent bestehen bleibt.
3. Schließen Sie die Geschäftsaktion ab
Behalten Sie eine eindeutige Job-ID bei, bevor Sie SDK aufrufen. Verwenden Sie diese ID erneut, wenn Sie dieselbe Geschäftsaufgabe erneut versuchen. Das SDK reserviert zunächst eine Verwendung, ruft dann den Callback auf, bestätigt dann die erfolgreiche Arbeit oder storniert einen bekannten Geschäftsfehler.
// client was opened once at application startup.
// jobID comes from your durable business task record.
jobID := os.Getenv("LICENTIVO_OPERATION_ID")
if jobID == "" {
return fmt.Errorf("persist a unique task ID before exporting")
}
err := client.RunMeteredFeature(ctx, "export", 1, jobID, func() error {
// Return success only after the output has been saved.
return os.WriteFile("licensed-report.txt", []byte("Metered export\n"), 0600)
})
if err != nil {
return err
}4. Unterbrochene Arbeit wiederherstellen
Wenn eine Aufgabe bereits als erfolgreich aufgezeichnet wurde, kann der SDK durch einen erneuten Versuch seiner ID die ausstehende Abrechnung abwickeln, ohne den Callback erneut ausführen zu müssen. Wenn der Prozess während der Ausführung des Geschäftsrückrufs abgebrochen ist, kann SDK nicht wissen, ob der externe Vorgang abgeschlossen wurde.
Sehen Sie sich Ihr gespeichertes Geschäftsergebnis an. Rufen Sie ResolveMeteredFeature(ctx, jobID, true) für bestätigten Erfolg oder false für bestätigten Fehler an. Dies löst nur die Buchhaltung. Wiederholen Sie niemals blind eine Zahlung, eine Dateizustellung oder eine andere unwiderrufliche Aktion.
Die Standardreservierung dauert 15 Minuten und ist durch einen Zeitraum von UTC begrenzt. Vor Ablauf abschließen und abrechnen; Verwenden Sie den einfachen Wrapper nicht für einen Job, der seine Reservierung möglicherweise überdauert. Eine abgebrochene Geschäftsaufgabe benötigt eine neue ID, wenn der Kunde bewusst einen neuen Versuch startet.
5. Überprüfen Sie das Zählerverhalten
- Beginnen Sie mit einem kleinen Testlimit. Ein erfolgreicher Export sollte die Nutzung um eins erhöhen.
- Lassen Sie den Callback einen Fehler zurückgeben, bevor die Arbeit abgeschlossen ist: Die Reservierung sollte storniert werden.
- Versuchen Sie es erneut mit einer erfolgreich erfassten Job-ID und stellen Sie sicher, dass der Callback nicht wiederholt wird.
- Erschöpfen Sie ein blockiertes Kontingent und stellen Sie sicher, dass der Callback nicht ausgeführt wird. Zeigen Sie beim nächsten Zurücksetzen eine klare Botschaft an.
- Simulieren Sie eine unterbrochene Aufgabe in Ihrer Testumgebung und lösen Sie sie anhand der dauerhaften Geschäftsaufzeichnung.
Häufige Fehler
Gegenoperationen erfordern Konnektivität. Eine offline zwischengespeicherte Lizenz allein berechtigt nicht zu einer Offline-Reservierung oder einem Commit. Verwandeln Sie eine verweigerte, gemessene Aktion nicht stillschweigend in eine nicht gemessene Aktion.
Ein direkter Consume-Aufruf wird sofort abgezogen. Nutzen Sie den getakteten Callback, wenn die Nutzung erst nach Geschäftserfolg zählen soll. Ein Netzwerkausfall nach Abschluss der Arbeiten ist ein Problem bei der Wiederherstellung der Buchhaltung. Gehen Sie nicht davon aus, dass die Arbeit fehlgeschlagen ist.
Stabile Aufgaben-IDs und SDK-Journale helfen bei Wiederholungsversuchen; Sie ersetzen weder Ihre Geschäftsabwicklung noch die dauerhafte Speicherung Ihrer Ergebnisse. Halten Sie während der Wiederherstellung sowohl das Geschäftsergebnis als auch den privaten Cache von SDK verfügbar.