Share via


Criar a sua primeira função no Azure Arc (pré-visualização)

Neste início rápido, você cria um projeto do Azure Functions e o implanta em um aplicativo de função em execução em um cluster Kubernetes habilitado para Azure Arc. Para saber mais, consulte Serviço de Aplicativo, Funções e Aplicativos Lógicos no Azure Arc. Este cenário suporta apenas aplicações funcionais em execução no Linux.

Nota

O suporte para executar funções em um cluster Kubernetes habilitado para Azure Arc está atualmente em visualização.

Atualmente, não há suporte para a publicação de projetos de função do PowerShell em clusters Kubernetes habilitados para Azure Arc. Se você precisar implantar funções do PowerShell em clusters Kubernetes habilitados para Azure Arc, crie seu aplicativo de função em um contêiner.

Se você precisar personalizar o contêiner no qual seu aplicativo de função é executado, consulte Criar suas primeiras funções em contêiner no Azure Arc (visualização).

Pré-requisitos

No computador local:

Instalar as Ferramentas de Núcleo de Funções do Azure

A maneira recomendada de instalar o Core Tools depende do sistema operacional do seu computador de desenvolvimento local.

As etapas a seguir usam um instalador do Windows (MSI) para instalar o Core Tools v4.x. Para obter mais informações sobre outros instaladores baseados em pacotes, consulte o Leiame das Ferramentas Principais.

Transfira e execute o instalador das Ferramentas Principais, com base na sua versão do Windows:

Se você usou anteriormente o instalador do Windows (MSI) para instalar o Core Tools no Windows, você deve desinstalar a versão antiga de Adicionar remover programas antes de instalar a versão mais recente.

Criar um ambiente Kubernetes do Serviço de Aplicativo

Antes de começar, você deve criar um ambiente Kubernetes do Serviço de Aplicativo para um cluster Kubernetes habilitado para Azure Arc.

Nota

Ao criar o ambiente, certifique-se de anotar o nome do local personalizado e o nome do grupo de recursos que contém o local personalizado. Você pode usá-los para encontrar a ID de local personalizada, que você precisará ao criar seu aplicativo de função no ambiente.

Se você não criou o ambiente, verifique com o administrador do cluster.

Adicionar extensões da CLI do Azure

Inicie o ambiente Bash no Azure Cloud Shell.

Como esses comandos da CLI ainda não fazem parte do conjunto principal da CLI, adicione-os com os seguintes comandos:

az extension add --upgrade --yes --name customlocation
az extension remove --name appservice-kube
az extension add --upgrade --yes --name appservice-kube

Criar o projeto de função local

No Azure Functions, um projeto de função é a unidade de implantação e execução de uma ou mais funções individuais que respondem a um gatilho específico. Todas as funções em um projeto compartilham as mesmas configurações locais e de hospedagem. Nesta seção, você cria um projeto de função que contém uma única função.

  1. Execute o func init comando, da seguinte forma, para criar um projeto de funções em uma pasta chamada LocalFunctionProj com o tempo de execução especificado:

    func init LocalFunctionProj --dotnet
    
  2. Navegue até a pasta do projeto:

    cd LocalFunctionProj
    

    Esta pasta contém vários arquivos para o projeto, incluindo arquivos de configuração chamados local.settings.json e host.json. Por padrão, o arquivo local.settings.json é excluído do controle do código-fonte no arquivo .gitignore . Essa exclusão ocorre porque o arquivo pode conter segredos baixados do Azure.

  3. Adicione uma função ao seu projeto usando o seguinte comando, onde o --name argumento é o nome exclusivo da sua função (HttpExample) e o --template argumento especifica o gatilho da função (HTTP).

    func new --name HttpExample --template "HTTP trigger" --authlevel "anonymous"
    

Executar a função localmente

  1. Execute sua função iniciando o host de tempo de execução local do Azure Functions a partir da pasta LocalFunctionProj .

    func start
    

    No final da saída, as seguintes linhas devem aparecer:

    Screenshot of terminal window output when running function locally.

    Nota

    Se HttpExample não aparecer como mostrado acima, você provavelmente iniciou o host de fora da pasta raiz do projeto. Nesse caso, use Ctrl+C para parar o host, vá para a pasta raiz do projeto e execute o comando anterior novamente.

  2. Copie o URL da sua função HTTP desta saída para um navegador e anexe a cadeia de caracteres ?name=<YOUR_NAME>de consulta, tornando o URL completo como http://localhost:7071/api/HttpExample?name=Functions. O navegador deve exibir uma mensagem de resposta que ecoe o valor da cadeia de caracteres de consulta. O terminal no qual você iniciou seu projeto também mostra a saída de log à medida que você faz solicitações.

  3. Quando terminar, pressione Ctrl + C e digite y para parar o host de funções.

Obter a localização personalizada

Para poder criar um aplicativo de função em um local personalizado, você precisará obter informações sobre o ambiente.

Obtenha as seguintes informações sobre o local personalizado do administrador do cluster (consulte Criar um local personalizado).

customLocationGroup="<resource-group-containing-custom-location>"
customLocationName="<name-of-custom-location>"

Obtenha o ID de local personalizado para a próxima etapa.

customLocationId=$(az customlocation show \
    --resource-group $customLocationGroup \
    --name $customLocationName \
    --query id \
    --output tsv)

Criar recursos do Azure

Antes de implantar seu código de função em seu novo ambiente Kubernetes do Serviço de Aplicativo, você precisa criar mais dois recursos:

  • Uma conta de armazenamento. Embora este artigo crie uma conta de armazenamento, em alguns casos uma conta de armazenamento pode não ser necessária. Para obter mais informações, consulte Clusters habilitados para Arco do Azure no artigo de considerações sobre armazenamento.
  • Um aplicativo de função, que fornece o contexto para executar seu código de função. O aplicativo de função é executado no ambiente Kubernetes do Serviço de Aplicativo e mapeia para seu projeto de função local. Uma aplicação de funções permite-lhe agrupar funções como unidades lógicas para uma gestão, implementação e partilha de recursos mais fácil.

Nota

Os aplicativos de função são executados em um ambiente Kubernetes do Serviço de Aplicativo em um plano Dedicado (Serviço de Aplicativo). Quando você cria seu aplicativo de função sem um plano existente, o plano correto é criado para você.

Criar conta de armazenamento

Use o comando az storage account create para criar uma conta de armazenamento de uso geral em seu grupo de recursos e região:

az storage account create --name <STORAGE_NAME> --location westeurope --resource-group myResourceGroup --sku Standard_LRS

Nota

Em alguns casos, uma conta de armazenamento pode não ser necessária. Para obter mais informações, consulte Clusters habilitados para Arco do Azure no artigo de considerações sobre armazenamento.

No exemplo anterior, substitua <STORAGE_NAME> por um nome apropriado para você e exclusivo no Armazenamento do Azure. Os nomes devem conter de três a 24 caracteres, números e letras minúsculas apenas. Standard_LRS especifica uma conta de uso geral, que é suportada pelo Functions. O --location valor é uma região padrão do Azure.

Criar a aplicação de funções

Execute o comando az functionapp create para criar um novo aplicativo de função no ambiente.

az functionapp create --resource-group MyResourceGroup --name <APP_NAME> --custom-location <CUSTOM_LOCATION_ID> --storage-account <STORAGE_NAME> --functions-version 4 --runtime dotnet 

Neste exemplo, substitua <CUSTOM_LOCATION_ID> pela ID do local personalizado que você determinou para o ambiente Kubernetes do Serviço de Aplicativo. Além disso, substitua <STORAGE_NAME> pelo nome da conta que você usou na etapa anterior e substitua <APP_NAME> por um nome globalmente exclusivo apropriado para você.

Implantar o projeto de função no Azure

Depois de criar com êxito seu aplicativo de função no Azure, você está pronto para implantar seu projeto de funções locais usando o comando func azure functionapp publishing .

No exemplo a seguir, substitua <APP_NAME> pelo nome do seu aplicativo.

func azure functionapp publish <APP_NAME>

O comando publish mostra resultados semelhantes à seguinte saída (truncada para simplificar):

...

Getting site publishing info...
Creating archive for current directory...
Performing remote build for functions project.

...

Deployment successful.
Remote build succeeded!
Syncing triggers...
Functions in msdocs-azurefunctions-qs:
    HttpExample - [httpTrigger]
        Invoke url: https://msdocs-azurefunctions-qs.azurewebsites.net/api/httpexample

Como pode levar algum tempo para que uma implantação completa seja concluída em um cluster Kubernetes habilitado para Azure Arc, convém executar novamente o seguinte comando para verificar suas funções publicadas:

func azure functionapp list-functions

Invoque a função no Azure

Como sua função usa um gatilho HTTP, você a invoca fazendo uma solicitação HTTP para sua URL no navegador ou com uma ferramenta como curl.

Copie o URL Invoke completo mostrado na saída do comando publish em uma barra de endereço do navegador, anexando o parâmetro ?name=Functionsquery . O navegador deve exibir uma saída semelhante à de quando você executou a função localmente.

The output of the function run on Azure in a browser

Próximos passos

Agora que você tem seu aplicativo de função em execução em um contêiner em um ambiente Kubernetes do Serviço de Aplicativo habilitado para Azure Arc, você pode conectá-lo ao Armazenamento do Azure adicionando uma associação de saída de Armazenamento de Fila.