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.
Este início rápido mostra como configurar um aplicativo Durable Functions usando o provedor padrão Armazenamento do Azure para usar conexões baseadas em identidade, para que seu aplicativo possa acessar sua conta de armazenamento sem gerenciar segredos. Uma identidade gerenciada do Microsoft Entra ID é administrada pela plataforma Azure — você não precisa provisionar nem alternar nenhum segredo.
Neste artigo:
- Configuração de desenvolvimento local – use o Azurite ou suas credenciais de desenvolvedor para testes locais
- Conexões baseadas em identidade para o aplicativo implantado no Azure — Habilite uma identidade gerenciada e configure seu aplicativo de função
Observação
A identidade gerenciada tem suporte nas versões Durable Functions extension2.7.0 e maiores.
Se você ainda não tiver uma conta do Azure, crie uma conta gratuita antes de começar.
Pré-requisitos
Para concluir este guia de início rápido, você precisa:
- Um projeto existente de Durable Functions criado no portal do Azure ou um projeto de Durable Functions local implantado no Azure.
- Familiaridade ao executar um aplicativo Durable Functions no Azure.
Se você não tiver um projeto de Durable Functions existente implantado no Azure, recomendamos que você comece com um dos seguintes guias de início rápido:
- Criar sua primeira função durável – C#
- Criar sua primeira função durável – JavaScript
- Criar sua primeira função durável – Python
- Criar sua primeira função durável – PowerShell
- Criar sua primeira função durável – Java
Configuração de desenvolvimento local
Você tem duas opções para desenvolvimento local. Use o Azurite para testes locais rápidos sem credenciais de Azure. Se você precisar testar conexões baseadas em identidade em uma conta de Armazenamento do Azure real, use suas credenciais de desenvolvedor.
Opção 1: Usar o emulador de Armazenamento do Azure
Ao desenvolver localmente, é recomendável que você use o Azurite, que é o emulador local do Armazenamento do Azure. Configure seu aplicativo para o emulador especificando "AzureWebJobsStorage": "UseDevelopmentStorage=true" em local.settings.json.
Opção 2: conexões baseadas em identidade para desenvolvimento local
Estritamente falando, uma identidade gerenciada só está disponível para aplicativos ao executar em Azure. No entanto, você ainda pode configurar um aplicativo que esteja sendo executado localmente para usar uma conexão baseada em identidade, utilizando suas credenciais de desenvolvedor para autenticar-se nos recursos do Azure. Em seguida, quando implantado em Azure, o aplicativo utilizará sua configuração de identidade gerenciada.
Ao usar credenciais de desenvolvedor, a conexão tenta obter um token dos seguintes locais, nesta ordem:
- Um cache local compartilhado entre aplicativos da Microsoft
- O contexto atual do usuário no Visual Studio
- O contexto atual do usuário no Visual Studio Code
- O contexto atual do usuário no CLI do Azure
Se nenhuma dessas opções for bem-sucedida, você receberá um erro indicando que o aplicativo não pode recuperar um token de autenticação. Verifique se você está conectado a uma das ferramentas listadas com uma conta que tem acesso à sua conta Armazenamento do Azure.
Configurar o runtime para usar a identidade do desenvolvedor local
Especifique o nome da sua conta de Armazenamento do Azure em local.settings.json, por exemplo:
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage__accountName": "<<your Azure Storage account name>>", "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated" } }Navegue até o recurso de conta Armazenamento do Azure no portal do Azure.
Selecione a guia Controle de Acesso (IAM) e, em seguida, selecione Adicionar atribuição de função.
Atribua cada uma das funções a seguir a si mesmo. Para cada função, selecione "+ Selecionar membros" e pesquise o email que você usa para entrar no Visual Studio, Visual Studio Code ou no CLI do Azure.
- Colaborador de Dados da Fila de Armazenamento
- Colaborador de dados de blob do Storage
- Colaborador de dados da Tabela de Armazenamento
Observação
Essas são as mesmas três funções necessárias para sua identidade gerenciada ao implantar em Azure. Consulte Atribuir funções de acesso à identidade gerenciada.
Conexões baseadas em identidade para o aplicativo implantado no Azure
Habilitar um recurso de identidade gerenciada
Para começar, habilite uma identidade gerenciada para o seu aplicativo. Seu aplicativo de funções precisa ter uma identidade gerenciada atribuída pelo sistema ou uma identidade gerenciada atribuída pelo usuário. Para habilitar uma identidade gerenciada para o seu aplicativo de funções e saber mais sobre as diferenças entre os dois tipos de identidades, confira a visão geral da identidade gerenciada.
Atribuir funções de acesso à identidade gerenciada
Navegue até o recurso de Armazenamento do Azure do seu aplicativo no portal do Azure e atribua três funções de RBAC (controle de acesso baseado em função) ao recurso de identidade gerenciada:
- Colaborador de Dados da Fila de Armazenamento
- Colaborador de dados de blob do Storage
- Colaborador de dados da Tabela de Armazenamento
Para localizar o recurso de identidade, selecione Atribuir acesso à identidade gerenciada e, em seguida, + Selecionar membros
Adicionar a configuração de identidade gerenciada ao seu aplicativo
Para usar a identidade gerenciada do seu aplicativo, faça algumas alterações nas configurações do aplicativo:
No portal do Azure, no menu de recursos do aplicativo de funções em Settings, selecione Environment variables.
Na lista de configurações, selecione AzureWebJobsStorage e escolha o ícone Excluir.
Adicione uma configuração para vincular sua conta de armazenamento Azure ao aplicativo.
Use um dos seguintes métodos, dependendo da nuvem em que seu aplicativo é executado:
Azure cloud: se o aplicativo for executado em global Azure, adicione a configuração
AzureWebJobsStorage__accountNameque identifica um nome de conta de armazenamento Azure. Valor de exemplo:mystorageaccount123Nuvem não-Azure: Se o aplicativo for executado em uma nuvem fora do Azure, você deve adicionar as três configurações a seguir para fornecer URIs de serviço específicas (ou pontos de extremidade) 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/
Você pode obter os valores dessas variáveis de URI nas informações da conta de armazenamento, na guia Pontos de extremidade.
Observação
Se você estiver usando Azure Governamental ou qualquer outra nuvem separada da Azure global, deverá usar a opção que fornece URIs de serviço específicas em vez de apenas o nome da conta de armazenamento. Para obter mais informações sobre como usar Armazenamento do Azure com Azure Governamental, consulte o Develop usando a API de Armazenamento em Azure Governamental.
Conclua a configuração da identidade gerenciada (lembre-se de clicar em “Aplicar” depois de fazer as alterações de configuração):
Se você usar uma identidade atribuída pelo sistema, não faça nenhuma outra alteração.
Se você usar uma identidade atribuída pelo usuário, adicione as seguintes configurações à configuração do seu aplicativo:
AzureWebJobsStorage__credential, enter managedidentity
AzureWebJobsStorage__clientId, obtenha esse valor de GUID no recurso de identidade gerenciada
Observação
Durable Functions não dá suporte
managedIdentityResourceIdquando usamos a identidade atribuída pelo usuário. UseclientIdem seu lugar.
Verifique sua configuração
Para confirmar se a configuração de identidade gerenciada funciona:
- No portal do Azure, navegue até seu aplicativo de funções e inicie a orquestração de funções duráveis (por exemplo, usando uma função de gatilho HTTP).
- Verifique se a orquestração foi concluída com sucesso consultando o ponto de extremidade de status ou verificando a guia Monitorar.
- Se você vir erros de autenticação, verifique se:
- Todas as três funções de Colaborador de Dados de Armazenamento são atribuídas à identidade correta.
- A configuração da cadeia de caracteres de conexão
AzureWebJobsStoragefoi removida. - As
AzureWebJobsStorage__accountNameconfigurações (ou URI de serviço) estão corretas.
Próximas Etapas
- Visão geral da identidade gerenciada para o App Service e o Azure Functions
- provedor de Durable Functions Armazenamento do Azure
- Visão geral dos provedores de armazenamento Durable Functions