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

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 for true. Caso contrário, retorna false.

  • 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()
Copy