Determinação de informações sobre compartilhamento de evento na conta do consumidor¶
Este tópico descreve como um provedor pode definir um aplicativo para determinar se um consumidor ativou o compartilhamento de evento em sua conta.
Verificação das definições de evento usando as funções do sistema¶
Para determinar se o compartilhamento de evento está habilitado em uma conta de consumidor, os provedores podem chamar as seguintes funções do sistema no script de configuração:
SYSTEM$IS_APPLICATION_AUTHORIZED_FOR_TELEMETRY_EVENT_SHARING()
Retorna TRUE se a propriedade AUTHORIZE_TELEMETRY_EVENT_SHARING estiver definida, o que indica que o compartilhamento de evento é permitido na conta do consumidor. Caso contrário, esta função do sistema retorna FALSE.
SYSTEM$IS_APPLICATION_ALL_MANDATORY_TELEMETRY_EVENT_DEFINITIONS_ENABLED()
Retorna TRUE se todas as definições de evento necessárias foram habilitadas na conta do consumidor. Caso contrário, esta função do sistema retorna FALSE.
O exemplo a seguir mostra um procedimento armazenado que executa um cálculo somente se IS_APPLICATION_AUTHORIZED_FOR_TELEMETRY_EVENT_SHARING e IS_APPLICATION_ALL_MANDATORY_TELEMETRY_EVENT_DEFINITIONS_ENABLED estiverem definidos como 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;
$$;
Verificação das definições de evento usando o SDK de permissões¶
O Python Permission SDK fornece as seguintes funções para determinar se o compartilhamento uniforme está habilitado em uma conta de consumidor:
is_application_authorized_for_telemetry_event_sharing()
Retorna
true
se a propriedade AUTHORIZE_TELEMETRY_EVENT_SHARING fortrue
. Caso contrário, retornafalse
.is_application_all_mandatory_telemetry_event_definitions_enabled()
Retorna
true
se todas as definições de evento obrigatórias foram habilitadas na conta de consumidor.
O exemplo a seguir mostra como usar as funções is_application_authorized_for_telemetry_event_sharing()
e is_application_all_mandatory_telemetry_event_definitions_enabled()
do Python Permission SDK para verificar se o compartilhamento de evento está habilitado na conta de consumidor e se os eventos obrigatórios foram habilitados.
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()