Informationen über die gemeinsame Nutzung von Ereignissen im Konto des Verbrauchers ermitteln¶
Unter diesem Thema wird beschrieben, wie ein Anbieter eine App einrichten kann, um festzustellen, ob ein Verbraucher die Ereignisfreigabe in seinem Konto aktiviert hat.
Überprüfen Sie Ereignisdefinitionen mithilfe von Systemfunktionen¶
Um festzustellen, ob die Ereignisfreigabe in einem Kundenkonto aktiviert ist, können Anbieter die folgenden Systemfunktionen innerhalb des Setup-Skripts aufrufen:
SYSTEM$IS_APPLICATION_AUTHORIZED_FOR_TELEMETRY_EVENT_SHARING()
Gibt TRUE zurück, wenn die Eigenschaft AUTHORIZE_TELEMETRY_EVENT_SHARING eingestellt ist, was bedeutet, dass die Ereignisfreigabe im Konto des Verbrauchers erlaubt ist. Andernfalls gibt diese Systemfunktion FALSE zurück.
SYSTEM$IS_APPLICATION_ALL_MANDATORY_TELEMETRY_EVENT_DEFINITIONS_ENABLED()
Gibt TRUE zurück, wenn alle erforderlichen Ereignisdefinitionen im Konto des Verbrauchers aktiviert wurden. Andernfalls gibt diese Systemfunktion FALSE zurück.
Das folgende Beispiel zeigt eine gespeicherte Prozedur, die eine Berechnung nur dann durchführt, wenn sowohl IS_APPLICATION_AUTHORIZED_FOR_TELEMETRY_EVENT_SHARING als auch IS_APPLICATION_ALL_MANDATORY_TELEMETRY_EVENT_DEFINITIONS_ENABLED auf TRUE eingestellt sind.
CREATE OR ALTER VERSIONED SCHEMA app_schema;
CREATE OR REPLACE PROCEDURE app_schema.sum(num1 float, num2 float)
RETURNS STRING
LANGUAGE SQL
EXECUTE AS OWNER
AS $$
BEGIN
IF (SYSTEM$IS_APPLICATION_AUTHORIZED_FOR_TELEMETRY_EVENT_SHARING() and SYSTEM$IS_APPLICATION_ALL_MANDATORY_TELEMETRY_EVENT_DEFINITIONS_ENABLED()) THEN
RETURN num1 + num2;
ELSE
-- notify consumers that they need to enable event sharing
RETURN 'Sorry you can\'t access the API, please enable event sharing.';
END IF;
END;
$$;
Überprüfen Sie Ereignisdefinitionen mithilfe von Berechtigungen SDK¶
Das Python Permission SDK bietet die folgenden Funktionen, um festzustellen, ob die Ereignisfreigabe in einem Verbraucherkonto aktiviert ist:
is_application_authorized_for_telemetry_event_sharing()
Gibt
true
zurück, wenn die Eigenschaft AUTHORIZE_TELEMETRY_EVENT_SHARINGtrue
ist. Gibtfalse
zurück, andernfalls.is_application_all_mandatory_telemetry_event_definitions_enabled()
Gibt
true
zurück, wenn alle obligatorischen Ereignisdefinitionen im Konto des Verbrauchers aktiviert wurden.
Das folgende Beispiel zeigt, wie Sie die Funktionen is_application_authorized_for_telemetry_event_sharing()
und is_application_all_mandatory_telemetry_event_definitions_enabled()
des Python Permission SDK verwenden, um zu überprüfen, ob die Ereignisfreigabe im Konto des Verbrauchers aktiviert ist und ob die obligatorischen Ereignisse aktiviert wurden.
import streamlit as st
import snowflake.permissions as permissions
def critical_feature_that_requires_event_sharing():
st.write("critical_feature_that_requires_event_sharing")
def main():
if permissions.is_application_authorized_for_telemetry_event_sharing() and permissions.is_application_all_mandatory_telemetry_event_definitions_enabled():
critical_feature_that_requires_event_sharing()
else:
permissions.request_event_sharing()
if __name__ == "__main__":
main()