Desenvolver as Funções do Azure com o Visual Studio Code

A extensão Funções do Azure do Visual Studio Code permite-lhe desenvolver funções localmente e implementá-las no Azure. Se esta experiência for a primeira com Funções do Azure, pode saber mais em Uma introdução ao Funções do Azure.

A extensão Funções do Azure fornece estes benefícios:

  • Editar, compilar e executar funções no seu computador de desenvolvimento local.
  • Publique o projeto Funções do Azure diretamente no Azure.
  • Escreva as suas funções em vários idiomas ao mesmo tempo que tira partido das vantagens do Visual Studio Code.

A extensão pode ser utilizada com os seguintes idiomas, que são suportados pelo runtime Funções do Azure a partir da versão 2.x:

*Requer que defina o script C# como a linguagem de projeto predefinida.

Neste artigo, os exemplos estão atualmente disponíveis apenas para funções de biblioteca de classes JavaScript (Node.js) e C#.

Este artigo fornece detalhes sobre como utilizar a extensão Funções do Azure para desenvolver funções e publicá-las no Azure. Antes de ler este artigo, deve criar a sua primeira função com o Visual Studio Code.

Importante

Não misture o desenvolvimento local e o desenvolvimento do portal para uma única aplicação de funções. Quando publica a partir de um projeto local para uma aplicação de funções, o processo de implementação substitui todas as funções que desenvolveu no portal.

Pré-requisitos

Executar requisitos locais

Estes pré-requisitos só são necessários para executar e depurar as suas funções localmente. Não são necessários para criar ou publicar projetos para Funções do Azure.

Criar um projeto das Funções do Azure

A extensão funções permite-lhe criar um projeto de aplicação de funções, juntamente com a sua primeira função. Os passos seguintes mostram como criar uma função acionada por HTTP num novo projeto de Funções. O acionador HTTP é o modelo de acionador de função mais simples a demonstrar.

    1. Selecione o ícone do Azure na Barra de atividade e, em seguida, na área Área de trabalho (local ), selecione o + botão e selecione Criar Função no menu pendente. Quando lhe for pedido, selecione Criar novo projeto.

    Captura de ecrã a mostrar a janela Criar um novo projeto.

  1. Escolha a localização do diretório da área de trabalho do projeto e selecione Selecionar. Deve criar uma nova pasta ou escolher uma pasta vazia para a área de trabalho do projeto. Não escolha uma pasta de projeto que já faça parte de uma área de trabalho.

  2. Quando lhe for pedido, selecione um idioma para o seu projeto e, se necessário, escolha uma versão de idioma específica.

  3. Selecione o modelo de função de acionador HTTP ou pode selecionar Ignorar por agora para criar um projeto sem uma função. Pode sempre adicionar uma função ao seu projeto mais tarde.

    Captura de ecrã a mostrar a seleção do acionador H T T P.

  4. Escreva HttpExample para o nome da função, selecione Enter e, em seguida, selecione Autorização de função . Este nível de autorização requer que forneça uma chave de função quando chamar o ponto final da função.

    Captura de ecrã para criar autorização de função.

  5. Na lista pendente, selecione Adicionar à área de trabalho.

     Captura de ecrã a mostrar a seleção de Adicionar à área de trabalho.

  6. Na janela Confia nos autores dos ficheiros nesta pasta? , selecione Sim.

    Captura de ecrã para confirmar a confiança nos autores dos ficheiros.

  7. É criada uma função no idioma escolhido e no modelo para uma função acionada por HTTP.

    Captura de ecrã do modelo de função acionada por H T T no Visual Studio Code.

Ficheiros de projeto gerados

O modelo de projeto cria um projeto no idioma escolhido e instala as dependências necessárias. Para qualquer linguagem, o novo projeto tem estes ficheiros:

  • host.json: permite-lhe configurar o anfitrião de Funções. Estas definições aplicam-se quando executa funções localmente e quando as executa no Azure. Para obter mais informações, veja referência host.json.

  • local.settings.json: mantém as definições utilizadas quando executa funções localmente. Estas definições são utilizadas apenas quando está a executar funções localmente. Para obter mais informações, veja Ficheiro de definições locais.

    Importante

    Uma vez que o ficheiro local.settings.json pode conter segredos, tem de o excluir do controlo de origem do projeto.

Consoante o seu idioma, estes outros ficheiros são criados:

Neste momento, pode adicionar enlaces de entrada e saída à função. Também pode adicionar uma nova função ao seu projeto.

Instalar as extensões de enlace

Exceto para acionadores HTTP e temporizador, os enlaces são implementados em pacotes de extensão. Tem de instalar os pacotes de extensão para os acionadores e enlaces que precisam deles. O processo de instalação de extensões de enlace depende do idioma do projeto.

Execute o comando dotnet add package na janela Terminal para instalar os pacotes de extensão de que precisa no projeto. O exemplo seguinte demonstra como adicionar um enlace para uma biblioteca de classes em processo:

dotnet add package Microsoft.Azure.WebJobs.Extensions.<BINDING_TYPE_NAME> --version <TARGET_VERSION>

O exemplo seguinte demonstra como adicionar um enlace para uma biblioteca de classes de processo isolado:

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.<BINDING_TYPE_NAME> --version <TARGET_VERSION>

Em ambos os casos, substitua <BINDING_TYPE_NAME> pelo nome do pacote que contém o enlace de que precisa. Pode encontrar o artigo de referência de enlace pretendido na lista de enlaces suportados.

Substitua <TARGET_VERSION> no exemplo por uma versão específica do pacote, como 3.0.0-beta5. As versões válidas são listadas nas páginas de pacote individuais no NuGet.org. As versões principais que correspondem ao runtime das Funções 1.x ou 2.x são especificadas no artigo de referência do enlace.

Adicionar uma função ao projeto

Pode adicionar uma nova função a um projeto existente com um dos modelos de acionador de Funções predefinidos. Para adicionar um novo acionador de função, selecione F1 para abrir a paleta de comandos e, em seguida, procure e execute o comando Funções do Azure: Criar Função. Siga as instruções para escolher o tipo de acionador e definir os atributos necessários do acionador. Se o acionador necessitar de uma chave de acesso ou cadeia de ligação para ligar a um serviço, prepare-o antes de criar o acionador de função.

Os resultados desta ação dependem da linguagem do projeto:

É adicionado um novo ficheiro de biblioteca de classes C# (.cs) ao seu projeto.

Connect to services (Ligar aos serviços)

Pode ligar a função a outros serviços do Azure ao adicionar enlaces de entrada e saída. Os enlaces ligam a sua função a outros serviços sem ter de escrever o código de ligação. O processo de adição de enlaces depende da linguagem do projeto. Para saber mais sobre enlaces, veja Funções do Azure conceitos de acionadores e enlaces.

Os exemplos seguintes ligam-se a uma fila de armazenamento com o nome outqueue, onde a cadeia de ligação da conta de armazenamento está definida na definição da aplicação MyStorageConnection em local.settings.json.

Atualize o método de função para adicionar o seguinte parâmetro à definição do Run método:

[Queue("outqueue"),StorageAccount("AzureWebJobsStorage")] ICollector<string> msg,

O msg parâmetro é um ICollector<T> tipo, que representa uma coleção de mensagens escritas num enlace de saída quando a função é concluída. O código seguinte adiciona uma mensagem à coleção:

// Add a message to the output collection.
msg.Add(name);

As mensagens são enviadas para a fila quando a função é concluída.

Para saber mais, veja a documentação do artigo Queue storage output binding reference (Referência do enlace de saída de armazenamento de filas ). Para saber mais em geral sobre que enlaces podem ser adicionados a uma função, veja Adicionar enlaces a uma função existente no Funções do Azure.

Iniciar sessão no Azure

Antes de poder publicar a aplicação, tem de iniciar sessão no Azure.

  1. Se ainda não tiver sessão iniciada, selecione o ícone do Azure na Barra de atividade. Em seguida, na área Recursos , selecione Iniciar sessão no Azure....

    Captura de ecrã a mostrar a janela de início de sessão no Azure no VS Code.

    Se já tiver sessão iniciada e conseguir ver as subscrições existentes, aceda à secção seguinte. Se ainda não tiver uma conta do Azure, selecione Criar e Conta do Azure.... Os estudantes podem escolher Criar e Conta do Azure para Estudantes....

  2. Quando lhe for pedido no browser, escolha a sua conta do Azure e inicie sessão com as credenciais da conta do Azure. Se criar uma nova conta, pode iniciar sessão depois de a sua conta ser criada.

  3. Depois de iniciar sessão com êxito, pode fechar a nova janela do browser. As subscrições que pertencem à sua conta do Azure são apresentadas na barra lateral.

Criar recursos do Azure

Antes de poder publicar o projeto de Funções no Azure, tem de ter uma aplicação de funções e recursos relacionados na sua subscrição do Azure para executar o código. A aplicação de funções proporciona um contexto de execução para as suas funções. Quando publica numa aplicação de funções no Azure a partir do Visual Studio Code, o projeto é empacotado e implementado na aplicação de funções selecionada na sua subscrição do Azure.

Quando cria uma aplicação de funções no Azure, pode escolher um caminho de criação de uma aplicação de funções rápida com predefinições ou um caminho avançado. Desta forma, terá mais controlo sobre os recursos remotos criados.

Criação rápida de aplicações de funções

Nesta secção, vai criar uma aplicação de funções e recursos relacionados na sua subscrição do Azure.

  1. Selecione o ícone do Azure na Barra de atividade. Em seguida, na área Recursos , selecione o + ícone e selecione a opção Criar Aplicação de Funções no Azure .

    Criar um recurso na sua subscrição do Azure

  2. Forneça as seguintes informações nos pedidos:

    Prompt Seleção
    Selecionar subscrição Escolha a subscrição a utilizar. Não verá este pedido quando tiver apenas uma subscrição visível em Recursos.
    Introduza um nome globalmente exclusivo para a aplicação de funções Escreva um nome válido num caminho de URL. O nome que escrever é validado para se certificar de que é exclusivo no Funções do Azure.
    Selecionar uma pilha de runtime Selecione a versão de idioma na qual tem estado a executar localmente.
    Selecionar uma localização para novos recursos Para um melhor desempenho, escolha uma região perto de si.

    A extensão mostra o estado dos recursos individuais à medida que estão a ser criados no Azure no painel Azure: Registo de Atividades .

    Registo da criação de recursos do Azure

  3. Quando a criação estiver concluída, os seguintes recursos do Azure são criados na sua subscrição. Os recursos são nomeados com base no nome da sua aplicação de funções:

    • Um grupo de recursos, que é um contentor lógico para recursos relacionados.
    • Uma conta de Armazenamento do Azure padrão, que mantém o estado e outras informações sobre os seus projetos.
    • Uma aplicação de funções, que fornece o ambiente para executar o código de função. Uma aplicação de funções permite-lhe agrupar funções como uma unidade lógica para facilitar a gestão, implementação e partilha de recursos no mesmo plano de alojamento.
    • Um plano Serviço de Aplicações, que define o anfitrião subjacente para a sua aplicação de funções.
    • Uma instância do Application Insights ligada à aplicação de funções, que controla a utilização das suas funções na aplicação.

    Depois de criar a aplicação de funções, é apresentada uma notificação e o pacote de implementação é aplicado.

    Dica

    Por predefinição, os recursos do Azure exigidos pela sua aplicação de funções são criados com base no nome da aplicação de funções que fornecer. Por predefinição, também são criados no mesmo novo grupo de recursos com a aplicação de funções. Se quiser personalizar os nomes destes recursos ou reutilizar recursos existentes, tem de publicar o projeto com opções avançadas de criação .

Publicar um projeto numa nova aplicação de funções no Azure com opções avançadas

Os passos seguintes publicam o projeto numa nova aplicação de funções criada com opções avançadas de criação:

  1. Na palete de comandos, introduza Funções do Azure: Criar aplicação de funções no Azure... (Avançado).

  2. Se não tiver sessão iniciada, ser-lhe-á pedido para Iniciar sessão no Azure. Também pode Criar uma conta gratuita do Azure. Depois de iniciar sessão a partir do browser, volte ao Visual Studio Code.

  3. Seguindo as instruções, forneça estas informações:

    Prompt Seleção
    Introduza um nome globalmente exclusivo para a nova aplicação de funções. Escreva um nome globalmente exclusivo que identifique a sua nova aplicação de funções e, em seguida, selecione Enter. Os carateres válidos para um nome de aplicação de funções são a-z, 0-9 e -.
    Selecione uma pilha de runtime. Selecione a versão de idioma na qual tem estado a executar localmente.
    Selecione um SO. Selecione Linux ou Windows. As aplicações Python têm de ser executadas no Linux.
    Selecione um grupo de recursos para novos recursos. Selecione Criar novo grupo de recursos, escreva um nome de grupo de recursos, como myResourceGroup, e, em seguida, selecione Enter. Também pode selecionar um grupo de recursos existente.
    Selecione uma localização para novos recursos. Selecione uma localização numa região perto de si ou perto de outros serviços aos quais as suas funções acedem.
    Selecione um plano de alojamento. Selecione Consumo para alojamento do plano de Consumo sem servidor, onde só é cobrado quando as suas funções são executadas.
    Selecione uma conta de armazenamento. Selecione Criar nova conta de armazenamento e, na linha de comandos, escreva um nome globalmente exclusivo para a nova conta de armazenamento utilizada pela sua aplicação de funções e, em seguida, selecione Enter. Os nomes das contas de armazenamento têm de ter entre 3 e 24 carateres de comprimento e podem conter apenas números e letras minúsculas. Também pode selecionar uma conta existente.
    Selecione um recurso do Application Insights para a sua aplicação. Selecione Criar novo recurso do Application Insights e, na linha de comandos, escreva um nome para a instância utilizada para armazenar dados de runtime das suas funções.

    É apresentada uma notificação após a criação da aplicação de funções e a aplicação do pacote de implementação. Selecione Ver Saída nesta notificação para ver os resultados de criação e implementação, incluindo os recursos do Azure que criou.

Obter o URL de uma função acionada por HTTP no Azure

Para chamar uma função acionada por HTTP a partir de um cliente, precisa do URL da função quando é implementada na sua aplicação de funções. Este URL inclui todas as chaves de função necessárias. Pode utilizar a extensão para obter estes URLs para as funções implementadas. Se apenas quiser executar a função remota no Azure, utilize a função Executar agora da extensão.

  1. Selecione F1 para abrir a paleta de comandos e, em seguida, procure e execute o comando Funções do Azure: Copiar URL da Função.

  2. Siga as instruções para selecionar a aplicação de funções no Azure e, em seguida, o acionador HTTP específico que pretende invocar.

O URL da função é copiado para a área de transferência, juntamente com as chaves necessárias transmitidas pelo code parâmetro de consulta. Utilize uma ferramenta HTTP para submeter pedidos POST ou um browser para pedidos GET para a função remota.

Quando a extensão obtém o URL das funções no Azure, utiliza a sua conta do Azure para obter automaticamente as chaves de que precisa para iniciar a função. Saiba mais sobre as chaves de acesso de funções. Iniciar funções não acionadas por HTTP requer a utilização da chave de administração.

Implementar ficheiros de projeto

Recomendamos que configure a implementação contínua para que a aplicação de funções no Azure seja atualizada quando atualizar ficheiros de origem na localização de origem ligada. Também pode implementar os seus ficheiros de projeto a partir do Visual Studio Code.

Quando publica a partir do Visual Studio Code, tira partido da tecnologia de implementação Zip .

Importante

A implementação numa aplicação de funções existente substitui sempre o conteúdo dessa aplicação no Azure.

  1. Selecione o ícone do Azure na Barra de atividade e, em seguida, na área Área de Trabalho, selecione a pasta do projeto e selecione o botão Implementar...

    Implementar projeto a partir da área de trabalho do Visual Studio Code

  2. Selecione Implementar na Aplicação de Funções..., selecione a aplicação de funções que acabou de criar e selecione Implementar.

  3. Após a conclusão da implementação, selecione Ver Saída para ver os resultados de criação e implementação, incluindo os recursos do Azure que criou. Se perder a notificação, selecione o ícone de sino no canto inferior direito para vê-la novamente.

    Captura de ecrã a mostrar a janela Ver Saída.

Executar funções

A extensão Funções do Azure permite-lhe executar funções individuais. Pode executar funções no seu projeto no seu computador de desenvolvimento local ou na sua subscrição do Azure.

Para funções de acionador HTTP, a extensão chama o ponto final HTTP. Para outros tipos de acionadores, chama APIs de administrador para iniciar a função. O corpo da mensagem do pedido enviado para a função depende do tipo de acionador. Quando um acionador requer dados de teste, é-lhe pedido que introduza dados num formato JSON específico.

Executar funções no Azure.

Para executar uma função no Azure a partir do Visual Studio Code.

  1. Na palete de comandos, introduza Funções do Azure: Execute a função agora e escolha a sua subscrição do Azure.

  2. Escolha a sua aplicação de funções no Azure na lista. Se não vir a aplicação de funções, certifique-se de que tem sessão iniciada na subscrição correta.

  3. Selecione a função que pretende executar a partir da lista e escreva o corpo da mensagem do pedido em Enter corpo do pedido. Prima Enter para enviar esta mensagem de pedido para a sua função. O texto predefinido em Enter corpo do pedido deve indicar o formato do corpo. Se a aplicação de funções não tiver funções, é apresentado um erro de notificação com este erro.

  4. Quando a função é executada no Azure e devolve uma resposta, é levantada uma notificação no Visual Studio Code.

Também pode executar a sua função a partir da área Azure: Funções ao clicar com o botão direito do rato (clicar com o botão direito do rato no Mac) na função que pretende executar a partir da sua aplicação de funções na sua subscrição do Azure e selecionar Executar Função Agora....

Quando executa as suas funções no Azure a partir do Visual Studio Code, a extensão utiliza a sua conta do Azure para obter automaticamente as chaves necessárias para iniciar a função. Saiba mais sobre as chaves de acesso de funções. Iniciar funções não acionadas por HTTP requer a utilização da chave de administração.

Executar funções localmente

O runtime local é o mesmo runtime que aloja a sua aplicação de funções no Azure. As definições locais são lidas a partir do ficheiro local.settings.json. Para executar o projeto de Funções localmente, tem de cumprir mais requisitos.

Configurar o projeto para ser executado localmente

O runtime de Funções utiliza internamente uma conta de Armazenamento do Azure para todos os tipos de acionadores que não HTTP e webhooks. Por isso, tem de definir a chave Values.AzureWebJobsStorage para uma cadeia de ligação de conta de Armazenamento do Azure válida.

Esta secção utiliza a extensão de Armazenamento do Azure para o Visual Studio Code com Explorador de Armazenamento do Azure para ligar e obter a cadeia de ligação de armazenamento.

Para definir a cadeia de ligação da conta de armazenamento:

  1. No Visual Studio, abra o Cloud Explorer, expanda Conta> de ArmazenamentoA Sua Conta de Armazenamento e, em seguida, selecione Propriedades e copie o valor cadeia de ligação primária.

  2. No seu projeto, abra o ficheiro local.settings.json e defina o valor da chave AzureWebJobsStorage para a cadeia de ligação que copiou.

  3. Repita o passo anterior para adicionar chaves exclusivas à matriz Valores para quaisquer outras ligações necessárias pelas suas funções.

Para obter mais informações, veja Ficheiro de definições locais.

Funções de depuração localmente

Para depurar as suas funções, selecione F5. Se ainda não transferiu as Ferramentas Principais, ser-lhe-á pedido que o faça. Quando as Ferramentas Principais estão instaladas e em execução, a saída é apresentada no Terminal. Este passo é o mesmo que executar o func start comando Ferramentas Principais a partir do Terminal, mas com tarefas de compilação adicionais e um depurador anexado.

Quando o projeto estiver em execução, pode utilizar a funcionalidade Executar Função Agora... da extensão para acionar as suas funções como faria quando o projeto é implementado no Azure. Com o projeto em execução no modo de depuração, os pontos de interrupção são atingidos no Visual Studio Code como seria de esperar.

  1. Na palete de comandos, introduza Funções do Azure: Execute a função agora e selecione Projeto local.

  2. Escolha a função que pretende executar no projeto e escreva o corpo da mensagem do pedido em Enter corpo do pedido. Prima Enter para enviar esta mensagem de pedido para a sua função. O texto predefinido em Enter corpo do pedido deve indicar o formato do corpo. Se a aplicação de funções não tiver funções, é apresentado um erro de notificação com este erro.

  3. Quando a função é executada localmente e após a resposta ser recebida, é levantada uma notificação no Visual Studio Code. As informações sobre a execução da função são apresentadas no painel Terminal .

A execução local de funções não requer a utilização de chaves.

Definições locais

Ao executar numa aplicação de funções no Azure, as definições exigidas pelas suas funções são armazenadas de forma segura nas definições da aplicação. Durante o desenvolvimento local, estas definições são adicionadas ao Values objeto no ficheiro local.settings.json. O ficheiro local.settings.json também armazena as definições utilizadas pelas ferramentas de desenvolvimento local.

Uma vez que o local.settings.json pode conter segredos, como cadeias de ligação, nunca deve armazená-lo num repositório remoto. Para saber mais sobre as definições locais, veja Ficheiro de definições locais.

Por predefinição, estas definições não são migradas automaticamente quando o projeto é publicado no Azure. Após a conclusão da publicação, é-lhe dada a opção de publicar definições de local.settings.json para a sua aplicação de funções no Azure. Para saber mais, veja Publicar definições da aplicação.

Os valores em ConnectionStrings nunca são publicados.

Os valores das definições da aplicação de funções também podem ser lidos no seu código como variáveis de ambiente. Para obter mais informações, veja as secções Variáveis de ambiente destes artigos de referência específicos de idiomas:

Definições da aplicação no Azure

As definições no ficheiro local.settings.json no seu projeto devem ser as mesmas que as definições da aplicação na aplicação de funções no Azure. Todas as definições que adicionar a local.settings.json também têm de adicionar à aplicação de funções no Azure. Estas definições não são carregadas automaticamente quando publica o projeto. Da mesma forma, todas as definições que criar na sua aplicação de funções no portal têm de ser transferidas para o projeto local.

Publicar definições da aplicação

A forma mais fácil de publicar as definições necessárias na sua aplicação de funções no Azure é utilizar a ligação Carregar definições que é apresentada após publicar o projeto:

Captura de ecrã para carregar as definições da aplicação.

Também pode publicar definições com o comando Funções do Azure: Carregar Definição Local na paleta de comandos. Pode adicionar definições individuais às definições da aplicação no Azure com o comando Funções do Azure: Adicionar Nova Definição.

Dica

Certifique-se de que guarda o ficheiro local.settings.json antes de o publicar.

Se o ficheiro local estiver encriptado, será desencriptado, publicado e encriptado novamente. Se existirem definições que tenham valores em conflito nas duas localizações, ser-lhe-á pedido que escolha como proceder.

Veja as definições de aplicações existentes na área Azure: Funções ao expandir a sua subscrição, a sua aplicação de funções e as Definições da Aplicação.

 Captura de ecrã a mostrar as definições da aplicação de funções no Visual Studio Code.

Transferir definições do Azure

Se tiver criado definições de aplicação no Azure, pode transferi-las para o ficheiro local.settings.json com o comando Funções do Azure: Transferir Definições Remotas.

Tal como acontece com o carregamento, se o ficheiro local estiver encriptado, este será desencriptado, atualizado e encriptado novamente. Se existirem definições que tenham valores em conflito nas duas localizações, ser-lhe-á pedido que escolha como proceder.

Funções de monitorização

Quando executa funções localmente, os dados de registo são transmitidos para a consola do Terminal. Também pode obter dados de registo quando o projeto de Funções está em execução numa aplicação de funções no Azure. Pode ligar-se a registos de transmissão em fluxo no Azure para ver dados de registo quase em tempo real. Deve ativar o Application Insights para uma compreensão mais completa de como a sua aplicação de funções se está a comportar.

Registos de transmissão em fluxo

Quando está a desenvolver uma aplicação, muitas vezes é útil ver informações de registo em tempo quase real. Pode ver um fluxo de ficheiros de registo a ser gerado pelas suas funções. Este resultado é um exemplo de registos de transmissão em fluxo de um pedido para uma função acionada por HTTP:

Captura de ecrã para a saída dos registos de transmissão em fluxo para o acionador H T T P.

Para saber mais, veja Registos de transmissão em fluxo.

Para ativar os registos de transmissão em fluxo para a sua aplicação de funções no Azure:

  1. Selecione F1 para abrir a paleta de comandos e, em seguida, procure e execute o comando Funções do Azure: Iniciar Registos de Transmissão em Fluxo.

  2. Selecione a sua aplicação de funções no Azure e, em seguida, selecione Sim para ativar o registo de aplicações da aplicação de funções.

  3. Acione as suas funções no Azure. Note que os dados de registo são apresentados na janela Output (Saída) no Visual Studio Code.

  4. Quando terminar, lembre-se de executar o comando Funções do Azure: Parar Registos de Transmissão em Fluxo para desativar o registo da aplicação de funções.

Nota

Os registos de transmissão em fluxo suportam apenas uma única instância do anfitrião de Funções. Quando a função é dimensionada para várias instâncias, os dados de outras instâncias não são apresentados no fluxo de registos. O Live Metrics Stream no Application Insights suporta várias instâncias. Embora também em tempo quase real, a análise de transmissão em fluxo baseia-se em dados de exemplo.

Application Insights

Recomendamos que monitorize a execução das suas funções ao integrar a sua aplicação de funções com o Application Insights. Quando cria uma aplicação de funções no portal do Azure, esta integração ocorre por predefinição. Quando cria a sua aplicação de funções durante a publicação do Visual Studio, tem de integrar o Application Insights. Para saber como, veja Ativar a integração do Application Insights.

Para saber mais sobre a monitorização com o Application Insights, veja Monitorizar Funções do Azure.

emulação x86 no ARM64

Atualmente, as funções não suportam o desenvolvimento da função Python local em dispositivos ARM64. Utilize os seguintes passos para desenvolver funções Python num Mac com um chip M1 ao executar num ambiente x86 emulado.

Ativar Roseta no Terminal

  1. No seu Mac, abra o Finder, selecione Aplicações e localize Terminal.

  2. Clique em Terminal e selecione Obter Informações. Também pode criar um ambiente paralelo separado ao duplicar o Terminal e mudar o nome do mesmo.

    Captura de ecrã a mostrar a seleção de Obter Informações ao clicar em Terminal de controlo

  3. Selecione Abrir com Roseta.

    Captura de ecrã do Terminal configurado para abrir com a Roseta

  4. Abra o Terminal, que agora tem a Roseta ativada e certifique-se de que a shell é zsh.

  5. Execute o seguinte comando para validar a emulação x86.

    $ arch
    

    Uma resposta de i386 indica que o terminal está a executar um ambiente emulado x86.

Instalar pacotes necessários

Reinstale todas as dependências necessárias pelas Funções neste ambiente, que incluem os seguintes pacotes:

Além disso, reinstale quaisquer outros pacotes necessários para o projeto Python.

Definir aliases (opcional)

Opcionalmente, pode definir aliases para facilitar a referência das versões certas em Roseta.

Segue-se um exemplo de como criar um ficheiro .zshrc para configurar o terminal zsh:

# file: .zshrc
# rosetta terminal setup
if [ $(arch) = "i386" ]; then
    alias python="/usr/local/bin/python3"
    alias brew86='/usr/local/bin/brew'
    alias pyenv86="arch -x86_64 pyenv"
    alias func="/usr/local/Cellar/azure-functions-core-tools@4/4.0.4785/func"
fi

Execute o seguinte comando para aplicar os aliases:

$ source .zshrc

Confirme que está a referenciar as versões corretas com o which comando, conforme mostrado nos seguintes exemplos:

Comando Resposta de exemplo
$ which python python: aliased to /usr/local/bin/python3
$ which func func: aliased to /usr/local/Cellar/azure-functions-core-tools@4/4.0.4785/func

Estas respostas de exemplo baseiam-se no ficheiro .zshrc de exemplo anterior.

Agora, está configurado para utilizar Funções do Azure no ambiente x86 do Terminal.

Ativar a emulação no Visual Studio Code

Agora que configurou o Terminal com Rosetta para executar a emulação x86 para o desenvolvimento do Python, pode utilizar os seguintes passos para integrar esta emulação terminal com o Visual Studio Code:

  1. Abra a Paleta de Comandos premindo Cmd+Shift+P, selecione Preferências: Abrir Definições (JSON)e adicione o seguinte JSON à sua configuração:

    "terminal.integrated.profiles.osx": {
           "rosetta": {
             "path": "arch",
             "args": ["-x86_64", "zsh", "-l"],
             "overrideName": true
           }
         }
    
  2. Abra um novo Terminal e selecione roseta.

    Captura de ecrã a mostrar o início de um novo terminal de Roseta no Visual Studio Code.

Projetos de script C#

Por predefinição, todos os projetos C# são criados como projetos de biblioteca de classes compilados em C#. Se preferir trabalhar com projetos de script C#, tem de selecionar script C# como o idioma predefinido nas definições da extensão Funções do Azure:

  1. SelecioneDefinições de Preferências> de Ficheiro>.

  2. Aceda aExtensões de>Definições>do Utilizador Funções do Azure.

  3. Selecione C#Script na Função do Azure: Idioma do Projeto.

Depois de concluir estes passos, as chamadas efetuadas às Ferramentas Principais subjacentes incluem a opção --csx , que gera e publica ficheiros de projeto de script C# (.csx). Quando tiver este idioma predefinido especificado, todos os projetos que criar predefinição para projetos de script C#. Não lhe é pedido para escolher um idioma de projeto quando uma predefinição é definida. Para criar projetos noutros idiomas, tem de alterar esta definição ou removê-la do ficheiro user settings.json. Depois de remover esta definição, é-lhe novamente pedido que escolha o seu idioma quando cria um projeto.

Referência da paleta de comandos

A extensão Funções do Azure fornece uma interface gráfica útil na área para interagir com as suas aplicações de funções no Azure. A mesma funcionalidade também está disponível como comandos na paleta de comandos (F1). Estes comandos de Funções do Azure estão disponíveis:

comando Funções do Azure Description
Adicionar Novas Definições Cria uma nova definição de aplicação no Azure. Para saber mais, veja Publicar definições da aplicação. Também poderá ter de transferir esta definição para as suas definições locais.
Configurar a Origem da Implementação Liga a sua aplicação de funções no Azure a um repositório git local. Para saber mais, veja Implementação contínua para Funções do Azure.
Ligar ao Repositório do GitHub Liga a sua aplicação de funções a um repositório do GitHub.
COPIAR URL da Função Obtém o URL remoto de uma função acionada por HTTP que está em execução no Azure. Para saber mais, veja Obter o URL da função implementada.
Criar aplicação de funções no Azure Cria uma nova aplicação de funções na sua subscrição no Azure. Para saber mais, veja a secção sobre como publicar numa nova aplicação de funções no Azure.
Desencriptar Definições Desencripta as definições locais que foram encriptadas por Funções do Azure: Encriptar Definições.
Eliminar Aplicação de Funções Remove uma aplicação de funções da sua subscrição no Azure. Quando não existem outras aplicações no plano de Serviço de Aplicações, é-lhe dada a opção de o eliminar também. Outros recursos, como contas de armazenamento e grupos de recursos, não são eliminados. Para remover todos os recursos, deve eliminar o grupo de recursos. O projeto local não é afetado.
Eliminar Função Remove uma função existente de uma aplicação de funções no Azure. Uma vez que esta eliminação não afeta o projeto local, considere remover a função localmente e, em seguida, voltar a publicar o projeto.
Eliminar Proxy Remove um proxy de Funções do Azure da sua aplicação de funções no Azure. Para saber mais sobre proxies, consulte Trabalhar com Funções do Azure Proxies.
Eliminar Definição Elimina uma definição de aplicação de funções no Azure. Esta eliminação não afeta as definições no ficheiro local.settings.json.
Desligar do Repositório Remove a ligação de implementação contínua entre uma aplicação de funções no Azure e um repositório de controlo de origem.
Transferir Definições Remotas Transfere as definições da aplicação de funções escolhida no Azure para o ficheiro local.settings.json. Se o ficheiro local estiver encriptado, este será desencriptado, atualizado e encriptado novamente. Se existirem definições que tenham valores em conflito nas duas localizações, ser-lhe-á pedido que escolha como proceder. Certifique-se de que guarda as alterações ao ficheiro local.settings.json antes de executar este comando.
Editar definições Altera o valor de uma definição de aplicação de funções existente no Azure. Este comando não afeta as definições no ficheiro local.settings.json.
Encriptar definições Encripta itens individuais na Values matriz nas definições locais. Neste ficheiro, IsEncrypted também está definido como true, que especifica que o runtime local irá desencriptar as definições antes de as utilizar. Encriptar definições locais para reduzir o risco de fuga de informações valiosas. No Azure, as definições da aplicação são sempre armazenadas encriptadas.
Executar Função Agora Inicia manualmente uma função com APIs de administrador. Este comando é utilizado para testes, tanto localmente durante a depuração como em funções em execução no Azure. Quando uma função no Azure é iniciada, a extensão obtém automaticamente uma chave de administrador, que utiliza para chamar as APIs de administrador remoto que iniciam funções no Azure. O corpo da mensagem enviada para a API depende do tipo de acionador. Os acionadores de temporizador não requerem que transmita dados.
Inicializar o Project for Use com o VS Code Adiciona os ficheiros de projeto do Visual Studio Code necessários a um projeto de Funções existente. Utilize este comando para trabalhar com um projeto que criou com as Ferramentas Principais.
Instalar ou Atualizar Funções do Azure Ferramentas Principais Instala ou atualiza Funções do Azure Core Tools, que é utilizado para executar funções localmente.
Voltar a implementar Permite-lhe reimplementar ficheiros de projeto de um repositório Git ligado a uma implementação específica no Azure. Para voltar a publicar atualizações locais a partir do Visual Studio Code, volte a publicar o seu projeto.
Mudar o Nome das Definições Altera o nome chave de uma definição de aplicação de funções existente no Azure. Este comando não afeta as definições no ficheiro local.settings.json. Depois de mudar o nome das definições no Azure, deve transferir essas alterações para o projeto local.
Reiniciar Reinicia a aplicação de funções no Azure. A implementação de atualizações também reinicia a aplicação de funções.
Definir AzureWebJobsStorage Define o valor da definição da aplicação AzureWebJobsStorage . Esta definição é necessária por Funções do Azure. É definido quando uma aplicação de funções é criada no Azure.
Iniciar Inicia uma aplicação de funções parada no Azure.
Iniciar Registos de Transmissão em Fluxo Inicia os registos de transmissão em fluxo da aplicação de funções no Azure. Utilize os registos de transmissão em fluxo durante a resolução de problemas remota no Azure se precisar de ver informações de registo quase em tempo real. Para saber mais, veja Registos de transmissão em fluxo.
Parar Para uma aplicação de funções em execução no Azure.
Parar Registos de Transmissão em Fluxo Para os registos de transmissão em fluxo da aplicação de funções no Azure.
Alternar como Definição de Bloco Quando ativada, garante que uma definição de aplicação persiste para um determinado bloco de implementação.
Desinstalar o Funções do Azure Core Tools Remove Funções do Azure Core Tools, que é exigido pela extensão.
Carregar Definições Locais Carrega as definições do ficheiro local.settings.json para a aplicação de funções escolhida no Azure. Se o ficheiro local estiver encriptado, será desencriptado, carregado e encriptado novamente. Se existirem definições com valores em conflito nas duas localizações, ser-lhe-á pedido para escolher como proceder. Certifique-se de que guarda as alterações ao ficheiro local.settings.json antes de executar este comando.
Ver Consolidação no GitHub Mostra-lhe a consolidação mais recente numa implementação específica quando a aplicação de funções está ligada a um repositório.
Ver Registos de Implementação Mostra-lhe os registos de uma implementação específica para a aplicação de funções no Azure.

Passos seguintes

Para saber mais sobre o Funções do Azure Core Tools, veja Trabalhar com o Funções do Azure Core Tools.

Para saber mais sobre o desenvolvimento de funções como bibliotecas de classes .NET, veja Funções do Azure referência para programadores de C#. Este artigo também fornece ligações para exemplos de como utilizar atributos para declarar os vários tipos de enlaces suportados pelo Funções do Azure.