Conectar-se ao Armazenamento de Blobs do Azure a partir de fluxos de trabalho nos Aplicativos Lógicos do Azure

Aplica-se a: Aplicativos Lógicos do Azure (Consumo + Padrão)

Este guia de instruções mostra como acessar sua conta e contêiner do Armazenamento de Blobs do Azure a partir de um fluxo de trabalho nos Aplicativos Lógicos do Azure usando o conector de Armazenamento de Blob do Azure. Esse conector fornece gatilhos e ações que seu fluxo de trabalho pode usar para operações de blob. Em seguida, você pode criar fluxos de trabalho automatizados que são executados quando acionados por eventos em seu contêiner de armazenamento ou em outros sistemas e executar ações para trabalhar com dados em seu contêiner de armazenamento. Por exemplo, você pode acessar e gerenciar arquivos armazenados como blobs em sua conta de armazenamento do Azure.

Você pode se conectar ao Armazenamento de Blobs do Azure a partir de um fluxo de trabalho nos tipos de recursos Aplicativo Lógico (Consumo) e Aplicativo Lógico (Padrão ). Você pode usar o conector com fluxos de trabalho de aplicativos lógicos em Aplicativos Lógicos do Azure multilocatário, Aplicativos Lógicos do Azure de locatário único e no ISE (ambiente de serviço de integração). Com o Aplicativo Lógico (Padrão), você pode usar as operações de conector interno do Blob do Azure ou as operações do conector gerenciado do Armazenamento de BlobdoAzure.

Referência técnica do conector

O conector de Armazenamento de Blob do Azure tem versões diferentes, com base no tipo de aplicativo lógico e no ambiente de host.

Aplicação lógica Environment Versão do conector
Consumo Aplicativos Lógicos do Azure Multilocatário Conector gerenciado (classe Standard). Para obter mais informações, consulte a seguinte documentação:

- Referência do conector gerenciado do Armazenamento de Blobs do Azure
- Conectores gerenciados em Aplicativos Lógicos do Azure
Consumo Ambiente de serviço de integração (ISE) Conector gerenciado (classe Standard) e versão ISE, que tem limites de mensagem diferentes da classe Standard. Para obter mais informações, consulte a seguinte documentação:

- Referência do conector gerenciado do Armazenamento de Blobs do Azure
- Limites de mensagens ISE
- Conectores gerenciados em Aplicativos Lógicos do Azure
Standard Aplicativos Lógicos do Azure e Ambiente do Serviço de Aplicativo v3 de locatário único (somente planos do Windows) Conector gerenciado (hospedado no Azure) e conector interno, que é baseado em provedor de serviços. A versão integrada difere das seguintes maneiras:

- A versão interna se conecta diretamente à sua conta de Armazenamento do Azure exigindo apenas uma cadeia de conexão.

- A versão interna pode acessar diretamente as redes virtuais do Azure.

Para obter mais informações, consulte a seguinte documentação:

- Referência do conector gerenciado do Armazenamento de Blobs do Azure
- Referência do conector interno do Blob do Azure
- Conectores internos nos Aplicativos Lógicos do Azure

Limitações

  • Para fluxos de trabalho de aplicativos lógicos executados em um ambiente de serviço de integração (ISE), a versão rotulada pelo ISE desse conector usa os limites de mensagem ISE.

  • As ações do conector gerenciado do Armazenamento de Blobs do Azure podem ler ou gravar arquivos com 50 MB ou menos. Para lidar com arquivos maiores que 50 MB, mas até 1024 MB, as ações do Armazenamento de Blobs do Azure dão suporte ao agrupamento de mensagens. A ação Armazenamento de Blob chamada Obter conteúdo de blob usa implicitamente o fragmentamento.

  • Embora os gatilhos gerenciados e internos do Armazenamento de Blob do Azure não ofereçam suporte a fragmentação, os gatilhos internos podem lidar com arquivos de 50 MB ou mais. No entanto, quando um gatilho gerenciado solicita conteúdo de arquivo, o gatilho seleciona apenas arquivos com 50 MB ou menos. Para obter ficheiros com mais de 50 MB, siga este padrão:

    1. Use um gatilho de Blob que retorna propriedades de arquivo, como Quando um blob é adicionado ou modificado (somente propriedades).

    2. Siga o gatilho com a ação do conector gerenciado do Armazenamento de Blob do Azure chamada Obter conteúdo de blob, que lê o arquivo completo e usa implicitamente o fragmento.

  • Limites de gatilho do Armazenamento de Blobs do Azure

    • O gatilho do conector gerenciado é limitado a 30.000 blobs na pasta virtual de sondagem.
    • O gatilho de conector interno é limitado a 10.000 blobs em todo o contêiner de sondagem.

    Se o limite for excedido, um novo blob pode não ser capaz de acionar o fluxo de trabalho, portanto, o gatilho é ignorado.

Pré-requisitos

Adicionar um gatilho de Blob

Um fluxo de trabalho de aplicativo lógico de consumo pode usar apenas o conector gerenciado do Armazenamento de Blob do Azure. No entanto, um fluxo de trabalho de aplicativo lógico padrão pode usar o conector gerenciado do Armazenamento de Blobs do Azure e o conector interno do blob do Azure. Embora ambas as versões do conector forneçam apenas um gatilho de Blob, o nome do gatilho difere da seguinte forma, dependendo se você está trabalhando com um fluxo de trabalho Consumo ou Padrão:

Aplicação lógica Versão do conector Nome do gatilho Description
Consumo Somente conector gerenciado Quando um blob é adicionado ou modificado (somente propriedades) O gatilho é acionado quando as propriedades de um blob são adicionadas ou atualizadas na pasta raiz do contêiner de armazenamento. Quando você configura o gatilho gerenciado, a versão gerenciada ignora os blobs existentes no contêiner de armazenamento.
Standard - Conector embutido

- Conector gerenciado
- Built-in: Quando um blob é adicionado ou atualizado

- Gerenciado: Quando um blob é adicionado ou modificado (somente propriedades)
- Built-in: O gatilho é acionado quando um blob é adicionado ou atualizado em seu contêiner de armazenamento e dispara para qualquer pasta aninhada em seu contêiner de armazenamento, não apenas para a pasta raiz. Quando você configura o gatilho interno, a versão interna processa todos os blobs existentes no contêiner de armazenamento.

- Gerenciado: O gatilho é acionado quando as propriedades de um blob são adicionadas ou atualizadas na pasta raiz do seu contêiner de armazenamento. Quando você configura o gatilho gerenciado, a versão gerenciada ignora os blobs existentes no contêiner de armazenamento.

As etapas a seguir usam o portal do Azure, mas com a extensão apropriada de Aplicativos Lógicos do Azure, você também pode usar as seguintes ferramentas para criar fluxos de trabalho de aplicativos lógicos:

  1. No portal do Azure, abra seu aplicativo lógico de consumo e fluxo de trabalho em branco no designer.

  2. No designer, na caixa de pesquisa, selecione Standard e siga estas etapas gerais para adicionar o gatilho gerenciado do Armazenamento de Blobs do Azure desejado.

    Este exemplo continua com o gatilho chamado Quando um blob é adicionado ou modificado (somente propriedades).

  3. Se solicitado, forneça as seguintes informações para sua conexão com sua conta de armazenamento. Quando tiver terminado, selecione Criar.

    Property Obrigatório Description
    Nome da ligação Sim Um nome para a sua ligação
    Tipo de Autenticação Sim O tipo de autenticação para sua conta de armazenamento. Para obter mais informações, consulte Tipos de autenticação para gatilhos e ações que oferecem suporte à autenticação - Acesso e dados seguros.

    Por exemplo, essa conexão usa autenticação de chave de acesso e fornece o valor da chave de acesso para a conta de armazenamento, juntamente com os seguintes valores de propriedade:

    Property Necessário Valor Description
    Nome da Conta de Armazenamento do Azure Sim, mas apenas para autenticação de chave de acesso <nome da conta de armazenamento> O nome da conta de armazenamento do Azure onde seu contêiner de blob existe.

    Observação: para localizar o nome da conta de armazenamento, abra o recurso da conta de armazenamento no portal do Azure. No menu de recursos, em Segurança + rede, selecione Chaves de acesso. Em Nome da conta de armazenamento, copie e salve o nome.
    Chave de Acesso da Conta de Armazenamento do Azure Sim
    mas apenas para autenticação de chave de acesso
    <chave de acesso à conta de armazenamento> A chave de acesso para sua conta de armazenamento do Azure.

    Observação: para localizar a chave de acesso, abra o recurso da conta de armazenamento no portal do Azure. No menu de recursos, em Segurança + rede, selecione Tecla de acesso1>>Mostrar. Copie e salve o valor da chave primária.

    Screenshot showing Consumption workflow, Azure Blob Storage trigger, and example connection information.

  4. Depois que a caixa de informações do gatilho aparecer, forneça as informações necessárias.

    Para o valor da propriedade Container, selecione o ícone de pasta para procurar seu contêiner de blob. Ou insira o caminho manualmente usando a sintaxe /<container-name>, por exemplo:

    Screenshot showing Consumption workflow with Azure Blob Storage trigger, and example trigger information.

  5. Para adicionar outras propriedades disponíveis para esse gatilho, abra a lista Adicionar novo parâmetro e selecione as propriedades desejadas.

    Para obter mais informações, consulte Propriedades de gatilho do conector gerenciado do Armazenamento de Blob do Azure.

  6. Adicione quaisquer outras ações exigidas pelo seu fluxo de trabalho.

  7. Quando tiver terminado, guarde o fluxo de trabalho. Na barra de ferramentas do estruturador, selecione Guardar.

Adicionar uma ação de Blob

Um fluxo de trabalho de aplicativo lógico de consumo pode usar apenas o conector gerenciado do Armazenamento de Blob do Azure. No entanto, um fluxo de trabalho de aplicativo lógico padrão pode usar o conector gerenciado do Armazenamento de Blobs do Azure e o conector interno do blob do Azure. Cada versão tem várias ações, mas com nomes diferentes. Por exemplo, as versões de conector gerenciado e interno têm suas próprias ações para obter metadados de arquivo e obter conteúdo de arquivo.

  • Ações de conector gerenciado: essas ações são executadas em um fluxo de trabalho de consumo ou padrão.

  • Ações internas do conector: essas ações são executadas somente em um fluxo de trabalho padrão.

As etapas a seguir usam o portal do Azure, mas com a extensão apropriada de Aplicativos Lógicos do Azure, você também pode usar as seguintes ferramentas para criar e editar fluxos de trabalho de aplicativos lógicos:

  1. No portal do Azure, abra seu aplicativo lógico de consumo e fluxo de trabalho no designer.

  2. Se o fluxo de trabalho estiver em branco, adicione o gatilho exigido pelo cenário.

    Este exemplo usa o gatilho Recurrence.

  3. No designer, siga estas etapas gerais para localizar e adicionar a ação gerenciada do Armazenamento de Blob do Azure desejada.

    Este exemplo continua com a ação chamada Obter conteúdo de blob.

  4. Se solicitado, forneça as seguintes informações para sua conexão. Quando tiver terminado, selecione Criar.

    Property Obrigatório Description
    Nome da ligação Sim Um nome para a sua ligação
    Tipo de Autenticação Sim O tipo de autenticação para sua conta de armazenamento. Para obter mais informações, consulte Tipos de autenticação para gatilhos e ações que oferecem suporte à autenticação - Acesso e dados seguros.

    Por exemplo, essa conexão usa autenticação de chave de acesso e fornece o valor da chave de acesso para a conta de armazenamento, juntamente com os seguintes valores de propriedade:

    Property Necessário Valor Description
    Nome da Conta de Armazenamento do Azure Sim
    mas apenas para autenticação de chave de acesso
    <nome da conta de armazenamento> O nome da conta de armazenamento do Azure onde seu contêiner de blob existe.

    Observação: para localizar o nome da conta de armazenamento, abra o recurso da conta de armazenamento no portal do Azure. No menu de recursos, em Segurança + rede, selecione Chaves de acesso. Em Nome da conta de armazenamento, copie e salve o nome.
    Chave de Acesso da Conta de Armazenamento do Azure Sim
    mas apenas para autenticação de chave de acesso
    <chave de acesso à conta de armazenamento> A chave de acesso para sua conta de armazenamento do Azure.

    Observação: para localizar a chave de acesso, abra o recurso da conta de armazenamento no portal do Azure. No menu de recursos, em Segurança + rede, selecione Tecla de acesso1>>Mostrar. Copie e salve o valor da chave primária.

    Screenshot showing Consumption workflow, Azure Blob action, and example connection information.

  5. Na caixa de informações da ação, forneça as informações necessárias.

    Por exemplo, na ação Obter conteúdo de blob, forneça o nome da sua conta de armazenamento. Para o valor da propriedade Blob, selecione o ícone de pasta para procurar seu contêiner ou pasta de armazenamento. Ou insira o caminho manualmente.

    Tarefa Sintaxe do caminho do blob
    Obtenha o conteúdo de um blob específico na pasta raiz. /container-name/<<blob-name>>
    Obtenha o conteúdo de um blob específico em uma subpasta. /container-name/subfolder>/<<<blob-name>>

    O exemplo a seguir mostra a configuração da ação que obtém o conteúdo de um blob na pasta raiz:

    Screenshot showing Consumption workflow with Blob action setup for root folder.

    O exemplo a seguir mostra a configuração da ação que obtém o conteúdo de um blob na subpasta:

    Screenshot showing Consumption workflow with Blob action setup for subfolder.

  6. Adicione quaisquer outras ações exigidas pelo seu fluxo de trabalho.

  7. Quando tiver terminado, guarde o fluxo de trabalho. Na barra de ferramentas do estruturador, selecione Guardar.

Acesse contas de armazenamento atrás de firewalls

Pode adicionar segurança de rede a uma conta de armazenamento do Azure ao restringir o acesso com uma firewall e regras de firewall. No entanto, esta configuração cria um desafio para o Azure e outros serviços Microsoft que precisam de acesso à conta de armazenamento. A comunicação local no centro de dados abstrai os endereços IP internos, portanto, apenas permitir o tráfego através de endereços IP pode não ser suficiente para permitir com êxito a comunicação através do firewall. Com base em qual conector de Armazenamento de Blob do Azure você usa, as seguintes opções estão disponíveis:

Aceder a contas de armazenamento noutras regiões

Se você não usar a autenticação de identidade gerenciada, os fluxos de trabalho do aplicativo lógico não poderão acessar diretamente as contas de armazenamento por trás de firewalls quando o recurso do aplicativo lógico e a conta de armazenamento existirem na mesma região. Como solução alternativa, coloque o recurso do aplicativo lógico em uma região diferente da sua conta de armazenamento. Em seguida, dê acesso aos endereços IP de saída para os conectores gerenciados em sua região.

Nota

Esta solução não se aplica ao conector do Armazenamento de Tabela do Azure e ao conector do Armazenamento de Filas do Azure. Em vez disso, para acessar seu Armazenamento de Tabela ou Armazenamento de Filas, use o gatilho e a ação HTTP internos.

Para adicionar seus endereços IP de saída ao firewall da conta de armazenamento, siga estas etapas:

  1. Observe os endereços IP de saída do conector gerenciado para a região do recurso do aplicativo lógico.

  2. No portal do Azure, localize e abra o recurso da sua conta de armazenamento.

  3. No menu de navegação da conta de armazenamento, em Segurança + rede, selecione Rede.

    1. Em Permitir acesso de, selecione Redes selecionadas, que mostra as configurações relevantes.

    2. Em Firewall, adicione os endereços IP ou intervalos que precisam de acesso. Se precisar de aceder à conta de armazenamento a partir do computador, selecione Adicionar o endereço IP do cliente.

      Screenshot of blob storage account networking page in Azure portal, showing firewall settings to add IP addresses and ranges to the allowlist.

    3. Quando tiver terminado, selecione Guardar.

Aceda a contas de armazenamento através de uma rede virtual fidedigna

  • Seu aplicativo lógico e sua conta de armazenamento existem na mesma região.

    Você pode colocar sua conta de armazenamento em uma rede virtual do Azure criando um ponto de extremidade privado e, em seguida, adicionar essa rede virtual à lista de redes virtuais confiáveis. Para dar ao seu aplicativo lógico acesso à conta de armazenamento por meio de uma rede virtual confiável, você precisa implantar esse aplicativo lógico em um ambiente de serviço de integração (ISE), que pode se conectar a recursos em uma rede virtual. Em seguida, você pode adicionar as sub-redes desse ISE à lista confiável. Os conectores de armazenamento baseados em ISE, como o conector de Armazenamento de Blob do Azure com versão ISE, podem acessar diretamente o contêiner de armazenamento. Essa configuração é a mesma experiência que usar os pontos de extremidade de serviço de um ISE.

  • Seu aplicativo lógico e sua conta de armazenamento existem em regiões diferentes.

    Não é necessário criar um ponto de extremidade privado. Você pode apenas permitir o tráfego através dos IPs de saída ISE na conta de armazenamento.

Acessar contas de armazenamento por meio da integração de rede virtual

  • Seu aplicativo lógico e sua conta de armazenamento existem na mesma região.

    Você pode colocar a conta de armazenamento em uma rede virtual do Azure criando um ponto de extremidade privado e, em seguida, adicionar essa rede virtual à lista de redes virtuais confiáveis. Para dar ao seu aplicativo lógico acesso à conta de armazenamento, você precisa configurar o tráfego de saída usando a integração de rede virtual para permitir a conexão com recursos em uma rede virtual. Em seguida, você pode adicionar a rede virtual à lista de redes virtuais confiáveis da conta de armazenamento.

  • Seu aplicativo lógico e sua conta de armazenamento existem em regiões diferentes.

    Não é necessário criar um ponto de extremidade privado. Você pode apenas permitir o tráfego através dos IPs de saída ISE na conta de armazenamento.

Acesse o armazenamento de Blob na mesma região com identidades gerenciadas pelo sistema

Para se conectar ao Armazenamento de Blobs do Azure em qualquer região, você pode usar identidades gerenciadas para autenticação. Você pode criar uma exceção que dê aos serviços confiáveis da Microsoft, como uma identidade gerenciada, acesso à sua conta de armazenamento por meio de um firewall.

Nota

Esta solução não se aplica a aplicativos lógicos padrão. Mesmo se você usar uma identidade gerenciada atribuída ao sistema com um aplicativo lógico Padrão, o conector gerenciado do Armazenamento de Blobs do Azure não poderá se conectar a uma conta de armazenamento na mesma região.

Para usar identidades gerenciadas em seu aplicativo lógico para acessar o Armazenamento de Blob, siga estas etapas:

  1. Configure o acesso à sua conta de armazenamento.

  2. Crie uma atribuição de função para seu aplicativo lógico.

  3. Habilite o suporte para a identidade gerenciada em seu aplicativo lógico.

Nota

Esta solução tem as seguintes limitações:

Para autenticar a conexão da sua conta de armazenamento, você precisa configurar uma identidade gerenciada atribuída ao sistema. Uma identidade gerenciada atribuída pelo usuário não funcionará.

Configurar o acesso à conta de armazenamento

Para configurar a exceção e o suporte de identidade gerenciada, primeiro configure o acesso apropriado à sua conta de armazenamento:

  1. No portal do Azure, localize e abra o recurso da sua conta de armazenamento.

  2. No menu de navegação da conta de armazenamento, em Segurança + rede, selecione Rede.

    1. Em Permitir acesso de, selecione Redes selecionadas, que mostra as configurações relevantes.

    2. Se precisar de aceder à conta de armazenamento a partir do computador, em Firewall, selecione Adicionar o endereço IP do cliente.

    3. Em Exceções, selecione Permitir que serviços confiáveis da Microsoft acessem esta conta de armazenamento.

      Screenshot showing Azure portal and Blob Storage account networking pane with allow settings.

    4. Quando tiver terminado, selecione Guardar.

Nota

Se você receber um erro 403 Forbidden ao tentar se conectar à conta de armazenamento do seu fluxo de trabalho, existem várias causas possíveis. Tente a seguinte resolução antes de passar para etapas adicionais. Primeiro, desative a configuração Permitir que serviços confiáveis da Microsoft acessem essa conta de armazenamento e salve suas alterações. Em seguida, reative a configuração e salve as alterações novamente.

Criar atribuição de função para aplicativo lógico

Em seguida, habilite o suporte a identidades gerenciadas em seu recurso de aplicativo lógico.

As etapas a seguir são as mesmas para aplicativos lógicos de consumo em ambientes multilocatários e aplicativos lógicos padrão em ambientes de locatário único.

  1. No portal do Azure, abra seu recurso de aplicativo lógico.

  2. No menu de navegação de recursos do aplicativo lógico, em Configurações, selecione Identidade.

  3. No painel Sistema atribuído, defina Status como Ativado, se ainda não estiver habilitado, selecione Salvar e confirme as alterações. Em Permissões, selecione Atribuições de funções do Azure.

    Screenshot showing the Azure portal and logic app resource menu with the 'Identity' settings pane and 'Azure role assignment permissions' button.

  4. No painel Atribuições de função do Azure, selecione Adicionar atribuição de função.

    Screenshot showing the logic app role assignments pane with the selected subscription and button to add a new role assignment.

  5. No painel Adicionar atribuições de função, configure a nova atribuição de função com os seguintes valores:

    Property valor Description
    Scope <âmbito dos recursos> O conjunto de recursos onde você deseja aplicar a atribuição de função. Para este exemplo, selecione Armazenamento.
    Subscrição <Subscrição do Azure> A assinatura do Azure para sua conta de armazenamento.
    Recurso <nome da conta de armazenamento> O nome da conta de armazenamento que você deseja acessar a partir do fluxo de trabalho do aplicativo lógico.
    Função <função-a-atribuir> A função que o cenário requer para que o fluxo de trabalho funcione com o recurso. Este exemplo requer o Storage Blob Data Contributor, que permite ler, gravar e excluir acesso a contêineres de blob e data. Para obter detalhes sobre permissões, mova o mouse sobre o ícone de informações ao lado de uma função no menu suspenso.

    Screenshot of role assignment configuration pane, showing settings for scope, subscription, resource, and role.

  6. Quando terminar, selecione Salvar para concluir a criação da atribuição de função.

Habilite o suporte a identidades gerenciadas no aplicativo lógico

Em seguida, conclua as seguintes etapas:

  1. Se você tiver um fluxo de trabalho em branco, adicione um gatilho de conector do Armazenamento de Blob do Azure. Caso contrário, adicione uma ação do conector do Armazenamento de Blobs do Azure. Certifique-se de criar uma nova conexão para o gatilho ou ação, em vez de usar uma conexão existente.

  2. Certifique-se de definir o tipo de autenticação para usar a identidade gerenciada.

  3. Depois de configurar o gatilho ou ação, você pode salvar o fluxo de trabalho e testar o gatilho ou ação.

Solucionar problemas de acesso a contas de armazenamento

  • "Este pedido não está autorizado a realizar esta operação."

    O erro a seguir é um problema comumente relatado que acontece quando seu aplicativo lógico e sua conta de armazenamento existem na mesma região. No entanto, estão disponíveis opções para resolver esta limitação, conforme descrito na secção Aceder a contas de armazenamento protegidas por firewalls.

    {
       "status": 403,
       "message": "This request is not authorized to perform this operation.\\r\\nclientRequestId: a3da2269-7120-44b4-9fe5-ede7a9b0fbb8",
       "error": {
          "message": "This request is not authorized to perform this operation."
       },
       "source": "azureblob-ase.azconn-ase.p.azurewebsites.net"
    }
    

Erros do Application Insights

  • Erros 404 e 409

    Se seu fluxo de trabalho padrão usa uma ação interna de Blob do Azure que adiciona um blob ao contêiner de armazenamento, você pode obter erros 404 e 409 no Application Insights para solicitações com falha. Esses erros são esperados porque o conector verifica se o arquivo de blob existe antes de adicionar o blob. Os erros resultam quando o arquivo não existe. Apesar desses erros, a ação interna adiciona com êxito o blob.

Próximos passos