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.
Este quickstart mostra como configurar uma aplicação de Durable Functions usando o fornecedor predefinido Armazenamento do Azure para usar ligações baseadas em identidade, para que a sua aplicação possa aceder à sua conta de armazenamento sem gerir segredos. Uma identidade gerida a partir de Microsoft Entra ID é gerida pela plataforma Azure — não precisa de provisionar ou rodar segredos.
Neste artigo:
- Configuração de desenvolvimento local — Use o Azurite ou as credenciais do seu programador para testes locais
- Ligações baseadas em identidade para aplicação implementada em Azure — Ative uma identidade gerida e configure a sua Função Aplicação
Observação
A identidade gerida é suportada na extensão Durable Functions nas versões 2.7.0 e superiores.
Se não tiver uma conta do Azure, crie uma conta gratuita antes de começar.
Pré-requisitos
Para concluir este arranque rápido, necessita de:
- Um projeto Durable Functions existente criado no portal Azure ou um projeto local Durable Functions implementado no Azure.
- Familiaridade em executar uma aplicação de Durable Functions no Azure.
Se não tem um projeto Durable Functions implementado no Azure, recomendamos que comece com um dos seguintes quickstarts:
- Crie sua primeira função durável - C#
- Crie sua primeira função durável - JavaScript
- Crie a sua primeira função durável - Python
- Crie sua primeira função durável - PowerShell
- Crie a sua primeira função durável - Java
Estrutura de desenvolvimento local
Tem duas opções para o desenvolvimento local. Use o Azurite para testes locais rápidos sem credenciais do Azure. Se precisar de testar ligações baseadas em identidade contra uma conta real do Armazenamento do Azure, use antes as suas credenciais de programador.
Opção 1: Usar o emulador Armazenamento do Azure
Ao desenvolver localmente, recomenda-se usar o Azurite, que é o emulador local do Armazenamento do Azure. Configure seu aplicativo para o emulador especificando "AzureWebJobsStorage": "UseDevelopmentStorage=true" no local.settings.json.
Opção 2: Ligações baseadas na identidade para o desenvolvimento local
Estritamente falando, uma identidade gerida só está disponível para aplicações quando executadas no Azure. No entanto, ainda pode configurar uma aplicação a correr localmente para usar uma ligação baseada em identidade, usando as suas credenciais de programador para autenticar com recursos do Azure. Depois, quando implementada na Azure, a aplicação utilizará a sua configuração de identidade gerida.
Ao usar credenciais de programador, a ligação tenta obter um token das seguintes localizações, por esta ordem:
- Um cache local compartilhado entre aplicativos da Microsoft
- O contexto atual do utilizador no Visual Studio
- O contexto atual do utilizador no Visual Studio Code
- O contexto atual do utilizador na CLI do Azure
Se nenhuma destas opções for bem-sucedida, recebe um erro a indicar que a aplicação não consegue recuperar um token de autenticação. Verifica se estás ligado a uma das ferramentas listadas com uma conta que tenha acesso à tua conta Armazenamento do Azure.
Configurar o tempo de execução para usar a identidade do desenvolvedor local
Especifique o nome da sua conta Armazenamento do Azure no local.settings.json, por exemplo:
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage__accountName": "<<your Azure Storage account name>>", "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated" } }Navegue até ao recurso da sua conta Armazenamento do Azure no portal Azure.
Selecione o separador Controlo de Acesso (IAM) e depois selecione Adicionar atribuição de funções.
Atribui cada um dos seguintes papéis a ti próprio. Para cada função, selecione "+ Selecione membros" e procure o email que usa para iniciar sessão no Visual Studio, Visual Studio Code ou no CLI do Azure.
- Contribuidor de Dados da Fila de Armazenamento
- Contribuidor de Dados de Storage Blob
- Contribuidor de dados de tabelas de armazenamento
Observação
Estas são as mesmas três funções necessárias para a sua identidade gerida ao implementar no Azure. Veja Atribuir papéis de acesso à identidade gerida.
Ligações baseadas em identidade para aplicação implementada no Azure
Ativar um recurso de identidade gerido
Para começar, habilite uma identidade gerenciada para seu aplicativo. Seu aplicativo de função deve ter uma identidade gerenciada atribuída ao sistema ou uma identidade gerenciada atribuída pelo usuário. Para habilitar uma identidade gerenciada para seu aplicativo de função e saber mais sobre as diferenças entre os dois tipos de identidades, consulte a visão geral da identidade gerenciada.
Atribuir funções de acesso à identidade gerenciada
Navegue para o recurso Armazenamento do Azure da sua aplicação no portal Azure e atribua três funções de controlo de acesso baseado em papéis ao seu recurso de identidade gerida.
- Contribuidor de Dados da Fila de Armazenamento
- Contribuidor de Dados de Storage Blob
- Contribuidor de dados de tabelas de armazenamento
Para encontrar o seu recurso de identidade, selecione Atribuir acesso à Identidade Gerida e, em seguida, + Selecionar membros.
Adicione a configuração de identidade gerida à sua aplicação
Antes de poder usar a identidade gerenciada do aplicativo, faça algumas alterações nas configurações do aplicativo:
No portal Azure, no menu de recursos da tua aplicação de funções, em Definições, seleciona Variáveis de Ambiente.
Na lista de configurações, localize AzureWebJobsStorage e selecione o ícone Excluir .
Adicione uma definição para ligar a sua conta de armazenamento Azure à aplicação.
Use um dos seguintes métodos , dependendo da nuvem em que seu aplicativo é executado:
Azure cloud: Se a sua aplicação correr em global Azure, adicione a definição
AzureWebJobsStorage__accountNameque identifica um nome de conta de armazenamento Azure. Valor de exemplo:mystorageaccount123Nuvem não-Azure: Se a sua aplicação correr numa nuvem fora do Azure, deve adicionar as seguintes três configurações para especificar URIs de serviço específicos (ou endpoints) da conta de armazenamento em vez de um nome de conta.
Nome da configuração:
AzureWebJobsStorage__blobServiceUriValor de exemplo:
https://mystorageaccount123.blob.core.windows.net/Nome da configuração:
AzureWebJobsStorage__queueServiceUriValor de exemplo:
https://mystorageaccount123.queue.core.windows.net/Nome da configuração:
AzureWebJobsStorage__tableServiceUriValor de exemplo:
https://mystorageaccount123.table.core.windows.net/
Pode obter os valores dessas variáveis URI na informação da conta de armazenamento, na guia Pontos de extremidade.
Observação
Se estiveres a usar Azure Government ou qualquer outra cloud separada da Azure global, deves usar a opção que fornece URIs de serviço específicos em vez de apenas o nome da conta de armazenamento. Para mais informações sobre como usar Armazenamento do Azure com Azure Government, consulte o Develop usando a API de Armazenamento em Azure Government.
Conclua sua configuração de identidade gerenciada (lembre-se de clicar em "Aplicar" depois de fazer as alterações de configuração):
Se você usar uma identidade atribuída ao sistema, não faça outras alterações.
Se você usar uma identidade atribuída pelo usuário, adicione as seguintes configurações na configuração do aplicativo:
AzureWebJobsStorage__credential, insira managedidentity
AzureWebJobsStorage__clientId, obtenha esse valor GUID do seu recurso de identidade gerenciado
Observação
Durable Functions não suporta
managedIdentityResourceIdquando se usa uma identidade atribuída pelo utilizador. UtilizeclientIdem substituição.
Verificar a configuração
Para confirmar que a sua configuração de identidade gerida funciona:
- No portal do Azure, navegue até à sua aplicação de funções e ative a orquestração das Durable Functions (por exemplo, usando uma função trigger HTTP).
- Verifique se a orquestração foi concluída com sucesso consultando o endpoint de estado ou a aba Monitor.
- Se detetar erros de autenticação, verifique que:
- As três funções de Contribuidor de Dados de Armazenamento estão atribuídas à identidade correta.
- A definição
AzureWebJobsStoragecadeia de ligação foi removida. - As
AzureWebJobsStorage__accountNamedefinições (ou URI do serviço) estão corretas.