Gatilho do Blob da Grade de Eventos do Azure Functions

Este artigo demonstra como depurar e implantar uma função disparada por Blob da Grade de Eventos local que administra eventos gerados por uma conta de armazenamento.

Observação

O gatilho do Blob da Grade de Eventos está em versão prévia.

Pré-requisitos

Criar uma nova função

  1. Abra o aplicativo de funções no Visual Studio Code.

  2. Pressione F1 para criar uma função de gatilho de blob. Lembre-se de usar a cadeia de conexão para a sua conta de armazenamento.

  3. A URL padrão para o gatilho de blob da grade de eventos é:

    http://localhost:7071/runtime/webhooks/blobs?functionName={functionname}
    

    Observe o nome do aplicativo de funções e que o tipo de gatilho é um gatilho de blob, que é indicado por blobs na URL. Isso será necessário ao configurar os pontos de extremidade posteriormente no guia de instruções.

  4. Depois que a função for criada, adicione o parâmetro de origem da Grade de Eventos.

    Adicione Source = BlobTriggerSource.EventGrid nos parâmetros de função.

    [FunctionName("BlobTriggerCSharp")]
    public static void Run([BlobTrigger("samples-workitems/{name}", Source = BlobTriggerSource.EventGrid, Connection = "connection")]Stream myBlob, string name, ILogger log)
    {
        log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");
    }
    
  5. Defina um ponto de interrupção na sua função na linha que administra o registro em log.

  6. Inicie uma sessão de depuração.

    Pressione F5 para iniciar uma sessão de depuração.

Permitir que o Azure chame sua função local

Para interromper uma função que está sendo depurada em seu computador, você deve habilitar uma maneira para o Azure se comunicar com sua função local da nuvem.

O utilitário ngrok oferece uma maneira para o Azure chamar a função em execução no computador. Inicie ngrok usando o seguinte comando:

ngrok http -host-header=localhost 7071

Como o utilitário de configuração, a janela de comando deve ser semelhante à seguinte captura de tela:

Captura de tela que mostra o prompt de comando depois de iniciar o utilitário "ngrok".

Cópia de HTTPS URL gerada quando ngrok é executado. Esse local é usado ao configurar o gatilho de Grade de Eventos.

Adicionar uma chave de armazenamento

  1. Abra o portal do Azure e navegue até sua conta de armazenamento e selecione a opção Eventos no menu à esquerda.

    Adicionar evento da conta de armazenamento

  2. Na janela Eventos, clique no botão Assinatura de Evento.

  3. Na janela Assinatura de evento, clique na lista suspensa Tipo de ponto de extremidade e selecione Web hook.

    Selecionar tipo de assinatura

  4. Depois que o tipo de ponto de extremidade é configurado, clique em Selecionar um ponto de extremidade para configurar o valor de ponto de extremidade.

    Selecionar o tipo de ponto de extremidade

    O valor do Ponto de extremidade do assinante é composto de três valores diferentes. O prefixo é a URL HTTPS gerada pelo ngrok. O restante da URL vem da URL do host local copiada anteriormente do guia de orientação, com o nome da função adicionado ao final. Começando com a URL do host local, a URL ngrok substitui http://localhost:7071 e a função nome substitui {functionname}.

  5. A captura de tela a seguir mostra um exemplo de como a URL final deve ser exibida ao usar um Event Grid tipo de gatilho.

    Seleção de ponto de extremidade

  6. Depois de inserir o valor apropriado, clique em Confirmar seleção.

Importante

Sempre que você iniciar o ngrok, a URL HTTPS é gerada novamente e o valor é alterado. Portanto você deve criar uma nova assinatura de evento cada vez que expor sua função no Azure por meio do ngrok.

Carregar um arquivo

Agora você pode carregar um arquivo para sua conta de armazenamento para disparar um Evento de Grade de Eventos para sua função local para tratar.

Abra o Gerenciador de Armazenamento e conecte-se à sua conta de armazenamento.

  • Expanda Contêineres de Blob
  • Clique com botão direito e selecione Criar contêiner de Blob.
  • Nomear o contêiner samples-workitems
  • Selecione o contêiner samples-workitems
  • Clique no botão Carregar
  • Clique em Carregar arquivos
  • Selecione um arquivo e carregá-o para o contêiner de blob

Depurar a função

Depois que o Gatilho de Blob reconhecer que um novo arquivo foi carregado no contêiner de armazenamento, o ponto de interrupção será atingido na sua função local.

Implantação

Ao implantar o aplicativo de funções no Azure, atualize o ponto de extremidade do webhook no ponto de extremidade local para o ponto de extremidade do aplicativo implantado. Para atualizar um ponto de extremidade, siga as etapas em Adicionar um evento de armazenamento e use o seguinte para a URL do webhook na etapa 5. O <BLOB-EXTENSION-KEY> pode ser encontrado na seção Chaves de Aplicativo no menu à esquerda do Aplicativo de Funções.

https://<FUNCTION-APP-NAME>.azurewebsites.net/runtime/webhooks/blobs?functionName=<FUNCTION-NAME>&code=<BLOB-EXTENSION-KEY>

Limpar os recursos

Para limpar os recursos criados neste artigo, exclua a assinatura da grade de eventos criada neste tutorial.

Próximas etapas