Wdrażanie do Azure Functions przy użyciu wtyczki Azure Functions JenkinsDeploy to Azure Functions using the Jenkins Azure Functions plug-in

Azure Functions to usługa obliczeniowa niewymagająca użycia serwera.Azure Functions is a serverless compute service. Dzięki usłudze Azure Functions możesz uruchamiać kod na żądanie bez konieczności aprowizowania infrastruktury lub zarządzania nią.Using Azure Functions, you can run code on-demand without provisioning or managing infrastructure. W tym samouczku pokazano, jak wdrożyć funkcję języka Java w celu Azure Functions przy użyciu wtyczki Azure Functions.This tutorial shows how to deploy a Java function to Azure Functions using the Azure Functions plug-in.

Wymagania wstępnePrerequisites

Tworzenie funkcji w języku JavaCreate a Java function

Funkcję w języku Java z użyciem stosu środowiska uruchomieniowego w języku Java można utworzyć w witrynie Azure Portal lub za pomocą interfejsu wiersza polecenia platformy Azure.To create a Java function with the Java runtime stack, use either the Azure portal or the Azure CLI.

W poniższych krokach pokazano, w jaki sposób utworzyć funkcję w języku Java przy użyciu interfejsu wiersza polecenia platformy Azure:The following steps show how to create a Java function using the Azure CLI:

  1. Utwórz grupę zasobów, zastępując symbol zastępczy <grupa_zasobów> nazwą grupy zasobów.Create a resource group, replacing the <resource_group> placeholder with your resource group name.

    az group create --name <resource_group> --location eastus
    
  2. Utwórz konto magazynu platformy Azure, zastępując symbole zastępcze odpowiednimi wartościami.Create an Azure storage account, replacing the placeholders with the appropriate values.

    az storage account create --name <storage_account> --location eastus --resource-group <resource_group> --sku Standard_LRS    
    
  3. Utwórz testową aplikację funkcji, zastępując symbole zastępcze odpowiednimi wartościami.Create the test function app, replacing the placeholders with the appropriate values.

    az functionapp create --resource-group <resource_group> --consumption-plan-location eastus --name <function_app> --storage-account <storage_account>
    

Przygotowanie serwera JenkinsPrepare Jenkins server

W poniższych krokach wyjaśniono, jak przygotować serwer Jenkins:The following steps explain how to prepare the Jenkins server:

  1. Wdróż serwer Jenkins na platformie Azure.Deploy a Jenkins server on Azure. Jeśli nie masz jeszcze zainstalowanego wystąpienia serwera Jenkins, ten proces opisano w artykule Tworzenie serwera Jenkins na platformie Azure.If you don't already have an instance of the Jenkins server installed, the article, Create a Jenkins server on Azure guides you through the process.

  2. Zaloguj się do wystąpienia serwera Jenkins przy użyciu protokołu SSH.Sign in to the Jenkins instance with SSH.

  3. W wystąpieniu serwera Jenkins zainstaluj narzędzie maven za pomocą następującego polecenia:On the Jenkins instance, install maven using the following command:

    sudo apt install -y maven
    
  4. W wystąpieniu serwera Jenkins zainstaluj zestaw narzędzi Azure Functions Core Tools, wydając następujące polecenia po pojawieniu się monitu terminala:On the Jenkins instance, install the Azure Functions Core Tools by issuing the following commands at a terminal prompt:

    wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    sudo apt-get update
    sudo apt-get install azure-functions-core-tools
    
  5. Na pulpicie nawigacyjnym serwera Jenkins zainstaluj następujące wtyczki:In the Jenkins dashboard, install the following plugins:

    • Azure Functions wtyczkaAzure Functions Plug-in
    • Wtyczka EnvInjectEnvInject Plug-in
  6. Serwer Jenkins wymaga jednostki usługi platformy Azure w celu uwierzytelniania zasobów platformy Azure i uzyskania do nich dostępu.Jenkins needs an Azure service principal to authenticate and access Azure resources. Zapoznaj się z artykułem Deploy to Azure App Service (Wdrażanie w usłudze Azure App Service), aby uzyskać instrukcje krok po kroku.Refer to the Deploy to Azure App Service for step-by-step instructions.

  7. Na serwerze Jenkins dodaj poświadczenia jako typ „Microsoft Azure Service Principal” („Jednostka usługi Microsoft Azure”), korzystając z jednostki usługi platformy Azure.Using the Azure service principal, add a "Microsoft Azure Service Principal" credential type in Jenkins. Zapoznaj się samouczkiem Deploy to Azure App Service (Wdrażanie w usłudze Azure App Service).Refer to the Deploy to Azure App Service tutorial.

Rozwidlenie przykładowego repozytorium GitHubFork the sample GitHub repo

  1. Zaloguj się do repozytorium GitHub dla przykładowej aplikacji nieparzystej lubparzystej.Sign in to the GitHub repo for the odd or even sample app.

  2. W prawym górnym rogu ekranu usługi GitHub wybierz pozycję Fork (Utwórz rozwidlenie).In the upper-right corner in GitHub, choose Fork.

  3. Postępuj zgodnie z monitami, aby wybrać konto usługi GitHub i zakończyć tworzenie rozwidlenia.Follow the prompts to select your GitHub account and finish forking.

Tworzenie potoku serwera JenkinsCreate a Jenkins Pipeline

W tej sekcji utworzysz potok serwera Jenkins.In this section, you create the Jenkins Pipeline.

  1. Na pulpicie nawigacyjnym serwera Jenkins utwórz potok.In the Jenkins dashboard, create a Pipeline.

  2. Włącz ustawienie Prepare an environment for the run (Przygotuj środowisko dla uruchomienia).Enable Prepare an environment for the run.

  3. Dodaj następujące zmienne środowiskowe w polu Properties Content (Zawartość właściwości), zastępując symbole zastępcze odpowiednimi wartościami dla Twojego środowiska:Add the following environment variables in Properties Content, replacing the placeholders with the appropriate values for your environment:

    AZURE_CRED_ID=<service_principal_credential_id>
    RES_GROUP=<resource_group>
    FUNCTION_NAME=<function_name>
    
  4. W sekcji Pipeline->Definition (Potok > Definicja) wybierz pozycję Pipeline script from SCM (Skrypt potoku z narzędzia SCM).In the Pipeline->Definition section, select Pipeline script from SCM.

  5. Wprowadź adres URL i ścieżkę skryptu rozwidlenia usługi GitHub ("doc/Resources/Jenkins/fragmenty"), które mają być używane w przykładowym fragmenty.Enter your GitHub fork's URL and script path ("doc/resources/jenkins/JenkinsFile") to use in the JenkinsFile example.

    node {
     stage('Init') {
         checkout scm
         }
    
     stage('Build') {
         sh 'mvn clean package'
         }
    
     stage('Publish') {
         azureFunctionAppPublish appName: env.FUNCTION_NAME, 
                                 azureCredentialsId: env.AZURE_CRED_ID, 
                                 filePath: '**/*.json,**/*.jar,bin/*,HttpTrigger-Java/*', 
                                 resourceGroup: env.RES_GROUP, 
                                 sourceDirectory: 'target/azure-functions/odd-or-even-function-sample'
         }
     }
    

Tworzenie i wdrażanieBuild and deploy

Czas na uruchomienie zadania serwera Jenkins.It's now time to run the Jenkins job.

  1. Najpierw należy uzyskać klucz autoryzacji za pomocą instrukcji zawartych w artykule Azure Functions HTTP triggers and bindings (Wyzwalacze i powiązania protokołu HTTP w usłudze Azure Functions).First, obtain the authorization key via the instructions in the Azure Functions HTTP triggers and bindings article.

  2. W przeglądarce wprowadź adres URL aplikacji.In your browser, enter the app's URL. Zastąp symbole zastępcze odpowiednimi wartościami i określ wartość liczbową parametru <input_number> jako dane wejściowe dla funkcji w języku Java.Replace the placeholders with the appropriate values and specify a numeric value for <input_number> as input for the Java function.

    https://<function_app>.azurewebsites.net/api/HttpTrigger-Java?code=<authorization_key>&number=<input_number>
    
  3. Zostaną wyświetlone wyniki podobne do następujących przykładowych danych wyjściowych (w przykładzie użyto liczby nieparzystej, 365):You'll see results similar to the following example output (where an odd number - 365 - was used as a test):

    The number 365 is Odd.
    

Oczyszczanie zasobówClean up resources

Jeśli nie planujesz już korzystać z tej aplikacji, usuń utworzone zasoby, wykonując następujące czynności:If you're not going to continue to use this application, delete the resources you created with the following step:

az group delete -y --no-wait -n <resource_group>

Następne krokiNext steps

Aby dowiedzieć się więcej o usłudze Azure Functions, zobacz następujący zasób:To learn more about Azure Functions, see the following resource: