Compartilhar via


Como usar uma conta de armazenamento segura com o Azure Functions

O Azure Functions requer uma conta de armazenamento do Azure quando você cria uma instância de aplicativo de funções. Essa conta de armazenamento padrão é usada pelo runtime do Functions para manter a integridade do aplicativo de funções. Para obter mais informações, confira Considerações de armazenamento do Azure Functions. Este artigo mostra como usar uma conta de armazenamento protegida como a conta de armazenamento padrão. Para acessar um tutorial detalhado sobre como criar o seu aplicativo de funções com restrições de acesso de entrada e saída, confira o tutorial Integrar com uma rede virtual. Para saber mais sobre o Azure Functions e a rede, veja Opções de rede do Azure Functions.

Restringir a sua conta de armazenamento a uma rede virtual

Ao criar um aplicativo de funções, você cria uma nova conta de armazenamento ou vincula a uma existente. Lembre-se dessas considerações ao trabalhar com a conta de armazenamento protegida.

  • Para criar um aplicativo de funções que usa uma conta de armazenamento protegida existente como a conta de armazenamento padrão, você deve criar seu aplicativo no portal do Azure ou usando o modelo do ARM ou implantações do Bicep.
  • Ao usar uma conta de armazenamento protegida com um plano de escala dinâmica, você deve hospedar suas funções no plano de Consumo Flexível. Esse plano dá suporte a contas de armazenamento protegidas e a conexões baseadas em identidade gerenciada ao armazenamento, que é a opção de conexão mais segura.
  • Todas as camadas do plano Dedicado (Serviço de Aplicativo) e do plano Elastic Premium também dão suporte a contas de armazenamento seguras. Contudo, há compensações ao usar identidades gerenciadas para se conectar a partir de um aplicativo de plano Premium. Para obter mais informações, consulte Criar um aplicativo sem os arquivos do Azure.
  • O plano de Consumo não dá suporte a redes virtuais, portanto, você não pode se conectar a uma conta de armazenamento protegida ao fazer a execução no plano de Consumo. Para usufruir da hospedagem de funções sem servidor, você deve recriar seu aplicativo para ser executado no plano de Consumo Flexível.
  • Atualmente, este artigo mostra como criar um aplicativo de funções em um plano Premium que se conecta a uma conta de armazenamento protegida usando a cadeia de conexão da conta de armazenamento. Para fornecer a melhor proteção das credenciais da conta de armazenamento, você deve usar identidades gerenciadas ao se conectar a uma conta de armazenamento. Em vez disso, siga o Início Rápido: criar e implantar funções no Azure Functions usando o Azure Developer CLI para criar um aplicativo de funções no plano de Consumo Flexível que se conecta a uma nova conta de armazenamento protegida usando identidades gerenciadas.
  • Para obter uma lista de todas as restrições em contas de armazenamento, confira Requisitos da conta de armazenamento.

Armazenamento seguro durante a criação do aplicativo de funções

Você pode criar um aplicativo de funções junto com uma nova conta de armazenamento protegida por uma rede virtual. As seções seguir mostram como criar esses recursos usando o portal do Azure ou usando modelos de implantação.

Conclua as etapas em Criar um aplicativo de funções em um plano Premium. Esta seção do tutorial de rede virtual mostra como criar um aplicativo de funções que se conecta ao armazenamento em pontos de extremidade privados.

Observação

Ao criar seu aplicativo de funções no portal do Azure, você também pode escolher uma conta de armazenamento protegida existente na guia Armazenamento. No entanto, você precisa configurar a rede apropriada no aplicativo de funções para que ela possa se conectar por meio da rede virtual usada para proteger a conta de armazenamento. Se você não tiver permissões para configurar a rede ou não tiver preparado totalmente sua rede, selecione Configurar a rede após a criação na guia Rede. Você pode configurar a rede para seu novo aplicativo de funções no portal em Configurações>Rede.

Armazenamento seguro para um aplicativo de funções existente

Quando você tem um aplicativo de funções existente, você pode configurar diretamente a rede na conta de armazenamento sendo usada pelo aplicativo. No entanto, esse processo faz com que seu aplicativo de funções fique inativo enquanto você configura a rede e enquanto seu aplicativo de funções é reiniciado.

Para minimizar o tempo de inatividade, você pode trocar uma conta de armazenamento existente por uma nova conta de armazenamento protegida.

1. Habilitar a integração de rede virtual

Como pré-requisito, você precisa habilitar a integração de rede virtual para o seu aplicativo de funções:

  1. Escolha um aplicativo de funções com uma conta de armazenamento que não tenha pontos de extremidade de serviço ou pontos de extremidade privados habilitados.

  2. Habilite a integração da rede virtual para o seu aplicativo.

2. Criar uma conta de armazenamento segura

Configure uma conta de armazenamento segura para o seu aplicativo de funções:

  1. Crie uma segunda conta de armazenamento. Essa conta de armazenamento é a conta de armazenamento protegida para seu aplicativo de funções usar em vez da sua conta de armazenamento original não protegida. Você também pode usar uma conta de armazenamento existente que ainda não está sendo usada pelo Functions.

  2. Salve a cadeia de conexão para a conta de armazenamento usar posteriormente.

  3. Crie um compartilhamento de arquivos na conta de armazenamento nova. Para sua conveniência, você pode usar o mesmo nome do compartilhamento de arquivo da sua conta de armazenamento original. Caso contrário, se você usar um novo nome do compartilhamento de arquivo, deverá atualizar a configuração do aplicativo.

  4. Proteja a nova conta de armazenamento de uma das seguintes maneiras:

    • Crie um ponto de extremidade privado. Quando configurar sua conexão de ponto de extremidade privado, crie pontos de extremidade privados para os sub-recursos file e blob. No caso do Durable Functions, você também precisa tornar os sub-recursos queue e table acessíveis por meio de pontos de extremidade privados. Se você estiver usando um servidor DNS (Sistema de Nomes de Domínio) personalizado ou local, configure seu servidor DNS para resolver para os novos pontos de extremidade privados.

    • Restrinja o tráfego a sub-redes específicas. Verifique se o aplicativo de funções está integrado à rede com uma sub-rede permitida e se a sub-rede tem um ponto de extremidade de serviço para Microsoft.Storage.

  5. Copie o conteúdo do arquivo e do blob da conta de armazenamento usada atualmente pelo aplicativo de funções para a conta de armazenamento protegida e o compartilhamento de arquivos que você acabou de criar. O AzCopy e o Gerenciador de Armazenamento do Microsoft Azure são métodos comuns. Se você usar o Gerenciador de Armazenamento do Microsoft Azure, talvez seja necessário permitir que o endereço IP do cliente acesse o firewall da sua conta de armazenamento.

Agora você está pronto para configurar o seu aplicativo de funções para se comunicar com a conta de armazenamento recém-protegida.

3. Habilitar o roteamento de aplicativos e configurações

Observação

Essas etapas de configuração são necessárias apenas para os planos de hospedagem Elastic Premium e Dedicado (Serviço de Aplicativo). O plano de Consumo Flex não requer configurações de site para configurar a rede.

Agora tudo está pronto para rotear o tráfego do aplicativo de funções para percorrer a rede virtual:

  1. Habilite o roteamento de aplicativos para rotear o tráfego do aplicativo para a rede virtual:

    1. No seu aplicativo de funções, expanda Configurações e selecione Rede. Na página Rede, em Configuração de tráfego de saída, selecione a sub-rede associada à integração de rede virtual.

    2. Na nova página, em Roteamento de aplicativos, selecione Tráfego de Internet de saída.

  2. Habilite o roteamento de compartilhamento de conteúdo para que o seu aplicativo de funções se comunique com a sua nova conta de armazenamento por meio da sua rede virtual. Na mesma página da etapa anterior, em Roteamento de configuração, selecione Armazenamento de conteúdo.

Observação

Você deve tomar cuidado especial ao rotear para o compartilhamento de conteúdo em uma conta de armazenamento compartilhada por vários aplicativos de funções no mesmo plano. Para obter mais informações, veja Roteamento consistente por meio de redes virtuais no artigo Considerações sobre armazenamento.

4. Atualizar as configurações do aplicativo

Por fim, você precisa atualizar as configurações do aplicativo para apontar para a nova conta de armazenamento segura:

  1. Em seu aplicativo de funções, expanda Configurações e selecione Variáveis de ambiente.

  2. Na guia Configurações do aplicativo, atualize as seguintes configurações selecionando cada configuração, editando-a e selecionando Aplicar:

    Nome da configuração Valor Comentário
    AzureWebJobsStorage Cadeia de conexão de armazenamento Use a cadeia de conexão para sua nova conta de armazenamento protegida, que você salvou anteriormente.
    WEBSITE_CONTENTAZUREFILECONNECTIONSTRING Cadeia de conexão de armazenamento Use a cadeia de conexão para sua nova conta de armazenamento protegida, que você salvou anteriormente.
    WEBSITE_CONTENTSHARE Compartilhamento de arquivo Use o nome do compartilhamento de arquivos criado na conta de armazenamento protegida em que residem os arquivos de implantação do projeto.
  3. Selecione Aplicar e, depois, Confirmar para salvar as novas configurações de aplicativo no aplicativo de funções.

    O aplicativo de funções será reiniciado.

Depois que o aplicativo de funções terminar de reiniciar, ele se conectará à conta de armazenamento protegida.

Próximas etapas