Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
Embora muitos serviços do Azure tenham plug-ins Jenkins, a maioria desses plug-ins encerrou o suporte em 29 de fevereiro de 2024. A CLI do Azure é a maneira recomendada no momento de integrar o Jenkins aos serviços do Azure. Para obter mais informações, consulte o artigo plug-ins do Jenkins para o Azure.
O Azure Functions é um serviço de computação sem servidor. Usando o Azure Functions, você pode executar código sob demanda sem provisionar ou gerenciar a infraestrutura. Este tutorial mostra como implantar uma função Java no Azure Functions usando o plug-in do Azure Functions.
Pré-requisitos
- Assinatura do Azure: Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
- Servidor Jenkins: se você não tiver um servidor Jenkins instalado, consulte o artigo Criar um servidor Jenkins no Azure.
Exibir o código-fonte
O código-fonte usado para este tutorial está localizado no repositório GitHub do Visual Studio China.
Criar uma função Java
Para criar uma função Java com a pilha de execução do Java, use o portal do Azure ou a CLI do Azure.
As etapas a seguir mostram como criar uma função Java usando a CLI do Azure:
Crie um grupo de recursos, substituindo o marcador <resource_group> pelo nome do seu grupo de recursos.
az group create --name <resource_group> --location eastusCrie uma conta de armazenamento do Azure, substituindo os espaços reservados pelos valores apropriados.
az storage account create --name <storage_account> --location eastus --resource-group <resource_group> --sku Standard_LRSCrie o aplicativo de funções de teste, substituindo os marcadores pelos valores apropriados.
az functionapp create --resource-group <resource_group> --runtime java --consumption-plan-location eastus --name <function_app> --storage-account <storage_account> --functions-version 2
Preparar o servidor Jenkins
As etapas a seguir explicam como preparar o servidor Jenkins:
Implantar um servidor Jenkins no Azure. Se você ainda não tiver uma instância do servidor Jenkins instalada, o artigo Criar um servidor Jenkins no Azure orientará você durante o processo.
Entre na instância do Jenkins com SSH.
Na instância do Jenkins, instale a CLI do Az, versão 2.0.67 ou superior.
Instale o maven usando o seguinte comando:
sudo apt install -y mavenNa instância do Jenkins, instale as Ferramentas Principais do Azure Functions emitindo os seguintes comandos em um prompt de terminal:
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-$(lsb_release -cs)-prod $(lsb_release -cs) main" > /etc/apt/sources.list.d/dotnetdev.list' cat /etc/apt/sources.list.d/dotnetdev.list sudo apt-get update sudo apt-get install azure-functions-core-tools-3O Jenkins precisa de um principal de serviço do Azure para autenticar e acessar recursos do Azure. Consulte a Implantação no Serviço de Aplicativo do Azure para obter instruções passo a passo.
Verifique se o plug-in de Credenciais está instalado.
No menu, selecione Gerenciar Jenkins.
Em Configuração do Sistema, selecione Gerenciar plug-in.
Selecione a aba Instalados.
No campo filtro , insira
credentials.Verifique se o plug-in de credenciais está instalado. Caso contrário, você precisará instalá-lo na guia Disponível .
No menu, selecione Gerenciar Jenkins.
Em Segurança, selecione Gerenciar Credenciais.
Em Credenciais, selecione (global).
No menu, selecione Adicionar Credenciais.
Insira os seguintes valores para sua entidade de serviço do Microsoft Azure:
- Tipo: selecione o valor: nome de usuário com senha.
-
Nome de usuário: especifique o
appIddo principal de serviço criado. -
Senha: especifique o
password(segredo) do principal do serviço. -
ID: especifique o identificador de credencial, como
azuresp.
Selecione OK.
Faça um fork do repositório de amostra no GitHub
Faça login no repositório GitHub para o aplicativo de exemplo de ímpar ou par.
No canto superior direito do GitHub, escolha Fork.
Siga as instruções para selecionar sua conta do GitHub e finalizar o fork.
Criar um Pipeline do Jenkins
Nesta seção, você criará o Pipeline do Jenkins.
No painel do Jenkins, crie um Pipeline.
Habilite Preparar um ambiente para a execução.
Na seção Pipeline-Definition>, selecione o script pipeline do SCM.
Insira a URL do fork do GitHub e o caminho do script ("doc/resources/jenkins/JenkinsFile") para usar no exemplo jenkinsFile.
node { withEnv(['AZURE_SUBSCRIPTION_ID=99999999-9999-9999-9999-999999999999', 'AZURE_TENANT_ID=99999999-9999-9999-9999-999999999999']) { stage('Init') { cleanWs() checkout scm } stage('Build') { sh 'mvn clean package' } stage('Publish') { def RESOURCE_GROUP = '<resource_group>' def FUNC_NAME = '<function_app>' // login Azure withCredentials([usernamePassword(credentialsId: 'azuresp', passwordVariable: 'AZURE_CLIENT_SECRET', usernameVariable: 'AZURE_CLIENT_ID')]) { sh ''' az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET -t $AZURE_TENANT_ID az account set -s $AZURE_SUBSCRIPTION_ID ''' } sh 'cd $PWD/target/azure-functions/odd-or-even-function-sample && zip -r ../../../archive.zip ./* && cd -' sh "az functionapp deployment source config-zip -g $RESOURCE_GROUP -n $FUNC_NAME --src archive.zip" sh 'az logout' } } }
Criar e implementar
Agora é hora de executar a tarefa Jenkins.
Primeiro, obtenha a chave de autorização por meio das instruções no artigo de associações e gatilhos HTTP do Azure Functions .
No navegador, insira a URL do aplicativo. Substitua os espaços reservados pelos valores apropriados e especifique um valor numérico para <input_number> como entrada para a função Java.
https://<function_app>.azurewebsites.net/api/HttpTrigger-Java?code=<authorization_key>&number=<input_number>Você verá resultados semelhantes à saída de exemplo a seguir (em que um número ímpar - 365 - foi usado como um teste):
The number 365 is Odd.
Limpar os recursos
Se você não quiser continuar a usar este aplicativo, exclua os recursos criados com a seguinte etapa:
az group delete -y --no-wait -n <resource_group>