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;
$$;
Copy

Ü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_SHARING true ist. Gibt false 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()
Copy