Déterminer les informations sur le partage d’événements dans le compte consommateur¶
Cette rubrique décrit comment un fournisseur peut configurer une application pour déterminer si un consommateur a activé le partage d’événements dans son compte.
Vérifier les définitions d’événements à l’aide des fonctions système¶
Pour déterminer si le partage d’événements est activé dans un compte de consommateur, les fournisseurs peuvent appeler les fonctions système suivantes dans le script d’installation :
SYSTEM$IS_APPLICATION_AUTHORIZED_FOR_TELEMETRY_EVENT_SHARING()
Renvoie TRUE si la propriété AUTHORIZE_TELEMETRY_EVENT_SHARING est définie, ce qui indique que le partage d’événements est autorisé dans le compte consommateur. Sinon, cette fonction système renvoie FALSE.
SYSTEM$IS_APPLICATION_ALL_MANDATORY_TELEMETRY_EVENT_DEFINITIONS_ENABLED()
Renvoie TRUE si toutes les définitions d’événements requises ont été activées dans le compte consommateur. Sinon, cette fonction système renvoie FALSE.
L’exemple suivant montre une procédure stockée qui effectue un calcul uniquement si IS_APPLICATION_AUTHORIZED_FOR_TELEMETRY_EVENT_SHARING et IS_APPLICATION_ALL_MANDATORY_TELEMETRY_EVENT_DEFINITIONS_ENABLED sont réglées sur TRUE.
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;
$$;
Vérifier les définitions d’événements à l’aide du SDK Permissions¶
Python Permission SDK propose les fonctions suivantes pour déterminer si le partage d’événements est activé sur le compte d’un consommateur :
is_application_authorized_for_telemetry_event_sharing()
Renvoie
true
si la propriété AUTHORIZE_TELEMETRY_EVENT_SHARING esttrue
. Renvoiefalse
, sinon.is_application_all_mandatory_telemetry_event_definitions_enabled()
Renvoie
true
si toutes les définitions d’événements requises ont été activées dans le compte consommateur.
L’exemple suivant montre comment utiliser les fonctions is_application_authorized_for_telemetry_event_sharing()
et is_application_all_mandatory_telemetry_event_definitions_enabled()
du Python Permission SDK pour vérifier que le partage d’événements est activé dans le compte consommateur et que les événements obligatoires ont été activés.
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()