Conectar-se ao Armazenamento de Blobs do Azure por meio 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 de Armazenamento de Blobs do Azure de um fluxo de trabalho nos Aplicativos Lógicos do Azure usando o conector de Armazenamento de Blobs do Azure. Esse conector fornece gatilhos e ações que seu fluxo de trabalho pode usar para operações de blob. 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 por meio de um fluxo de trabalho nos tipos de recursos Aplicativo lógico (Consumo) e Aplicativo lógico (Standard). Você pode usar o conector com fluxos de trabalho de aplicativo lógico em Aplicativos Lógicos do Azure multilocatária, Aplicativos Lógicos do Azure locatário único e o ISE (ambiente de serviço de integração). Com o Aplicativo Lógico (Standard), você pode usar as operações de conector internas do Blob do Azure ou as operações do conector gerenciado do Armazenamento de Blobs do Azure.

Referência técnica do conector

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

Aplicativo lógico Ambiente Versão do conector
Consumo Aplicativos Lógicos do Azure Multilocatários Conector gerenciado (classe Padrão). Para saber mais, consulte a seguinte documentação:

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

- Referência do conector gerenciado de Armazenamento de Blobs do Azure
- Limites de mensagem ISE
- Conectores gerenciados em Aplicativos Lógicos do Azure
Standard Aplicativos Lógicos do Azure de locatário único e Ambiente do Serviço de Aplicativo v3 (somente planos Windows) Conector gerenciado (hospedado pelo Azure) e conector interno, que é baseado em provedor de serviços. A versão interna 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 saber mais, consulte a seguinte documentação:

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

Limitações

  • Para fluxos de trabalho aplicativo lógico em execução ISE (ambiente de serviço de integração), a versão rotulada do ISE deste conector usa os limites de mensagem do 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 com mais de 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 Blobs chamada Obter conteúdo de blob usa implicitamente fragmentação.

  • Embora os gatilhos internos e gerenciados do Armazenamento de Blobs do Azure não ofereçam suporte à fragmentação, os gatilhos internos podem manipular arquivos com 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 arquivos maiores que 50 MB, siga este padrão:

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

    2. Siga o gatilho com a ação de conexão gerenciada de Armazenamento de Blobs do Azure chamada Obter conteúdo do blob, que lê o arquivo completo e usa implicitamente o agrupamento.

  • 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 disparar o fluxo de trabalho, portanto, o gatilho é ignorado.

Pré-requisitos

  • Uma conta e uma assinatura do Azure. Se você não tiver uma assinatura do Azure, inscreva-se em uma conta gratuita do Azure.

  • Uma conta de armazenamento do Azure e um contêiner de blob

  • O fluxo de trabalho do aplicativo lógico de onde você deseja acessar sua conta de Armazenamento do Azure. Para iniciar seu fluxo de trabalho com um gatilho de Blob do Azure, você precisa de um fluxo de trabalho em branco. Para usar uma ação de Blob do Azure, inicie seu fluxo de trabalho com qualquer gatilho.

Adicionar um gatilho de blob

Um fluxo de trabalho de aplicativo lógico de Consumo pode usar apenas o conector gerenciado de Armazenamento de Blobs do Azure. No entanto, um fluxo de trabalho do aplicativo lógico Standard pode usar o conector gerenciado 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 maneira, com base no fato de você estar trabalhando com um fluxo de trabalho Consumo ou Padrão:

Aplicativo lógico Versão do conector Nome do gatilho Descrição
Consumo Apenas conector gerenciado Quando um blob é adicionado ou modificado (somente propriedades) O gatilho é acionado quando as propriedades de um blob são adicionadas ou atualizadas em sua 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
- Interno: quando um blob é adicionado ou atualizado

– Gerenciado: quando um blob é adicionado ou modificado (somente propriedades)
– Interno: o gatilho é acionado quando um blob é adicionado ou atualizado no contêiner de armazenamento e é acionado para quaisquer pastas aninhadas no contêiner de armazenamento, não apenas na pasta raiz. Quando você configura o gatilho interno, a versão interna processa todos os blobs existentes em seu contêiner de armazenamento.

– Gerenciado: o gatilho é acionado quando as propriedades de um blob são adicionadas ou atualizadas em sua 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.

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

  1. No portal do Azure, abra o fluxo de trabalho em branco do aplicativo lógico de Consumo no designer.

  2. No designer, na caixa de pesquisa, selecione Padrão 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 informações a seguir para a conexão com sua conta de armazenamento. Quando terminar, selecione Criar.

    Propriedade Obrigatório Descrição
    Nome da conexão Sim Um nome para a conexão
    Tipo de Autenticação Sim O tipo de autenticação para sua conta de armazenamento. Para saber mais, consulte Tipos de autenticação para gatilhos e ações que dão suporte à autenticação – Dados e acesso seguros.

    Por exemplo, essa conexão usa a 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:

    Propriedade Obrigatório Valor Descrição
    Nome da conta de armazenamento do Azure Sim, mas somente para a autenticação de chave de acesso <storage-account-name> O nome da conta de armazenamento do Azure onde exista o contêiner de blob.

    Observação: para encontrar 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 Microsoft Azure Sim
    mas somente para autenticação de chave de acesso
    <chave-de-acesso-da-conta-de-armazenamento> A chave de acesso da sua conta de armazenamento do Azure.

    Observação: para encontrar a chave de acesso, abra o recurso da conta de armazenamento no portal do Azure. No menu de recursos, em Segurança + rede, selecione Chaves de acesso>chave1>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 for exibida, forneça as informações necessárias.

    Para o valor da propriedade Contêiner, selecione o ícone de pasta para procurar o contêiner de blobs. Ou insira o caminho manualmente usando a sintaxe /<nome-do-contêiner>, 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 novos parâmetros e selecione as propriedades desejadas.

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

  6. Adicione outras ações necessárias para o seu fluxo de trabalho.

  7. Quando terminar, salve o fluxo de trabalho. Selecione Salvar na barra de ferramentas do designer.

Adicionar uma ação de Blob

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

  • Ações do conector gerenciado: essas ações são executadas em um fluxo de trabalho tipo Consumo ou Standard.

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

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

  1. No portal do Azure, abra o fluxo de trabalho do aplicativo lógico de Consumo no designer.

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

    Este exemplo usa o gatilho Recorrência.

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

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

  4. Se solicitado, forneça as informações a seguir para a conexão. Quando terminar, selecione Criar.

    Propriedade Obrigatório Descrição
    Nome da conexão Sim Um nome para a conexão
    Tipo de Autenticação Sim O tipo de autenticação para sua conta de armazenamento. Para saber mais, consulte Tipos de autenticação para gatilhos e ações que dão suporte à autenticação – Dados e acesso seguros.

    Por exemplo, essa conexão usa a 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:

    Propriedade Obrigatório Valor Descrição
    Nome da conta de armazenamento do Azure Sim
    mas somente para autenticação de chave de acesso
    <storage-account-name> O nome da conta de armazenamento do Azure onde exista o contêiner de blob.

    Observação: para encontrar 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 Microsoft Azure Sim
    mas somente para autenticação de chave de acesso
    <chave-de-acesso-da-conta-de-armazenamento> A chave de acesso da sua conta de armazenamento do Azure.

    Observação: para encontrar a chave de acesso, abra o recurso da conta de armazenamento no portal do Azure. No menu de recursos, em Segurança + rede, selecione Chaves de acesso>chave1>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 de ação, forneça as informações necessárias.

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

    Tarefa Sintaxe do caminho do blob
    Obter o conteúdo de um blob específico na pasta raiz. /<nome-do-contêiner>/<nome-do-blob>
    Obter o conteúdo de um blob específico em uma subpasta. /<nome-do-contêiner>/<subpasta>/<nome-do-blob>

    O exemplo a seguir mostra a configuração de 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 de 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 outras ações necessárias para o seu fluxo de trabalho.

  7. Quando terminar, salve o fluxo de trabalho. Selecione Salvar na barra de ferramentas do designer.

Acessar contas de armazenamento atrás de firewalls

Você pode adicionar segurança de rede a uma conta de armazenamento do Azure restringindo o acesso com um firewall e com regras de firewall. No entanto, essa configuração cria um desafio para o Azure e outros serviços da Microsoft que precisam acessar a conta de armazenamento. A comunicação local no data center abstrai os endereços IP internos; portanto, apenas permitir o tráfego por meio de endereços IP pode não ser suficiente para permitir a comunicação pelo firewall. Com base em qual conector de Armazenamento de Blobs do Azure você usa, as seguintes opções estão disponíveis:

Acessar contas de armazenamento em outras regiões

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

Observação

Essa solução não se aplica ao conector de Armazenamento de Tabelas do Azure e ao conector de Armazenamento de Filas do Azure. Para acessar o Armazenamento de Tabelas ou o 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 esses passos:

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

  2. No portal do Azure, encontre e abra o recurso da 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 você precisar acessar a conta de armazenamento do computador, em 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 terminar, selecione Salvar.

Acessar contas de armazenamento por meio de rede virtual confiável

  • O aplicativo lógico e a conta de armazenamento estão 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 acesso a aplicativo lógico à conta de armazenamento por meio de uma rede virtual confiável, você precisa implantar esse aplicativo lógico em um ISE (Ambiente de Serviço de Integração), que pode se conectar a recursos em uma rede virtual. Em seguida, você pode adicionar as sub-redes no ISE à lista de confiáveis. Os conectores de armazenamento baseado em ISE, como o conector de Armazenamento de Blobs do Azure com versão ISE, podem acessar diretamente o contêiner de armazenamento. Essa configuração é a mesma experiência usada para usar os pontos de extremidade de serviço de um ISE.

  • O aplicativo lógico e a conta de armazenamento estão em regiões diferentes.

    Você não precisa criar um ponto de extremidade privado. Basta permitir o tráfego por meio dos IPs de saída do ISE na conta de armazenamento.

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

  • O aplicativo lógico e a conta de armazenamento estão 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 aplicativo lógico acesso à conta de armazenamento, você precisa configurar o tráfego de saída usando a integração de rede virtual para habilitar a conexão com recursos em uma rede virtual. Você pode adicionar a rede virtual à lista de redes virtuais confiáveis da conta de armazenamento.

  • O aplicativo lógico e a conta de armazenamento estão em regiões diferentes.

    Você não precisa criar um ponto de extremidade privado. Basta permitir o tráfego por meio dos IPs de saída do ISE na conta de armazenamento.

Acessar o Armazenamento de Blobs 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 fornece aos serviços confiáveis da Microsoft, como uma identidade gerenciada, o acesso à sua conta de armazenamento através de um firewall.

Observação

Esta solução não se aplica a aplicativos lógicos padrão. Mesmo se você usar uma identidade gerenciada atribuída pelo 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 Blobs, siga esses passos:

  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.

Observação

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

Para autenticar a conexão da conta de armazenamento, você precisa configurar uma identidade gerenciada atribuída pelo 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 à identidade gerenciada, primeiro configure o acesso apropriado à sua conta de armazenamento:

  1. No portal do Azure, encontre e abra o recurso da 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 você precisar acessar a conta de armazenamento 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 essa conta de armazenamento..

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

    4. Quando terminar, selecione Salvar.

Observação

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

Crie uma atribuição de função para um aplicativo lógico

Em seguida, habilite o suporte à identidade gerenciada em seu recurso de aplicativo lógico.

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

  1. Abra o recurso de aplicativo lógico no portal do Azure.

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

  3. No painel Sistema atribuído, defina Status como Ativado, caso ainda não esteja ativado, selecione Salvar e confirme suas alterações. Em Permissões, selecione Atribuições de função 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 usando os seguintes valores:

    Propriedade Valor Descrição
    Escopo <resource-scope> O conjunto de recursos em que você deseja aplicar a atribuição de função. Para esse exemplo, selecione Armazenamento.
    Assinatura <Azure-subscription> A assinatura do Azure para a conta de armazenamento.
    Recurso <storage-account-name> O nome da conta de armazenamento que você deseja acessar do fluxo de trabalho do seu aplicativo lógico.
    Função <role-to-assign> A função que seu cenário exige para que o fluxo de trabalho funcione com o recurso. Este exemplo usa o Colaborador de Dados de Blob de Armazenamento, que permite acesso de leitura, gravação e exclusão a contêineres de blob e data. Para obter detalhes sobre as permissões, passe 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 à identidade gerenciada no aplicativo lógico

Em seguida, conclua estas etapas:

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

  2. Não se esqueça de definir o tipo de autenticação para usar a identidade gerenciada.

  3. Depois de configurar o gatilho ou a ação, salve o fluxo de trabalho e testar o gatilho ou a ação.

Solucionar problemas com o acesso a contas de armazenamento

  • "Esta solicitação não está autorizada a executar esta operação."

    O erro a seguir é um problema comum que surge quando o aplicativo lógico e a conta de armazenamento estão na mesma região. No entanto, há opções disponíveis para resolver essa limitação, conforme descrito na seção Acessar contas de armazenamento por trás de 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 o fluxo de trabalho Standard usar uma ação interna do Blob do Azure que adiciona um blob ao contêiner de armazenamento, você poderá receber os 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 acontecem quando o arquivo não existe. Apesar desses erros, a ação interna adiciona com êxito o blob.

Próximas etapas