Definieren von Ereignisdefinitionen in der Manifest-Datei einer App¶
In diesem Thema wird beschrieben, wie Sie in der Manifest-Date einer App Ereignisdefinitionen festlegen. Ereignisdefinitionen legen fest, welche Protokollmeldungen und Ablaufverfolgungsereignisse für einen Anbieter freigegeben werden.
Über Definitionen von Ereignissen¶
Ereignisdefinitionen legen fest, wie eine Anwendung Meldungen und Ereignisse mit dem Anbieter austauscht. Ereignisdefinitionen dienen als Filter für die vom Anbieter eingestellten Stufen für Protokollmeldungen und Ablaufverfolgungsereignisse. Ein Anbieter legt die Ereignisdefinitionen für eine App fest, wenn eine neue Version oder ein Patch veröffentlicht wird.
Ereignisdefinitionen sind Filter, die sich auf Protokollmeldungen und Ablaufverfolgungsereignisse auswirken. Sie bestimmen, welche Informationen in die Ereignistabelle des Anbieters eingefügt werden, wenn die Ereignisfreigabe aktiviert ist.
Ereignisdefinitionen sind optional. Wenn ein Anbieter keine Ereignisdefinitionen für eine App angibt, können Verbraucher die gemeinsame Nutzung von Ereignissen nur dann für alle Ereignisse aktivieren oder deaktivieren, wenn der Anbieter die Ablaufverfolgung von Ereignissen aktiviert.
Vorsicht
Die Ereignisdefinitionen unterscheiden sich von den vom Anbieter eingestellten Protokoll- und Ablaufverfolgungsebenen. Die Protokoll- und Ablaufverfolgungsstufen bestimmen die Informationen, die in die Ereignistabelle des Verbrauchers eingefügt werden. Wenn weder die Protokoll- noch die Ablaufverfolgung festgelegt sind, gibt die App keine Ereignisse aus.
Die Protokoll- und Ablaufverfolgungsstufen für eine Anwendung können sich je nach den vom Verbraucher aktivierten Ereignisdefinitionen ändern. Snowflake verwendet die ausführlichsten Protokoll- und Ablaufverfolgungsstufen, die die vom Verbraucher aktivierten Ereignisdefinitionen zulassen.
Obligatorische und optionale Ereignisdefinitionen¶
Anbieter können eine Ereignisdefinition als Anforderung oder optional festlegen:
Erforderliche Ereignisdefinitionen werden automatisch aktiviert, wenn die App installiert wird.
Nach der Installation einer App mit erforderlichen Ereignisdefinitionen können Verbraucher die gemeinsame Nutzung von Ereignissen oder die erforderlichen Ereignisdefinitionen nicht deaktivieren. Wenn eine App aktualisiert wird, können Anbieter mithilfe von Systemfunktionen oder der Python Permission SDK überprüfen, ob der Verbraucher alle erforderlichen Ereignisdefinitionen aktiviert hat.
Optionale Ereignisdefinitionen können vom Verbraucher je nach Bedarf aktiviert oder deaktiviert werden.
Unterstützte Ereignisdefinitionen¶
Die folgende Tabelle listet die derzeit unterstützten Ereignisdefinitionen auf.
Typ |
Name |
Beschreibung |
Filter |
---|---|---|---|
All |
SNOWFLAKE$ALL |
Gibt alle Meldungen und Ereignisse frei, die die App ausgibt. |
|
Errors and warnings |
SNOWFLAKE$ERRORS_AND_WARNINGS |
Gibt Protokolle zu Fehlern, Warnungen und fatalen Ereignissen frei. |
|
Traces |
SNOWFLAKE$TRACES |
Gibt detaillierte Ablaufverfolgungen von Aktivitäten und Reisen des Benutzers in der Anwendung frei. |
|
Usage logs |
SNOWFLAKE$USAGE_LOGS |
Gibt High-Level-Protokolle zu Benutzeraktionen und App-Ereignissen frei. |
|
Debug logs |
SNOWFLAKE$DEBUG_LOGS |
Gibt technische Protokolle zur Fehlerbehebung in der App frei. |
|
Bemerkung
Snowsight zeigt dem Verbraucher nur den Typ „Alle Ereignisse“ All an, wenn der Anbieter die App nicht für die Verwendung von Ereignisdefinitionen konfiguriert hat.
Beschränkungen bei Ereignisdefinitionen in Apps mit Containern¶
Snowflake Native Apps with Snowpark Container Services unterstützt derzeit nur die ALL
-Ereignisdefinition. Die Unterstützung für weitere Ereignisdefinitionen wird in einem zukünftigen Release hinzugefügt.
Protokoll- und Ablaufverfolgungsstufen für eine App festlegen¶
Damit eine App die Ablaufverfolgung von Ereignissen nutzen kann, muss ein Anbieter die Protokoll- und Ablaufverfolgungsstufen in der Manifest-Datei konfigurieren.
Um die Protokoll- und Ablaufverfolgungsstufen für eine App festzulegen, fügen Sie einen configuration
-Block in die Datei manifest.yml
ein, wie im folgenden Beispiel gezeigt:
configuration:
...
log_level: INFO
trace_level: ALWAYS
...
In diesem Beispiel werden die Protokoll- und Ablaufverfolgungsstufen für die App wie folgt festgelegt:
Die
log_level
-Eigenschaft ist eingestellt aufINFO
Die
trace_level
-Eigenschaft ist aufALWAYS
eingestellt.
Weitere Informationen zu den gültigen Werten für diese Parameter finden Sie unter LOG_LEVEL und TRACE_LEVEL.
Vorsicht
Nachdem Sie eine App veröffentlicht haben, können die Protokoll- und Ablaufverfolgungsstufen nicht mehr geändert werden. Wenn die Protokoll- und Ablaufverfolgungsstufen nicht in der Manifest-Datei festgelegt sind, gibt die App keine Informationen aus.
Wenn die Protokoll- und Ablaufverfolgungsstufen für eine App festgelegt sind, müssen die Verbraucher in ihrem Konto eine Ereignistabelle einrichten, um die von der App ausgegebenen Protokollmeldungen und Ablaufverfolgungsereignisse zu sehen.
Damit der Anbieter die von einer App erzeugten Protokollmeldungen und Ablaufverfolgungen sehen kann, müssen die Verbraucher die Ereignisfreigabe aktivieren. Weitere Informationen finden Sie unter Über die Ereignisfreigabe für eine App.
Eine Ereignisdefinition der Manifest-Datei hinzufügen¶
Um eine Ereignisdefinition anzugeben, fügt ein Anbieter einen Eintrag in den Block configuration.telemetry_event_definitions
der Manifest-Datei ein, wie im folgenden Beispiel gezeigt:
configuration:
telemetry_event_definitions:
- type: ERRORS_AND_WARNINGS
sharing: MANDATORY
- type: DEBUG_LOGS
sharing: OPTIONAL
In diesem Beispiel werden die folgenden Ereignisdefinitionen angegeben:
Eine geforderte Ereignisdefinition mit dem
ERRORS_AND_WARNINGS
-Typ.Eine optionale Ereignisdefinition mit dem
DEBUG_LOGS
-Typ.
Weitere Informationen dazu finden Sie unter Unterstützte Ereignisdefinitionen.
Nachdem ein Verbraucher eine App installiert hat, erscheinen die Ereignisdefinitionen auf der Events and logs-Registerkarte auf der Security-Seite der App. Weitere Informationen finden Sie unter Protokollierung und Ereignisfreigabe aktivieren.