Sie sehen sich die Dokumentation zu Apigee Edge an.
Sehen Sie sich die Apigee X-Dokumentation an. info
Version 2.0.0
Sie können Einträge in Cloud Logging-Protokolle schreiben.
Dieser Artikel enthält eine Referenz zum Konfigurieren und Verwenden dieser Erweiterung.
Vorbereitung
Bevor Sie diese Erweiterung über einen API-Proxy verwenden können, müssen Sie Folgendes tun:
Weisen Sie in IAM dem Projektmitglied, das Ihre Erweiterung im Cloud Logging-System repräsentiert, die Rolle Logging > Logs Writer zu. Eine Anleitung zum Zuweisen von Rollen finden Sie unter Einem Dienstkonto Rollen für bestimmte Ressourcen zuweisen. Weitere Informationen zu Logging-Rollen finden Sie im Leitfaden für die Zugriffssteuerung.
Erstellen Sie mit der Google Cloud Console einen Schlüssel für das Dienstkonto.
Verwenden Sie den Inhalt der resultierenden JSON-Schlüsseldatei, wenn Sie die Erweiterung mithilfe der Konfigurationsreferenz hinzufügen und konfigurieren.
Diese Erweiterung kann von einer ExtensionCallout-Richtlinie im PostClientFlow aufgerufen werden.
Wenn Sie die ExtensionCallout-Richtlinie verwenden möchten, um diese Erweiterung über einen PostClient-Ablauf aufzurufen, muss das Flag features.allowExtensionsInPostClientFlow
in Ihrer Organisation auf true
festgelegt sein.
Wenn Sie Apigee Edge for Public Cloud-Kunde sind, müssen Sie sich an den Apigee Edge-Support wenden, um sicherzustellen, dass das Flag
features.allowExtensionsInPostClientFlow
in Ihrer Organisation auftrue
gesetzt ist.Wenn Sie Apigee Edge for Private Cloud verwenden, setzen Sie das
features.allowExtensionsInPostClientFlow
-Flag mit der API Update organization properties auftrue
.
Cloud Logging
Cloud Logging ist Teil der Google Cloud Operations Suite. Dazu gehören ein Speicher für Logs, eine Benutzeroberfläche namens „Log-Explorer“ sowie eine API für die programmatische Verwaltung von Logs. Mit Cloud Logging können Sie Logeinträge lesen und schreiben, Logs suchen und filtern, Logs exportieren und logbasierte Messwerte erstellen.
Die Cloud Logging-Erweiterung schreibt derzeit Einträge in das Protokoll. Weitere Informationen finden Sie in der Cloud Logging-Dokumentation.
Beispiele
In den folgenden Beispielen wird gezeigt, wie Sie die Unterstützung für Cloud Logging-Erweiterungsaktionen mithilfe der ExtensionCallout-Richtlinie konfigurieren.
Globaler Log
Mit der folgenden Richtlinie wird die Nachricht This is a test
in ein Protokoll namens example-log
in der globalen Cloud-Ressource geschrieben. Bei der tatsächlichen Verwendung sollte die Nachricht wahrscheinlich in einer Ablaufvariablen enthalten sein, deren Wert Sie an anderer Stelle im API-Proxy festlegen.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Logging-Extension">
<DisplayName>Logging Connector</DisplayName>
<Connector>cloud-extension-sample</Connector>
<Action>log</Action>
<Input><![CDATA[{
"logName": "example-log",
"metadata": {
"resource": {
"type": "global",
"labels": {
"project_id": "my-test"
}
}
},
"message": "This is a test."
}]]></Input>
</ConnectorCallout>
Dieser Artikel enthält eine Referenz zum Konfigurieren und Verwenden dieser Erweiterung. Eine Anleitung zum Konfigurieren einer Erweiterung mit der Apigee Console finden Sie unter Erweiterung hinzufügen und konfigurieren.
Aktionen
log
Schreibt eine Nachricht in das Protokoll.
Durch diese Aktion wird ein Cloud Logging-Logeintrag geschrieben. Logeinträge bestehen aus Metadaten und den Eintragsdaten. Weitere Informationen zu Logeinträgen finden Sie in der Referenz zu Einträgen.
Informationen zum Inhalt der Property metadata
finden Sie im Cloud Logging-Objekt LogEntry.
Syntax
<Action>log</Action>
<Input><![CDATA[{
"logName" : "cloud-log-name-to-use",
"metadata" : JSON-structured-metadata,
"message" : "data-to-log-as-entry"
}]]></Input>
Beispiel: String
<Action>log</Action>
<Input><![CDATA[{
"logName" : "example-log",
"metadata" : { "resource" : { "type" : "global" } },
"message": "This is a test."
}]]></Input>
Beispiel: JSON
<Action>log</Action>
<Input><![CDATA[{
"logName" : "example-log",
"metadata" : { "resource" : { "type" : "global" } },
"message" : { "info" : "This is a test." }
}]]></Input>
Anfrageparameter
Parameter | Beschreibung | Typ | Standard | Erforderlich |
---|---|---|---|---|
logName |
Der Name des Logs, zu dem dieser Eintrag gehört. | String | Keine | Ja |
metadata |
Metadaten zum Logeintrag. Weitere Informationen und Optionen zum Festlegen von type und labels in metadata finden Sie unter MonitoredResource. |
JSON | Keine | Nein |
message |
Daten, die als Wert für diesen Logeintrag verwendet werden sollen. Sie können einen einfachen String angeben oder JSON verwenden, um eine strukturiertere Nachricht zu protokollieren. | String oder JSON | Keine | Ja |
Antwort
None
, wenn die Nachricht in das Protokoll geschrieben wurde. Andernfalls wird bei der Anfrage ein Fehler zurückgegeben. Weitere Informationen finden Sie unter Erweiterungen debuggen.
Konfigurationsreferenz
Beachten Sie Folgendes, wenn Sie diese Erweiterung für die Verwendung in API-Proxys konfigurieren und bereitstellen.
Gängige Erweiterungseigenschaften
Für jede Erweiterung sind die folgenden Eigenschaften vorhanden.
Attribut | Beschreibung | Standard | Erforderlich |
---|---|---|---|
name |
Der Name, den Sie dieser Konfiguration der Erweiterung zuweisen. | – | Ja |
packageName |
Name des Erweiterungspakets, wie von Apigee Edge angegeben. | – | Ja |
version |
Versionsnummer für das Erweiterungspaket, von dem Sie eine Erweiterung konfigurieren. | – | Ja |
configuration |
Konfigurationswert speziell für die Erweiterung, die Sie hinzufügen. Weitere Informationen finden Sie unter Eigenschaften für dieses Erweiterungspaket. | – | Ja |
Properties für dieses Erweiterungspaket
Geben Sie Werte für die folgenden Konfigurationseigenschaften an, die für diese Erweiterung spezifisch sind.
Attribut | Beschreibung | Standard | Erforderlich |
---|---|---|---|
projectId |
Die Google Cloud-Projekt-ID, in der Protokolle erstellt werden sollen. | Keine | Ja |
credentials |
Wenn Sie diesen Wert in die Apigee Edge-Konsole eingeben, entspricht er dem Inhalt Ihrer Dienstkonto-Schlüsseldatei. Wenn er über die Verwaltungs-API gesendet wird, ist er ein Base64-codierter Wert, der aus der Dienstkonto-Schlüsseldatei generiert wird. | Keine | Ja |