Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Neste tutorial, configuras uma função Python para usar o Armazenamento de Tabelas do Azure como uma ligação de saída. Depois implementas a função no Funções do Azure e usas o Service Connector para ligar a aplicação Funções do Azure ao Table Storage.
Utiliza o Visual Studio Code para completar as seguintes tarefas:
- Crie um projeto de função em Python.
- Adicione uma associação de função de saída ao Armazenamento de Tabela.
- Execute a função localmente.
- Implemente a função no Azure.
- Crie uma ligação entre a aplicação Funções do Azure e o Table Storage usando o Service Connector.
O serviço fonte do Service Connector é Funções do Azure e o serviço alvo é Armazenamento de Tabelas do Azure. A ligação de funções utiliza um gatilho HTTP com a tabela de armazenamento como saída. O tipo de autenticação local e na cloud é cadeia de ligação.
Pré-requisitos
- Compreensão básica de Funções do Azure e como ligar a serviços em Funções do Azure.
- Uma subscrição Azure onde tem permissões de escrita para recursos do Azure, numa região que suporta o Service Connector. Cria uma conta Azure gratuitamente.
- Uma Conta de Armazenamento do Azure na sua subscrição do Azure, e uma tabela chamada
testTablena conta de armazenamento. -
Visual Studio Code, com as seguintes extensões instaladas:
- Python
- Ferramentas da CLI do Azure
-
Funções do Azure, configurado para permitir o Modelo de Programação V1 da seguinte forma:
- No Visual Studio Code, selecione o ícone Settings ao lado da extensão Funções do Azure e selecione Settings.
- No ecrã Settings, selecione a caixa ao lado de Funções do Azure: Permitir Seleção de Modelo de Programação.
- Fecha o ecrã de Definições .
Criar o projeto de função
No Visual Studio Code, cria um projeto de função Python com um trigger HTTP.
- Pressione F1 para abrir a paleta de comandos, procure pelo comando Funções do Azure: Criar Novo Projeto e selecione-o.
- Para selecionar a pasta que irá conter o seu projeto de função, selecione Navegar e crie uma nova pasta ou escolha uma pasta vazia para o espaço de trabalho do projeto. Não escolha uma pasta de projeto que já faça parte de um espaço de trabalho.
- Para Selecione um tipo de projeto, selecione Python.
- Para Selecione um modelo de programação Python, selecione Model V1.
- Para Selecione um interpretador Python para criar um ambiente virtual, selecione Introduza manualmente Python interpretador ou caminho completo e introduza o caminho completo para o seu executável Python.
- Para selecionar um modelo para a primeira função do seu projeto, selecione HTTP trigger.
- Para Fornecer um nome de função, introduza TableStorageOutputFunc.
- Para o nível de Autorização, selecione Anónimo.
- Para Selecionar como deseja abrir o seu projeto, selecione Abrir na janela atual.
Para mais informações, consulte Criar e implementar código de função para Azure usando Visual Studio Code.
Adicionar uma vinculação de saída de tabela de armazenamento
O procedimento seguinte edita os ficheirosfunction.json e local.settings.json do seu projeto para criar uma ligação de saída de tabela para a sua função.
- Clique com o botão direito no ficheirofunction.json na sua pasta de funções e selecione Adicionar ligação no menu contextual.
- Na paleta de comandos, para Selecionar a direção de associação, selecione saida.
- Para Selecionar a associação com direção "out", selecione Armazenamento de Tabelas do Azure.
- Para o nome usado para identificar esta ligação no seu código, introduza outMessage.
- Para o nome da tabela na conta de armazenamento onde os dados serão escritos, insira testTable.
- Para Selecionar a configuração de aplicação com a cadeia de conexão da sua conta de armazenamento a partir de "local.settings.json", selecione Criar nova configuração de aplicação local.
- Para Select subscription, selecione a sua subscrição 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, escolha a conta de armazenamento do Azure para utilizar como saída.
Verifique a vinculação adicionada
Abra o ficheiro TableStorageOutputFunc/function.json e certifique-se de que a ligação de saída da tabela está corretamente adicionada ao ficheiro. 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 ficheirolocal.settings.json e certifique-se de que o seguinte par chave-valor está neste ficheiro:
<your-storage-account-name>_STORAGE: <your-storage-account-connection-string>.
Editar o código Python
Abra o ficheiro TableStorageOutputFunc/__init__.py e substitua o 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 for solicitado a ligar-se a uma conta de armazenamento, selecione uma conta Armazenamento do Azure. Este valor é usado para o runtime do Funções do Azure e pode ser, mas não tem de ser a mesma conta de armazenamento que usas para a saída da função.
Enquanto a função está a correr, verifique se pode escrever na sua tabela de Armazenamento de Tabela clicando com o botão direito na função TableStorageOutputFunc na vista Workspace da barra de Atividade e selecionando Executar Função Agora. Verifique a resposta da função para garantir que contém um rowKey valor que foi escrito na tabela.
Implantar sua função no Azure
Cria uma aplicação Funções do Azure e implementa a tua função no Azure.
- No ficheiro function.json do seu projeto, altere o valor da propriedade no
connectionparaAZURE_STORAGETABLE_CONNECTIONSTRING. - Pressione F1 para abrir a paleta de comandos, procurar e selecionar o comando Funções do Azure: Implementar para Aplicação de Função.
- Para Select subscription, selecione a sua subscrição Azure.
- Para Selecionar uma aplicação de função, selecione Criar nova aplicação de função.
- Para Seleciona uma localização para novos recursos, seleciona uma região Azure para a tua aplicação de Funções do Azure, preferencialmente da mesma região da tua conta de Armazenamento.
- Para introduzir um nome para a nova aplicação de função, pode inserir o mesmo nome da sua função local, TableStorageOutputFunc.
- Para selecionar uma stack de execução, selecionar Python 3.10.
- Para selecionar o tipo de autenticação de recurso, selecione Segredos.
Important
O fluxo de autenticação de cadeia de ligação usando segredos requer um elevado grau de confiança na aplicação e acarreta riscos que não estão presentes noutros 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 criares a aplicação Functions, podes usar o Service Connector para ligar a app à tua tabela de Armazenamento de Tabelas, para que a tua app possa facilmente escrever a saída na tua conta de armazenamento. O comando seguinte cria um recurso Service Connector que configura a AZURE_STORAGETABLE_CONNECTIONSTRING variável nas Definições da Aplicação da função.
A ligação de funções consome esta configuração da aplicação para se ligar à conta de armazenamento, de modo a que a função possa escrever na tabela de armazenamento. Para mais informações, consulte Como o Service Connector ajuda Funções do Azure a ligar-se aos serviços.
Para criar a ligação, 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 provisórios da seguinte forma:
<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
Resolver problemas
Se aparecer erros relacionados com o host de armazenamento, como No such host is known (<account-name>.table.core.windows.net:443), certifique-se de que o cadeia de ligação usado para ligar ao Armazenamento de Tabelas contém o endpoint da tabela. Se não, vá à página do Armazenamento do Azure, copie a cadeia de conexão de Chaves de Acesso em Segurança + redes, e substitua o valor.
Se este erro ocorrer ao correr localmente, verifique o ficheirolocal.settings.json . Se o erro ocorrer quando implementa a sua função no Azure, verifique as Definições da aplicação Functions.
Limpar recursos
Se já não quiser os recursos do Azure que criou para este tutorial, pode apagá-los.
No portal Azure, abra a aplicação Funções ou o recurso da conta de Armazenamento e selecione Delete na barra de menu superior. Introduza o nome do recurso e selecione Eliminar.
No CLI do Azure, execute um ou ambos os comandos seguintes, substituindo os marcadores de posição pela sua própria informação.
az functionapp delete --name <functionapp-name> --resource-group <functionapp-resource-group> az storage account delete --name <storageaccount-name> --resource-group <storageaccount-resource-group>