Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Importante
Embora muitos serviços do Azure tenham plug-ins Jenkins, a maioria desses plug-ins encerrou o suporte a partir de 29 de fevereiro de 2024. A CLI do Azure é a maneira atualmente recomendada de integrar o Jenkins aos serviços do Azure. Para obter mais informações, consulte o artigo Jenkins plug-ins for 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 infraestrutura. Este tutorial mostra como implantar uma função Java no Azure Functions usando o plug-in do Azure Functions.
Pré-requisitos
- Subscrição do Azure: se não tem uma subscrição 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.
Ver 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 em Java com o stack de execução em Java, use o portal do Azure ou a Azure CLI.
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 marcadores de posição pelos valores apropriados.
az storage account create --name <storage_account> --location eastus --resource-group <resource_group> --sku Standard_LRSCrie a aplicação de função de teste, substituindo os marcadores de posição 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:
Implante um servidor Jenkins no Azure. Se ainda não tiver uma instância do servidor Jenkins instalada, o artigo Criar um servidor Jenkins no Azure orienta-o ao longo do processo.
Entre na instância do Jenkins com SSH.
Na instância Jenkins, instale Az CLI, versão 2.0.67 ou superior.
Instale o maven usando o seguinte comando:
sudo apt install -y mavenNa instância 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-3Jenkins precisa de um principal de serviço do Azure para autenticar e aceder aos recursos do Azure. Consulte Implantar no Serviço de Aplicativo do Azure para obter instruções passo a passo.
Certifique-se de que o plug-in de Credenciais está instalado.
No menu, selecione Gerenciar Jenkins.
Em Configuração do sistema, selecione Gerenciar plug-in.
Selecione a guia Instalado.
No campo de filtro , digite
credentials.Verifique se o plug-in de Credenciais está instalado. Caso contrário, terá de instalá-lo a partir do separador Disponível .
No menu, selecione Gerenciar Jenkins.
Em Segurança, selecione Gerir Credenciais.
Em Credenciais, selecione (global).
No menu, selecione Adicionar credenciais.
Insira os seguintes valores para os seus principais serviços do Microsoft Azure:
- Tipo: Selecione o valor: Nome de usuário com senha.
-
Nome de usuário: especifique a
appIdentidade de serviço criada. -
Palavra-passe: especifique o
password(segredo) do principal do serviço. -
ID: especifique o identificador de credencial, como
azuresp.
Selecione OK.
Fork o repositório GitHub de exemplo
Faça login no repositório GitHub para o aplicativo de amostra ímpar ou par.
No canto superior direito do GitHub, escolha Fork.
Siga as instruções para selecionar a sua conta do GitHub e concluir o fork.
Criar uma pipeline em Jenkins
Nesta seção, você cria o Jenkins Pipeline.
No dashboard do Jenkins, crie um "Pipeline".
Habilite Preparar um ambiente para a execução.
Na seção Pipeline->Definição, selecione Script de Pipeline do SCM.
Insira o URL e o caminho do script da bifurcação do GitHub ("doc/resources/jenkins/JenkinsFile") para usar no exemplo do 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 implantar
Agora é hora de executar o trabalho de Jenkins.
Primeiro, obtenha a chave de autorização por meio das instruções no artigo Gatilhos e ligações HTTP do Azure Functions .
No navegador, insira o 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 ao seguinte exemplo de saída (onde um número ímpar - 365 - foi usado como teste):
The number 365 is Odd.
Limpeza de recursos
Se você não vai continuar a usar este aplicativo, exclua os recursos que você criou com a seguinte etapa:
az group delete -y --no-wait -n <resource_group>