Planejamento de uma função externa para o Azure

Este tópico ajuda você a se preparar para criar uma função externa para o Microsoft Azure usando o Portal do Azure ou um modelo do ARM (Azure Resource Manager) fornecido pelo Snowflake.

Neste tópico:

Pré-requisitos

Estas instruções consideram que você é um usuário experiente do Portal do Azure.

Para criar uma função externa para o Azure, você deve ter o seguinte:

  • Um locatário do Azure AD (Active Directory).

  • Uma conta no locatário do Azure AD. A conta deve ter privilégios para:

    • Criar um aplicativo Azure Functions.

    • Criar um ponto de extremidade do servidor usando o serviço de gerenciamento de API do Azure.

    • Registrar um aplicativo Azure AD.

  • Uma conta Snowflake na qual você tem a função ACCOUNTADMIN ou uma função com o privilégio CREATE INTEGRATION.

Além disso, você já deve ter uma ID de Locatário do Azure AD.

A ID de Locatário do Azure AD é um UUID, que normalmente é formatado para ficar semelhante a 12345678-abcd-1234-efab-123456789012, em que cada caractere sem traço é um dígito hexadecimal.

Se você ainda não sabe sua ID de locatário do Azure AD, você pode encontrá-la usando o seguinte procedimento:

  1. Acesse o Portal do Azure (http://portal.azure.com).

  2. Nos ícones Azure services próximos ao topo da página, clique em Azure Active Directory.

  3. No menu do lado esquerdo, procure a seção intitulada Manage, depois clique em Properties abaixo dela.

A ID de locatário do Azure AD é exibida no campo Tenant ID.

Escolha do método para criar a função externa

O Snowflake fornece instruções para duas maneiras de criar uma função externa no Azure:

  • Interface da Web do Portal do Azure

  • Modelo do ARM (Azure Resource Manager) fornecido pelo Snowflake

Portal do Azure

Você pode usar o Portal do Azure para criar um Azure Function (como o serviço remoto) e uma instância do serviço de gerenciamento de API (como o serviço de proxy). Se você escolher este método, você também usa o Portal do Azure para definir as configurações relacionadas à segurança.

As instruções para criar uma função externa usando o Portal do Azure incluem uma amostra do Azure Function e detalhes para criar uma instância básica do serviço de gerenciamento de API:

  • Novos usuários podem usar as instruções e a amostra do Azure Function com pouca ou nenhuma modificação.

  • Usuários experientes podem usar as instruções e a amostra do Azure Function como ponto de partida para criar um Azure Function personalizado e uma instância de configuração personalizada do serviço de gerenciamento de API.

Modelo do ARM (Azure Resource Manager)

Um modelo do ARM usa JSON para descrever informações de configuração sobre um Azure Function (como o serviço remoto) e uma instância do serviço de gerenciamento de API (como o serviço de proxy).

O Snowflake fornece um modelo de amostra do ARM que inclui o seguinte:

  • Amostra do Azure Function.

  • A maioria das informações de configuração para uma amostra de serviço de gerenciamento de API. Você deve inserir algumas informações adicionais se desejar personalizar a amostra de serviço de gerenciamento de API.

  • Código para criar uma conta de armazenamento necessária para o serviço Azure Functions.

  • Código para adicionar uma política Validar JWT (JSON Web Token) à instância de gerenciamento de API para aumentar a segurança do serviço de gerenciamento de API do Azure. Entretanto, é necessário atualizar manualmente a política Validar JWT antes de utilizá-la.

Os modelos do ARM podem ser úteis tanto para usuários iniciantes como para usuários experientes:

  • Novos usuários podem optar por começar com o modelo de amostra do Snowflake, porque ele reduz o número de etapas necessárias para criar o Azure Function e a instância do serviço de gerenciamento de API.

    Observe que embora as instruções baseadas em modelos ajudem a criar sua primeira função externa rapidamente, elas pulam etapas necessárias para a maioria dos usuários criar funções externas personalizadas.

  • Usuários experientes podem optar por usar os modelos do ARM, porque os modelos podem ser usados para automatizar a implantação. Isto pode ser útil se você estiver desenvolvendo um Azure Function e um serviço de gerenciamento de API de forma iterativa.

Para obter mais informações sobre a configuração do Azure Functions usando os modelos do ARM, consulte a documentação da Microsoft: implantação de recursos .

Preparação para usar o Portal do Azure

Estas seções ajudam você a se preparar para usar o Portal do Azure para criar uma função externa no Microsoft Azure.

Escolher o plano de preços para seu Azure Function

No Microsoft Azure, um Azure Function (serviço remoto) pode ser executado em um host Linux ou host Windows. No momento, o Azure oferece diferentes combinações de preços e opções de autenticação para hosts Linux e Windows.

Se você pretende executar seu Azure Function no Linux, então você deve escolher uma combinação válida de plano de preços e autenticação do Azure:

Criar uma planilha para rastrear as informações necessárias

Ao concluir as tarefas para criar uma função externa no Portal do Azure, você deve inserir valores específicos (por exemplo, nome do serviço de gerenciamento de API) durante cada etapa do processo. Muitas vezes, os valores inseridos são necessários nas etapas posteriores.

Para facilitar o registro/rastreamento dessas informações, fornecemos uma planilha com campos para cada um dos valores requeridos:

================================================================================
======================= Tracking Worksheet: Azure Portal =======================
================================================================================

****** Step 1: Azure Function (Remote Service) Info ****************************

Azure Function app name: _______________________________________________________
HTTP-Triggered Function name: __________________________________________________
Azure Function AD app registration name: _______________________________________
Azure Function App AD Application ID: __________________________________________

    (The value for the Azure Function App AD Application ID above is the
    "Application (client) ID" of the Azure AD app registration for the
    Azure Function. The value is used to fill in the "azure_ad_application_id"
    field in the CREATE API INTEGRATION command. This value is in the form of a
    UUID (universally unique identifier), which contains hexadecimal digits and
    dashes.)


****** Step 2: Azure API Management Service (Proxy Service) Info ***************

API Management service name: ___________________________________________________
API Management API URL suffix: _________________________________________________


****** Steps 3-5: API Integration & External Function Info *********************

API Integration Name: __________________________________________________________
AZURE_MULTI_TENANT_APP_NAME: ___________________________________________________
AZURE_CONSENT_URL: _____________________________________________________________

External Function Name: ________________________________________________________
Copy

Preparo para usar o modelo do ARM

Estas seções ajudam você a se preparar para usar o modelo do ARM fornecido pelo Snowflake para criar uma função externa no Microsoft Azure.

Baixar o modelo

O modelo está disponível para download no repositório Snowflake no GitHub.

Antes de utilizar o modelo, você deve importá-lo para o Portal do Azure. Os detalhes para a importação do modelo são incluídos posteriormente no tópico que descreve o uso do modelo.

Escolher o plano de preços para seu Azure Function

No Microsoft Azure, um Azure Function (serviço remoto) pode ser executado em um host Linux ou host Windows. No momento, o Azure oferece diferentes combinações de preços e opções de autenticação para hosts Linux e Windows.

O modelo do ARM fornecido pelo Snowflake tem como padrão o uso do seguinte plano de preços e informações de autenticação:

  • Usa como padrão um host Windows para o Azure Function.

  • Usa como padrão o plano de preço “Consumo”.

  • Cria um aplicativo do Azure Functions e configura esse aplicativo para exigir a autenticação do AD (Active Directory).

  • Cria uma política de segurança para validar um JWT (JSON Web Token) que autoriza o Snowflake a chamar seu Azure Function.

    Observe que falta um campo nesta política de segurança; as instruções fornecidas posteriormente orientam a preencher esse campo.

Se você planeja executar sua instância de gerenciamento de API do Azure ou Azure Function com uma configuração diferente, você deve atualizar o modelo. Para obter mais informações sobre como atualizar o modelo, consulte a documentação da Microsoft:

Criar uma planilha para rastrear as informações necessárias

Ao concluir as tarefas para criar uma função externa usando o modelo do ARM fornecido pelo Snowflake, é necessário inserir valores específicos (por exemplo, nome do serviço de gerenciamento de API) durante cada etapa do processo. Muitas vezes, os valores inseridos são necessários nas etapas posteriores.

Para facilitar o registro/rastreamento dessas informações, fornecemos uma planilha com campos para cada um dos valores requeridos:

Nota

Para informações codificadas no modelo ARM, os valores já foram preenchidos.

================================================================================
======================= Tracking Worksheet: ARM Template =======================
================================================================================

****** Step 1: Azure Function (Remote Service) Info ****************************

HTTP-Triggered Function name: __________________ echo __________________________
Azure Function AD Application ID: ______________________________________________

    (The value for the Azure Function AD Application ID above is the
    "Application (client) ID" of the Azure AD app registration for the
    Azure Function. The value is used to fill in the "azure_ad_application_id"
    field in the CREATE API INTEGRATION command. This value is in the form of a
    UUID (universally unique identifier), which contains hexadecimal digits and
    dashes.)


****** Step 2: Azure API Management Service (Proxy Service) Info ***************

API Management service name: ___________________________________________________
API Management URL: ____________________________________________________________
Azure Function HTTP Trigger URL: _______________________________________________
API Management API URL suffix: _________________________________________________


****** Steps 3-5: API Integration & External Function Info *********************

API Integration Name: __________________________________________________________
AZURE_MULTI_TENANT_APP_NAME: ___________________________________________________
AZURE_CONSENT_URL: _____________________________________________________________

External Function Name: ________________________________________________________
Copy