Udostępnij za pośrednictwem


Samouczek: wdrażanie w usłudze Azure Functions przy użyciu narzędzia Jenkins

Ważne

Podczas gdy wiele usług platformy Azure ma wtyczki Jenkins, większość z tych wtyczek zakończyła wsparcie od 29 lutego 2024 r. Interfejs wiersza polecenia platformy Azure to obecnie zalecany sposób integracji serwera Jenkins z usługami platformy Azure. Aby uzyskać więcej informacji, zapoznaj się z artykułem wtyczki serwera Jenkins dla usługi Azure.

Azure Functions to bezserwerowa usługa obliczeniowa. Za pomocą usługi Azure Functions można uruchamiać kod na żądanie bez aprowizacji infrastruktury ani zarządzania nią. W tym samouczku pokazano, jak wdrożyć funkcję Java w usłudze Azure Functions przy użyciu wtyczki usługi Azure Functions.

Wymagania wstępne

Wyświetlanie kodu źródłowego

Kod źródłowy używany na potrzeby tego samouczka znajduje się w repozytorium GitHub programu Visual Studio China.

Tworzenie funkcji Języka Java

Aby utworzyć funkcję Java za pomocą stosu uruchomieniowego Java, skorzystaj z portalu Azure portal lub interfejsu wiersza polecenia platformy Azure.

W poniższych krokach pokazano, jak utworzyć funkcję Java przy użyciu interfejsu wiersza polecenia platformy Azure:

  1. Utwórz grupę zasobów, zastępując <symbol zastępczy resource_group> nazwą grupy zasobów.

    az group create --name <resource_group> --location eastus
    
  2. Utwórz konto usługi Azure Storage, zastępując symbole zastępcze odpowiednimi wartościami.

    az storage account create --name <storage_account> --location eastus --resource-group <resource_group> --sku Standard_LRS    
    
  3. Utwórz aplikację funkcji testowej, zastępując symbole zastępcze odpowiednimi wartościami.

    az functionapp create --resource-group <resource_group> --runtime java --consumption-plan-location eastus --name <function_app> --storage-account <storage_account> --functions-version 2
    

Przygotowywanie serwera Jenkins

W poniższych krokach wyjaśniono, jak przygotować serwer Jenkins:

  1. Wdrażanie serwera Jenkins na platformie Azure. Jeśli nie masz jeszcze zainstalowanego wystąpienia serwera Jenkins, artykuł Tworzenie serwera Jenkins na platformie Azure przeprowadzi Cię przez ten proces.

  2. Zaloguj się do instancji Jenkins za pomocą SSH.

  3. W wystąpieniu Jenkins zainstaluj Az CLI w wersji 2.0.67 lub nowszej.

  4. Zainstaluj narzędzie maven przy użyciu następującego polecenia:

    sudo apt install -y maven
    
  5. W wystąpieniu serwera Jenkins zainstaluj narzędzia Azure Functions Core Tools , wydając następujące polecenia w wierszu polecenia terminalu:

    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-3
    
  6. Jenkins potrzebuje jednostki usługi platformy Azure do uwierzytelniania i uzyskiwania dostępu do zasobów platformy Azure. Aby uzyskać instrukcje krok po kroku, zapoznaj się z artykułem Wdrażanie w usłudze Azure App Service .

  7. Upewnij się, że wtyczka Credentials jest zainstalowana.

    1. Z menu wybierz pozycję Zarządzaj usługą Jenkins.

    2. W obszarze Konfiguracja systemu wybierz pozycję Zarządzaj wtyczką.

    3. Wybierz kartę Zainstalowane.

    4. W polu filtru wprowadź wartość credentials.

    5. Sprawdź, czy wtyczka Credentials jest zainstalowana. Jeśli nie, musisz zainstalować go z poziomu karty Dostępne .

    Wtyczka Credentials musi być zainstalowana.

  8. Z menu wybierz pozycję Zarządzaj usługą Jenkins.

  9. W obszarze Zabezpieczenia wybierz pozycję Zarządzaj poświadczeniami.

  10. W obszarze Poświadczenia wybierz pozycję (globalne).

  11. Z menu wybierz pozycję Dodaj poświadczenia.

  12. Wprowadź następujące wartości dla pryncypała usługi platformy Microsoft Azure:

    • Rodzaj: wybierz wartość: Nazwa użytkownika z hasłem.
    • Nazwa użytkownika: określ appId utworzoną jednostkę usługi.
    • Hasło: określ password (tajne hasło) głównego obiektu usługi.
    • Identyfikator: określ identyfikator poświadczeń, taki jak azuresp.
  13. Kliknij przycisk OK.

Sfokuj przykładowe repozytorium GitHub

  1. Zaloguj się do repozytorium GitHub dla dziwnej lub nawet przykładowej aplikacji.

  2. W prawym górnym rogu w serwisie GitHub wybierz pozycję Fork.

  3. Postępuj zgodnie z instrukcjami, aby wybrać konto GitHub i zakończyć tworzenie forka.

Tworzenie potoku Jenkins

W tej sekcji utworzysz Jenkins Pipeline.

  1. Na pulpicie nawigacyjnym usługi Jenkins utwórz potok.

  2. Włącz funkcję przygotowania środowiska do uruchomienia.

  3. W sekcji Pipeline-Definition> (Definicja potoku ) wybierz pozycję Pipeline script from SCM (Skrypt potoku z narzędzia SCM).

  4. Wprowadź adres URL rozwidlenia usługi GitHub i ścieżkę skryptu ("doc/resources/jenkins/JenkinsFile"), aby użyć ich w przykładzie 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'
             }
         }
     }
    

Kompilowanie i wdrażanie

Nadszedł czas na uruchomienie zadania narzędzia Jenkins.

  1. Najpierw uzyskaj klucz autoryzacji za pomocą instrukcji w artykule Wyzwalacze HTTP i powiązania usługi Azure Functions .

  2. W przeglądarce wprowadź adres URL aplikacji. Zastąp symbole zastępcze odpowiednimi wartościami i określ wartość liczbową dla <input_number> jako dane wejściowe dla funkcji Języka Java.

    https://<function_app>.azurewebsites.net/api/HttpTrigger-Java?code=<authorization_key>&number=<input_number>
    
  3. Zobaczysz wyniki podobne do następujących przykładowych danych wyjściowych (gdzie liczba nieparzysta — 365 — została użyta jako test):

    The number 365 is Odd.
    

Uprzątnij zasoby

Jeśli nie zamierzasz nadal korzystać z tej aplikacji, usuń utworzone zasoby, wykonując następujący krok:

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

Dalsze kroki