Partilhar via


Tutorial: Função Python com o Armazenamento de Filas do Azure como gatilho

Neste tutorial, você aprenderá a configurar uma função Python com a fila de armazenamento como gatilho concluindo as tarefas a seguir.

  • Use o Visual Studio Code para criar um projeto de função Python.
  • Use o Visual Studio Code para executar a função localmente.
  • Use a CLI do Azure para criar uma conexão entre a Função do Azure e a Fila de Armazenamento com o Service Connector.
  • Use o Visual Studio para implantar sua função.

Uma visão geral dos componentes do projeto de função neste tutorial:

Componente do Projeto Seleção / Solução
Serviço de origem Função do Azure
Serviço de Destino Fila de Armazenamento do Azure
Vinculação de função Fila de armazenamento como gatilho
Tipo de autenticação de projeto local Cadeia de Ligação
Tipo de autenticação de função de nuvem Cadeia de Ligação

Aviso

A Microsoft recomenda que você use o fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento requer um grau muito alto de confiança no aplicativo e acarreta riscos que não estão presentes em outros fluxos. Você só deve usar esse fluxo quando outros fluxos mais seguros, como identidades gerenciadas, não forem viáveis.

Pré-requisitos

Criar um projeto de função Python

Siga o tutorial para criar um projeto local do Azure Functions e forneça as seguintes informações nos prompts:

Pedido Seleção
Selecione um idioma Selecione Python. (modelo de linguagem de programação v1)
Selecione um interpretador Python para criar um ambiente virtual Escolha o seu interpretador Python preferido. Se uma opção não for mostrada, digite o caminho completo para o binário do Python.
Selecione um modelo para a primeira função do seu projeto Selecione Azure Queue Storage trigger.
Fornecer um nome de função Introduzir QueueStorageTriggerFunc.
Selecione a configuração de "local.settings.json" Escolha Create new local app settings, que permite selecionar sua conta de armazenamento e fornecer o nome da fila que funciona como o gatilho.

Você criou um projeto de função Python com a Fila de Armazenamento do Azure como gatilho. O projeto local se conecta ao Armazenamento do Azure usando a cadeia de conexão salva no local.settings.json arquivo. Finalmente, a main função no __init__.py arquivo da função pode consumir a cadeia de conexão com a ajuda da ligação de função definida no function.json arquivo.

Executar a função localmente

Siga o tutorial para executar a função localmente e verificar o gatilho.

  1. Selecione a conta de armazenamento como você escolheu ao criar o recurso Azure Function se for solicitado a se conectar ao armazenamento. Esse valor é usado para o tempo de execução do Azure Function e não é necessariamente o mesmo que a conta de armazenamento que você usa para o gatilho.
  2. Para iniciar a função localmente, pressione <kbd>F5 </kbd> ou selecione o ícone Executar e Depurar na barra de atividades do lado esquerdo.
  3. Para verificar se o gatilho funciona corretamente, mantenha a função em execução localmente e abra o painel Fila de Armazenamento no portal do Azure, selecione Adicionar mensagem e forneça uma mensagem de teste. Você deve ver que a função é acionada e processada como um item de fila em seu terminal de código do Visual Studio.

Criar uma conexão usando o Service Connector

Na última etapa, você verificou o projeto de função localmente. Agora você aprenderá como configurar a conexão entre a Função do Azure e a Fila de Armazenamento do Azure na nuvem, para que sua função possa ser acionada pela fila de armazenamento depois de ser implantada na nuvem.

  1. Abra o function.json arquivo em seu projeto local, altere o connection valor da propriedade em bindings para ser AZURE_STORAGEQUEUE_CONNECTIONSTRING.
  2. Execute o seguinte comando da CLI do Azure para criar uma conexão entre sua Função do Azure e sua conta de armazenamento do Azure.
az functionapp connection create storage-queue --source-id "<your-function-resource-id>" --target-id "<your-storage-queue-resource-id>" --secret
  • --source-id Formato: /subscriptions/{subscription}/resourceG roups/{source_resource_group}/providers/Microsoft.Web/sites/{site}
  • --target-id Formato: /subscriptions/{subscription}/resourceGroups/{target_resource_group}/providers/Microsoft.Storage/storageAccounts/{account}/queueServices/default

Esta etapa cria um recurso do Service Connector que configura uma AZURE_STORAGEQUEUE_CONNECTIONSTRING variável nas Configurações do aplicativo da função. O tempo de execução de vinculação de função o usa para se conectar ao armazenamento, para que a função possa aceitar gatilhos da fila de armazenamento. Para obter mais informações, vá para como o Service Connector ajuda o Azure Functions a se conectar a serviços.

Implantar sua função no Azure

Agora você pode implantar sua função no Azure e verificar se o gatilho da fila de armazenamento funciona.

  1. Siga este tutorial do Azure Functions para implantar sua função no Azure.
  2. Abra o painel Fila de Armazenamento no portal do Azure, selecione Adicionar mensagem e forneça uma mensagem de teste. Você deve ver que a função é acionada e processada como um item de fila em seus logs de função.

Resolver problemas

Se houver erros relacionados ao host de armazenamento, como No such host is known (<acount-name>.queue.core.windows.net:443), verifique se a cadeia de conexão usada para se conectar ao Armazenamento do Azure contém o ponto de extremidade da fila ou não. Caso contrário, vá para o Armazenamento do Azure no portal do Azure, copie a cadeia de conexão do painel e substitua Access keys os valores.

Se esse erro acontecer quando você iniciar o projeto localmente, verifique o local.settings.json arquivo.

Se esse erro acontecer quando você implantar sua função na nuvem (neste caso, a implantação da função geralmente falha), Syncing triggers verifique as Configurações do aplicativo da sua função.

Clean up resources (Limpar recursos)

Se você não vai continuar a usar este projeto, exclua o recurso Function App que você criou anteriormente.

  1. No portal do Azure, abra o recurso Aplicativo de Função e selecione Excluir.
  2. Digite o nome do aplicativo e selecione Excluir para confirmar.

Próximos passos

Leia os artigos abaixo para saber mais sobre os conceitos do Service Connector e como ele ajuda o Azure Functions a se conectar aos serviços.