Tutorial: Configurar uma função Python com a saída do Armazenamento de Tabela do Azure
Neste tutorial, você aprenderá a configurar uma função Python para usar o Armazenamento de Tabela do Azure como uma associação de saída concluindo as tarefas a seguir.
- Use o Visual Studio Code para criar um projeto de função Python.
- Adicione uma ligação de função de saída da Tabela de Armazenamento.
- 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 Tabela 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 | Tabela de Armazenamento do Azure |
Vinculação de função | Gatilho HTTP, Tabela de armazenamento como saída |
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 tabela de armazenamento. Se você não tiver uma conta de armazenamento, crie uma.
- O guia pressupõe que você conheça os conceitos apresentados no guia do desenvolvedor do Functions e como se conectar a serviços no Azure 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 HTTP trigger . |
Fornecer um nome de função | Introduzir TableStorageOutputFunc . |
Nível de autorização | Escolha Anonymous , que permite que qualquer pessoa chame seu ponto de extremidade de função. |
Você criou um projeto de função Python com um gatilho HTTP.
Adicionar uma vinculação de saída de tabela de armazenamento
Os atributos de vinculação são definidos no arquivo de function.json para uma determinada função. Para criar uma ligação, clique com o botão direito do rato (Ctrl+clique no macOS) no function.json
ficheiro na sua pasta de funções e escolha Adicionar ligação... . Siga os prompts para definir as seguintes propriedades de vinculação para a nova vinculação:
Pedido | valor | Description |
---|---|---|
Selecionar direção de vinculação | out |
A ligação é uma ligação de saída. |
Selecione a vinculação com a direção... | Azure Table Storage |
A associação é uma associação de tabela do Armazenamento do Azure. |
O nome usado para identificar essa associação em seu código | outMessage |
Nome que identifica o parâmetro de vinculação referenciado em seu código. |
Nome da tabela na conta de armazenamento onde os dados serão gravados | testTable |
O nome da tabela que sua função grava como saída. Crie uma tabela nomeada testTable na sua conta de armazenamento, se ela não existir. |
Selecione a configuração de "local.setting.json" | Create new local app settings |
Selecione a Conta de armazenamento que sua função grava como saída. Visual Studio Code recupera sua cadeia de conexão para conexão de projeto local. |
Para verificar se a ligação foi adicionada com êxito:
- Abra o
TableStorageOutputFunc/function.json
arquivo, verifique se uma nova associação comtype: table
edirection: out
foi adicionada a este arquivo. - Abra o
local.settings.json
arquivo, verifique se um novo par<your-storage-account-name>_STORAGE: <your-storage-account-connection-string>
chave-valor que contém a cadeia de conexão da conta de armazenamento foi adicionado a esse arquivo.
Depois que a associação for adicionada, atualize seus códigos de função para consumir a vinculação substituindo TableStorageOutputFunc/__init__.py
pelo arquivo Python aqui.
import logging
import uuid
import json
import azure.functions as func
def main(req: func.HttpRequest, outMessage: func.Out[str]) -> func.HttpResponse:
rowKey = str(uuid.uuid4())
data = {
"Name": "Output binding message",
"PartitionKey": "message",
"RowKey": rowKey
}
outMessage.set(json.dumps(data))
return func.HttpResponse(f"Message created with the rowKey: {rowKey}")
Executar a função localmente
Siga o tutorial para executar a função localmente e verificar a saída da tabela.
- Selecione a Conta de Armazenamento escolhida ao criar o recurso Função do Azure se lhe for pedido para ligar a uma conta de armazenamento. Esse valor é usado para o tempo de execução do Azure Function. Não é necessariamente a mesma conta de armazenamento que você usa para a saída.
- 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 a função pode gravar em sua tabela, clique
Execute Function Now...
com o botão direito do mouse na função no modo de exibição Visual Studio Code WORKSPACE e verifique a resposta da função. A mensagem de resposta deve conter orowKey
que foi escrito na tabela.
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 Tabela de Armazenamento do Azure na nuvem, para que sua função possa gravar no blob 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_STORAGETABLE_CONNECTIONSTRING
. - Execute o seguinte comando da CLI do Azure para criar uma conexão entre sua Função do Azure e seu Armazenamento do Azure.
az functionapp connection create storage-table --source-id "<your-function-resource-id>" --target-id "<your-storage-table-resource-id>" --secret
--source-id
Formato:/subscriptions/{subscription}/resourceGroups/{source_resource_group}/providers/Microsoft.Web/sites/{site}
--target-id
Formato:/subscriptions/{subscription}/resourceGroups/{target_resource_group}/providers/Microsoft.Storage/storageAccounts/{account}/tableServices/default
Você criou um recurso do Service Connector que configura uma AZURE_STORAGETABLE_CONNECTIONSTRING
variável nas Configurações do aplicativo da função. Essa configuração do aplicativo será consumida pela associação de função para se conectar ao armazenamento, para que a função possa gravar na tabela de armazenamento. Você pode saber mais sobre 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 a vinculação de saída da tabela de armazenamento funciona.
- Siga este tutorial do Azure Functions para implantar sua função no Azure.
- Para verificar se a função pode gravar na tabela, clique
Execute Function Now...
com o botão direito do mouse na função no modo de exibição Visual Studio Code RESOURCES e verifique a resposta da função. A mensagem de resposta deve conter arowKey
função que acabou de escrever na sua tabela.
Resolver problemas
Se houver erros relacionados ao host de armazenamento, como No such host is known (<account-name>.table.core.windows.net:443)
, você precisará verificar se a cadeia de conexão usada para se conectar ao Armazenamento do Azure contém o ponto de extremidade da tabela ou não. Caso contrário, vá para o portal de Armazenamento do Azure, copie a cadeia de conexão da folha e substitua Access keys
os valores.
Se esse erro acontecer quando você iniciar o projeto localmente, verifique o local.settings.json
arquivo.
Se isso acontecer quando você implanta 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 a outros serviços de nuvem.