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
- Instale o Visual Studio Code numa das plataformas suportadas.
- CLI do Azure. Você pode usá-lo no Azure Cloud Shell ou instalá-lo localmente.
- Uma Conta de Armazenamento do Azure e uma fila de armazenamento. Se você não tiver um Armazenamento do Azure, crie um.
- Este guia pressupõe que você conheça os conceitos básicos apresentados no guia do desenvolvedor do Azure Functions e como se conectar a serviços no Functions.
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.
- 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.
- Para iniciar a função localmente, pressione
<kbd>
F5</kbd>
ou selecione o ícone Executar e Depurar na barra de atividades do lado esquerdo. - 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.
- Abra o
function.json
arquivo em seu projeto local, altere oconnection
valor da propriedade embindings
para serAZURE_STORAGEQUEUE_CONNECTIONSTRING
. - 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.
- Siga este tutorial do Azure Functions para implantar sua função no Azure.
- 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.
- No portal do Azure, abra o recurso Aplicativo de Função e selecione Excluir.
- 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.