Eventos
17 de mar., 21 - 21 de mar., 10
Junte-se à série de encontros para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registrar agoraNão há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
Neste artigo, você usará ferramentas de linha de comando para criar uma função do PowerShell que responde a solicitações HTTP. Após testar o código localmente, implante-o no ambiente sem servidor do Azure Functions.
A realização deste início rápido gera um pequeno custo de alguns centavos de dólar ou menos em sua conta do Azure.
Há também uma versão baseada no Visual Studio Code deste artigo.
Antes de começar, você deverá ter o seguinte:
Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
Uma das seguintes ferramentas para a criação de recursos do Azure:
O módulo PowerShell Az do Azure, versão 9.4.0 ou posterior.
CLI do Azure, versão 2.4 ou posterior.
A maneira recomendada de instalar o Core Tools depende do sistema operacional do computador de desenvolvimento local.
As etapas a seguir usma APT para instalar as ferramentas principais em sua distribuição Ubuntu/Debian Linux. Para outras distribuições do Linux, confira o arquivo Leiame das ferramentas principais.
Instale a chave GPG do repositório de pacotes da Microsoft para validar a integridade do pacote:
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
Configure a lista de fontes de APT antes de fazer uma atualização de APT.
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-$(lsb_release -cs 2>/dev/null)-prod $(lsb_release -cs 2>/dev/null) main" > /etc/apt/sources.list.d/dotnetdev.list'
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/debian/$(lsb_release -rs 2>/dev/null | cut -d'.' -f 1)/prod $(lsb_release -cs 2>/dev/null) main" > /etc/apt/sources.list.d/dotnetdev.list'
Verifique se o arquivo /etc/apt/sources.list.d/dotnetdev.list
contém uma das cadeias de cadeia de caracteres de versões apropriadas do Linux na tabela a seguir:
Distribuição do Linux | Versão |
---|---|
Debian 12 | bookworm |
Debian 11 | bullseye |
Debian 10 | buster |
Debian 9 | stretch |
Ubuntu 22.04 | jammy |
Ubuntu 20.04 | focal |
Ubuntu 19.04 | disco |
Ubuntu 18.10 | cosmic |
Ubuntu 18.04 | bionic |
Ubuntu 17.04 | zesty |
Ubuntu 16.04/Linux Mint 18 | xenial |
Inicie a atualização da fonte de APT:
sudo apt-get update
Instale o pacote de ferramentas principais:
sudo apt-get install azure-functions-core-tools-4
No Azure Functions, um projeto de função é um contêiner para uma ou mais funções individuais que respondem, cada uma, a um gatilho específico. Todas as funções em um projeto compartilham as configurações locais e de hospedagem. Nesta seção, você cria um projeto de função que contém apenas uma função.
Execute o comando func init
da seguinte maneira para criar um projeto de funções em uma pasta chamada LocalFunctionProj com o runtime especificado:
func init LocalFunctionProj --powershell
Navegue até a pasta do projeto:
cd LocalFunctionProj
Essa pasta contém vários arquivos do projeto, incluindo arquivos de configuração chamados local.settings.json e host.json. Como local.settings.json pode conter segredos baixados do Azure, o arquivo é excluído do controle do código-fonte por padrão no arquivo .gitignore.
Adicione uma função ao projeto usando o comando a seguir, em que o argumento --name
é o nome exclusivo da função (HttpExample) e o argumento --template
especifica o gatilho da função (HTTP).
func new --name HttpExample --template "HTTP trigger" --authlevel "anonymous"
func new
cria uma subpasta correspondente ao nome da função que contém um arquivo de código apropriado para a linguagem escolhida do projeto, bem como um arquivo de configuração chamado function.json.
Se preferir, você poderá ir diretamente para Executar a função localmente e examinar o conteúdo do arquivo mais tarde.
run.ps1 contém um script de função que é disparado de acordo com a configuração em function.json.
using namespace System.Net
# Input bindings are passed in via param block.
param($Request, $TriggerMetadata)
# Write to the Azure Functions log stream.
Write-Host "PowerShell HTTP trigger function processed a request."
# Interact with query parameters or the body of the request.
$name = $Request.Query.Name
if (-not $name) {
$name = $Request.Body.Name
}
$body = "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response."
if ($name) {
$body = "Hello, $name. This HTTP triggered function executed successfully."
}
# Associate values to output bindings by calling 'Push-OutputBinding'.
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $body
})
Para um gatilho HTTP, a função recebe dados de solicitação transmitidos para o parâmetro $Request
definido em function.json. O objeto de retorno, definido como Response
em function.json, é transmitido para o cmdlet Push-OutputBinding
como a resposta.
function.json é um arquivo de configuração que define as bindings
de entrada e de saída da função, incluindo o tipo de gatilho.
{
"bindings": [
{
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "Request",
"methods": [
"get",
"post"
]
},
{
"type": "http",
"direction": "out",
"name": "Response"
}
]
}
Cada associação exige uma direção, um tipo e um nome exclusivo. O gatilho HTTP tem uma associação de entrada do tipo httpTrigger
e uma associação de saída do tipo http
.
Execute a função iniciando o host de runtime local do Azure Functions na pasta LocalFunctionProj.
func start
Perto do fim da saída, as seguintes linhas precisam ser exibidas:
Observação
Se HttpExample não aparece conforme mostrado acima, é provável que você tenha iniciado o host fora da pasta raiz do projeto. Nesse caso, use CTRL+C para interromper o host, procure a pasta raiz do projeto e execute o comando anterior novamente.
Copie a URL da função HTTP dessa saída para um navegador e acrescente a cadeia de caracteres de consulta ?name=<YOUR_NAME>
, fazendo com que a URL completa seja http://localhost:7071/api/HttpExample?name=Functions
. O navegador exibirá uma mensagem de resposta que retorna o valor da cadeia de consulta. O terminal em que você iniciou seu projeto também mostra a saída do log conforme você faz solicitações.
Quando terminar, pressione CTRL + C e digite y
para interromper o host de funções.
Antes de poder implantar o código da função no Azure, você precisa criar três recursos:
Use os comandos a seguir para criar esses itens. Tanto a CLI do Azure quanto o PowerShell são compatíveis.
Se você ainda não tiver feito isso, entre no Azure:
az login
O comando az login conecta você à conta do Azure.
Crie um grupo de recursos chamado AzureFunctionsQuickstart-rg
na região de sua escolha:
az group create --name AzureFunctionsQuickstart-rg --location <REGION>
O comando az group create cria um grupo de recursos. No comando acima, substitua <REGION>
por uma região perto de você, usando um código de região disponível retornado do comando <REGION>
.
Crie uma conta de armazenamento para uso geral no grupo de recursos e na região:
az storage account create --name <STORAGE_NAME> --location <REGION> --resource-group AzureFunctionsQuickstart-rg --sku Standard_LRS --allow-blob-public-access false
O comando az storage account create cria a conta de armazenamento.
No exemplo anterior, substitua <STORAGE_NAME>
por um nome que seja apropriado para você e exclusivo no Armazenamento do Azure. Os nomes devem conter de 3 a 24 caracteres e podem conter somente números e letras minúsculas. Standard_LRS
especifica uma conta de uso geral, que é compatível com o Functions.
Importante
A conta de armazenamento é usada para armazenar dados importantes do aplicativo, às vezes incluindo o próprio código do aplicativo. Você deve limitar o acesso de outros aplicativos e usuários à conta de armazenamento.
Criar o aplicativo de funções no Azure:
az functionapp create --resource-group AzureFunctionsQuickstart-rg --consumption-plan-location <REGION> --runtime powershell --functions-version 4 --name <APP_NAME> --storage-account <STORAGE_NAME>
O comando az functionapp create cria o aplicativo de funções no Azure.
No exemplo anterior, substitua <STORAGE_NAME>
pelo nome da conta usada na etapa anterior e substitua <APP_NAME>
por um nome globalmente exclusivo que seja apropriado para você. O <APP_NAME>
também é o domínio do DNS padrão para o aplicativo de funções.
Este comando cria um aplicativo de funções que executa o runtime da linguagem especificada no Plano de Consumo do Azure Functions, que é gratuito para o uso que você fará aqui. O comando também provisiona uma instância associada do Azure Application Insights no mesmo grupo de recursos, com a qual você pode monitorar seu aplicativo de funções e exibir logs. Para saber mais, consulte Monitorar Azure Functions. A instância não gera nenhum custo até você ativá-la.
Depois de criar com êxito o seu aplicativo de funções no Azure, agora você estará pronto para implantar seu projeto de funções local usando o comando func azure functionapp publish
.
Na pasta raiz do projeto, execute este comando func azure functionapp publish
:
func azure functionapp publish <APP_NAME>
Nesse exemplo, substitua <APP_NAME>
pelo nome de seu aplicativo. Uma implantação bem-sucedida 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 a função usa um gatilho HTTP, você a invoca fazendo uma solicitação HTTP para sua URL no navegador ou usando uma ferramenta como curl.
Copie a URL de Invocação completa mostrada na saída do comando de publicação na barra de endereços de um navegador, acrescentando o parâmetro de consulta ?name=Functions
. O navegador deverá exibir uma saída semelhante à que foi exibida quando você executou a função localmente.
Execute o seguinte comando para ver os logs de streaming quase em tempo real:
func azure functionapp logstream <APP_NAME>
Em uma janela de terminal separada ou no navegador, chame a função remota novamente. Um log detalhado da execução da função no Azure é mostrado no terminal.
Se você prosseguir para a próxima etapa e adicionar uma associação de saída da fila do Armazenamento do Azure, mantenha todos os recursos, pois você se baseará no que já fez.
Caso contrário, use o comando a seguir para excluir o grupo de recursos e todos os recursos contidos nele para evitar custos adicionais.
az group delete --name AzureFunctionsQuickstart-rg
Eventos
17 de mar., 21 - 21 de mar., 10
Junte-se à série de encontros para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registrar agoraTreinamento
Roteiro de aprendizagem
Roteiro de aprendizagem "Criar aplicativos sem servidor" - Training
Neste roteiro de aprendizagem, descubra Azure Functions que criam sistemas de computação sob demanda controlados por eventos, usando a lógica do lado do servidor para criar arquiteturas sem servidor.
Certificação
Microsoft Certified: Azure Developer Associate - Certifications
Crie soluções de ponta a ponta no Microsoft Azure para criar Funções do Azure, implementar e gerenciar aplicativos Web, desenvolver soluções utilizando o Armazenamento do Microsoft Azure e muito mais.