Tutorial: Função do Python com o Armazenamento de Filas do Azure como gatilho
Neste tutorial, você aprenderá a configurar uma função do Python com a fila de armazenamento como gatilho concluindo as tarefas a seguir.
- Usar o Visual Studio Code para criar um projeto de funções do Python.
- Usar o Visual Studio Code para executar a função localmente.
- Usar a CLI do Azure para criar uma conexão entre a função do Azure e a fila de armazenamento com o conector de serviço.
- Usar 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 | Azure Function |
Serviço de Destino | Fila de Armazenamento do Azure |
Associação de função | Fila de armazenamento como gatilho |
Tipo de autenticação de projeto local | Cadeia de conexão |
Tipo de autenticação de função de nuvem | Cadeia de conexão |
Aviso
A Microsoft recomenda usar o fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento exige um grau muito alto de confiança no aplicativo e traz 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 em uma das plataformas compatíveis.
- A CLI do Azure. Você pode usá-la no Azure Cloud Shell ou instalá-la localmente.
- Uma conta de armazenamento do Azure e uma fila de armazenamento. Caso não tenha um Armazenamento do Microsoft Azure, crie um.
- Este guia pressupõe que você conheça os conceitos básicos apresentados no guia do desenvolvedor do Azure Functions e saiba como se conectar aos serviços do Functions.
Criar um projeto de funções do Python
Siga o tutorial para criar um projeto local do Azure Functions e forneça as seguintes informações nos prompts:
Prompt | Seleção |
---|---|
Selecionar um idioma | Escolha Python . (modelo de linguagem de programação v1) |
Selecione o interpretador do Python para criar um ambiente virtual | Escolha seu interpretador do Python preferido. Se uma opção não for mostrada, digite o caminho completo no binário do Python. |
Selecione um modelo para a primeira função do projeto | Escolha Azure Queue Storage trigger . |
Forneça um nome de função | Digite QueueStorageTriggerFunc . |
Selecione a configuração a partir de "local.settings.json" | Escolha Create new local app settings , que permite selecionar sua conta de armazenamento e informar o nome da fila que funciona como o gatilho. |
Você criou um projeto de função Python com o Armazenamento do Microsoft Azure Queue como gatilho. O projeto local se conecta ao Armazenamento do Microsoft Azure por meio da cadeia de conexão salva no arquivo local.settings.json
. Por fim, a função main
do arquivo __init__.py
da função pode consumir a cadeia de conexão com a ajuda da associação de função definida no arquivo function.json
.
Executar a função localmente
Siga o tutorial para executar a função localmente e verificar o gatilho.
- Selecione a conta de armazenamento escolhida ao criar o recurso de função do Azure caso precise se conectar ao armazenamento. Esse valor é usado para o runtime da função do Azure e não é necessariamente o mesmo que a conta de armazenamento usada 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ê verá que a função é disparada e processada como um item de fila no terminal do Visual Studio Code.
Criar uma conexão usando o conector de serviço
Na última etapa, você verificou o projeto de funções localmente. Agora você aprenderá a configurar a conexão entre a função do Azure e a tabela do Armazenamento do Microsoft Azure na nuvem, para que a função possa ser disparada pela fila de armazenamento depois de ser implantada na nuvem.
- Abra o arquivo
function.json
no projeto local e altere o valor da propriedadeconnection
embindings
paraAZURE_STORAGEQUEUE_CONNECTIONSTRING
. - Execute o comando da CLI do Azure a seguir para criar uma conexão entre a função do Azure e a 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
- Formato de
--source-id
:/subscriptions/{subscription}/resourceGroups/{source_resource_group}/providers/Microsoft.Web/sites/{site}
- Formato de
--target-id
:/subscriptions/{subscription}/resourceGroups/{target_resource_group}/providers/Microsoft.Storage/storageAccounts/{account}/queueServices/default
Esta etapa criará um recurso do conector de serviço que configura uma variável AZURE_STORAGEQUEUE_CONNECTIONSTRING
nas configurações de aplicativo da função. O runtime de associação de função a usará para se conectar ao armazenamento, para que a função possa aceitar gatilhos da fila de armazenamento. Para obter mais informações, acesse Como o conector de serviço ajuda o Azure Functions a se conectar aos serviços.
Implantar sua função no Azure
Agora você pode implantar a função no Azure e verificar se o gatilho da fila de armazenamento funciona.
- Siga este tutorial do Azure Functions para implantar a 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ê verá que a função é disparada e processada como um item de fila nos logs da função.
Solucionar problemas
Se houver erros relacionados ao host de armazenamento, como No such host is known (<account-name>.queue.core.windows.net:443)
, verifique se a cadeia de conexão usada para se conectar ao Armazenamento do Microsoft Azure contém o ponto de extremidade da fila ou não. Caso contrário, acesse o Armazenamento do Microsoft Azure no portal do Azure, copie a sequência de conexão do painel Access keys
e substitua os valores.
Se esse erro acontecer quando você iniciar o projeto localmente, verifique o arquivo local.settings.json
.
Se esse erro acontecer quando você implantar sua função na nuvem (nesse caso, a implantação da função costuma falhar em Syncing triggers
), verifique as configurações de aplicativo da função.
Limpar os recursos
Se você não quiser continuar usando esse projeto, exclua o recurso Aplicativo de Funções criado anteriormente.
- No portal do Azure, abra o recurso Aplicativo de Funções e selecione Excluir.
- Insira o nome do aplicativo e selecione Excluir para confirmar.
Próximas etapas
Leia os artigos abaixo para saber mais sobre os conceitos do conector de serviço e como ele ajuda o Azure Functions a se conectar aos serviços.