Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste tutorial, você configurará uma função de Python para usar Armazenamento de Tabelas do Azure como uma associação de saída. Em seguida, você implanta a função para Azure Functions e usa o Service Connector para conectar o aplicativo Azure Functions com o Armazenamento de Tabelas.
Você usa Visual Studio Code para concluir as seguintes tarefas:
- Crie um projeto de função Python.
- Adicione uma associação de função de saída do Armazenamento de Tabelas.
- Execute a função localmente.
- Implante a função para Azure.
- Crie uma conexão entre o aplicativo Azure Functions e o Armazenamento de Tabelas usando o Conector de Serviço.
O serviço de origem do Conector de Serviço é Azure Functions e o serviço de destino é Armazenamento de Tabelas do Azure. A associação de função usa um gatilho HTTP com a tabela de armazenamento como saída. O tipo de autenticação local e de nuvem é cadeia de conexão.
Pré-requisitos
- Noções básicas sobre Azure Functions e como se conectar a serviços no Azure Functions.
- Uma assinatura do Azure em que você tem permissões de gravação de recursos do Azure, em uma região do Azure que oferece suporte ao Service Connector. Crie uma conta de Azure gratuitamente.
- Uma conta Armazenamento do Azure em sua assinatura de Azure e uma tabela chamada
testTablena conta de armazenamento. -
Visual Studio Code, com as seguintes extensões instaladas:
- Python
- Ferramentas da CLI do Azure
-
Azure Functions, configurado para permitir o Modelo de Programação V1 da seguinte maneira:
- Em Visual Studio Code, selecione o ícone Settings ao lado da extensão Azure Functions e selecione Settings.
- Na tela Settings, marque a caixa de seleção ao lado de Azure Functions: Permitir Seleção de Modelo de Programação.
- Feche a tela Configurações .
Criar o projeto de função
Em Visual Studio Code, crie um projeto de função Python com um gatilho HTTP.
- Pressione F1 para abrir a paleta de comandos e pesquise e selecione o comando Azure Functions: Criar Novo Project.
- Para selecionar a pasta que conterá seu projeto de função, selecione Procurar e crie uma nova pasta ou escolha uma pasta vazia para o workspace do projeto. Não escolha uma pasta de projeto que já faça parte de um workspace.
- Para Selecione um tipo de projeto, selecione Python.
- Para Selecione um modelo de programação Python, selecione Model V1.
- Para Selecionar um interpretador de Python para criar um ambiente virtual, selecione Inserir manualmente o interpretador Python ou o caminho completo e insira o caminho completo para o executável do Python.
- Para selecionar um modelo para a primeira função do projeto, selecione o gatilho HTTP.
- Para fornecer um nome de função, insira TableStorageOutputFunc.
- Para o nível de autorização, selecione Anônimo.
- Para selecionar como você deseja abrir seu projeto, selecione Abrir na janela atual.
Para obter mais informações, consulte Criar e implantar código de função para Azure usando Visual Studio Code.
Adicionar uma vinculação de saída da tabela de armazenamento
O procedimento a seguir edita os arquivos function.json e local.settings.json em seu projeto para criar uma associação de saída de tabela para sua função.
- Clique com o botão direito do mouse no arquivo function.json na pasta de funções e selecione Adicionar associação no menu de contexto.
- Na paleta de comandos, para Selecionar direção de associação, selecione saída.
- Para selecionar a associação com a direção "out", selecione Armazenamento de Tabelas do Azure.
- Para O nome usado para identificar essa associação em seu código, insira outMessage.
- Para o nome da tabela na conta de armazenamento em que os dados serão gravados, insira testTable.
- Para Selecionar a configuração do aplicativo com a string de conexão da sua conta de armazenamento de "local.settings.json", selecione Criar nova configuração de aplicativo local.
- Para Select subscription, selecione sua assinatura Azure.
- Para Selecione um tipo de conta de armazenamento para desenvolvimento, selecione Use Armazenamento do Azure para armazenamento remoto.
- Para Selecionar uma conta de armazenamento, selecione a conta Armazenamento do Azure a ser usada para saída.
Verificar a vinculação adicionada
Abra o arquivo TableStorageOutputFunc/function.json e verifique se a associação de saída da tabela foi adicionada corretamente ao arquivo. Se algum dos valores for diferente, edite-os para os seguintes valores:
{ "type": "table", "direction": "out", "name": "outMessage", "tableName": "testtable", "connection": "<your-storage-account-name>_STORAGE" }Abra o arquivo local.settings.json e verifique se o seguinte par chave-valor está neste arquivo:
<your-storage-account-name>_STORAGE: <your-storage-account-connection-string>.
Editar o código de Python
Abra o arquivo TableStorageOutputFunc/__init__.py e substitua seu conteúdo pelo seguinte código:
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
Para executar a função localmente, pressione F5. Se solicitado a se conectar a uma conta de armazenamento, selecione uma conta de Armazenamento do Azure. Esse valor é usado para o Azure Functions runtime e pode ser, mas não precisa ser a mesma conta de armazenamento que você usa para a saída da função.
Enquanto a função está em execução, verifique se ela pode gravar na tabela do Armazenamento de Tabela clicando com o botão direito do mouse na função TableStorageOutputFunc na exibição do Workspace da barra de atividades e selecionando Executar Função Agora. Verifique a resposta da função para verificar se ela contém um rowKey valor que foi gravado na tabela.
Implantar sua função no Azure
Crie um aplicativo Azure Functions e implante sua função para Azure.
- No arquivo function.json do seu projeto, altere o valor da propriedade
connectionembindingsparaAZURE_STORAGETABLE_CONNECTIONSTRING. - Pressione F1 para abrir a paleta de comandos e pesquise e selecione o comando Azure Functions: Implantar no Aplicativo de Funções.
- Para Select subscription, selecione sua assinatura Azure.
- Para Selecionar um aplicativo de funções, selecione Criar novo Aplicativo de Funções.
- Para Selecione um local para novos recursos, selecione uma região Azure para seu aplicativo Azure Functions, preferencialmente a mesma região da sua conta de Armazenamento.
- Para Inserir um nome para o novo aplicativo de funções, você pode inserir o mesmo nome que sua função local, TableStorageOutputFunc.
- Para Selecionar uma pilha de runtime, selecione Python 3.10.
- Para selecionar o tipo de autenticação de recurso, selecione Segredos.
Importante
O fluxo de autenticação de cadeia de conexão usando segredos requer um alto grau de confiança na aplicação e traz riscos que não estão presentes em outros fluxos. Você deve usar esse fluxo somente quando fluxos mais seguros, como identidades gerenciadas, não forem viáveis.
Criar uma conexão usando o Service Connector
Depois de criar o aplicativo Functions, você pode usar o Service Connector para conectar o aplicativo à tabela de Armazenamento de Tabela, para que seu aplicativo possa gravar facilmente a saída em sua conta de armazenamento. O comando a seguir cria um recurso do Service Connector que configura a AZURE_STORAGETABLE_CONNECTIONSTRING variável nas Configurações de Aplicativo da função.
A associação de função consome essa configuração de aplicativo para se conectar à conta de armazenamento para que a função possa gravar na tabela de armazenamento. Para obter mais informações, consulte Como o Service Connector ajuda Azure Functions a se conectar a serviços.
Para criar a conexão, você pode executar o seguinte comando CLI do Azure em Visual Studio Code ou usar Azure Cloud Shell ou local CLI do Azure. Substitua os valores de espaço reservado da seguinte maneira:
<function-resource-id>:/subscriptions/<your-subscription>/resourceGroups/<function-resource-group>/providers/Microsoft.Web/sites/<function-name><storage-resource-id>:/subscriptions/<your-subscription>/resourceGroups/<storage-resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>/tableServices/default
az functionapp connection create storage-table --source-id "<function-resource-id>" --target-id "<storage-resource-id>" --secret
Solucionar problemas
Se você receber erros relacionados ao host de armazenamento, como No such host is known (<account-name>.table.core.windows.net:443), verifique se o cadeia de conexão usado para se conectar ao Armazenamento de Tabelas contém o ponto de extremidade da tabela. Caso contrário, vá para a página Armazenamento do Azure, copie a cadeia de conexão de chaves de acesso em Security + networking e substitua o valor.
Se esse erro ocorrer quando você executar localmente, verifique o arquivo local.settings.json . Se o erro ocorrer quando você implantar sua função para Azure, verifique as Configurações de Aplicativo do aplicativo Functions.
Limpar os recursos
Se você não quiser mais os recursos de Azure criados para este tutorial, poderá excluí-los.
No portal do Azure, abra o aplicativo do Functions ou o recurso de conta de armazenamento e selecione Delete na barra de menus superior. Insira o nome do recurso e selecione Excluir.
Em CLI do Azure, execute um ou ambos os comandos a seguir, substituindo os espaços reservados por suas próprias informações.
az functionapp delete --name <functionapp-name> --resource-group <functionapp-resource-group> az storage account delete --name <storageaccount-name> --resource-group <storageaccount-resource-group>