Aracılığıyla paylaş


Hızlı Başlangıç: Komut satırından Azure'da işlev oluşturma

Bu makalede, HTTP isteklerine yanıt veren bir işlev oluşturmak için yerel komut satırı araçlarını kullanırsınız. Kodunuzu yerel olarak doğruladıktan sonra Azure İşlevleri'nde sunucusuz flex consumption barındırma planına dağıtırsınız.

Bu hızlı başlangıcı tamamladığınızda Azure hesabınıza birkaç sentlik (ABD doları cinsinden) veya daha düşük bir ücret yansıtılır.

Makalenin üst kısmında tercih ettiğiniz geliştirme dilini seçtiğinizden emin olun.

Prerequisites

  • Go, en son sürüm önerilir. go version komutunu kullanarak sürümünüzü kontrol edin.

Azure Functions Core Tools’u Yükleme

Çekirdek Araçları'nı yüklemenin önerilen yolu, yerel geliştirme bilgisayarınızın işletim sistemine bağlıdır.

Aşağıdaki adımlarda Core Tools v4.x'i yüklemek için bir Windows yükleyicisi (MSI) kullanılır. Diğer paket tabanlı yükleyiciler hakkında daha fazla bilgi için Core Tools README belgesine bakın.

Windows sürümünüz temelinde Core Tools yükleyicisini indirin ve çalıştırın:

Daha önce Windows'a Core Tools yüklemek için Windows installer (MSI) kullandıysanız, en son sürümü yüklemeden önce Program Ekle Kaldır'dan eski sürümü kaldırmanız gerekir.

Sanal ortam oluşturma ve etkinleştirme

Uygun bir klasörde aşağıdaki komutları çalıştırarak adlı .venvbir sanal ortam oluşturun ve etkinleştirin. Azure İşlevleri tarafından desteklenen Python sürümlerinden birini kullandığınızdan emin olun.

python -m venv .venv
source .venv/bin/activate

Python venv paketini Linux dağıtımınıza yüklemediyse aşağıdaki komutu çalıştırın:

sudo apt-get install python3-venv

Bu etkinleştirilmiş sanal ortamda sonraki tüm komutları çalıştırırsınız.

Yerel kod projesi ve işlevi oluşturma

Azure İşlevleri'nde kod projeniz, her biri belirli bir tetikleyiciye yanıt veren bir veya daha fazla işlev içeren bir uygulamadır. Projedeki tüm işlevler aynı yapılandırmaları paylaşır ve Azure'a birim olarak dağıtılır. Bu bölümde, tek bir işlev içeren bir kod projesi oluşturacaksınız.

  1. Terminalde veya komut isteminde şu func init komutu çalıştırarak geçerli klasörde bir işlev uygulaması projesi oluşturun:

    func init --worker-runtime dotnet-isolated 
    
  1. Terminalde veya komut isteminde şu func init komutu çalıştırarak geçerli klasörde bir işlev uygulaması projesi oluşturun:

    func init --worker-runtime node --language javascript 
    
  1. Terminalde veya komut isteminde şu func init komutu çalıştırarak geçerli klasörde bir işlev uygulaması projesi oluşturun:

    func init --worker-runtime powershell 
    
  1. Terminalde veya komut isteminde şu func init komutu çalıştırarak geçerli klasörde bir işlev uygulaması projesi oluşturun:

    func init --worker-runtime python 
    
  1. Terminalde veya komut isteminde şu func init komutu çalıştırarak geçerli klasörde bir işlev uygulaması projesi oluşturun:

    func init --worker-runtime node --language typescript 
    
  1. Terminalde veya komut isteminde şu func init komutu çalıştırarak geçerli klasörde bir işlev uygulaması projesi oluşturun:

    func init --worker-runtime custom 
    
  1. Boş bir klasörde şu mvn komutu çalıştırarak bir Azure İşlevleri Maven arketipinden kod projesi oluşturun:

    mvn archetype:generate -DarchetypeGroupId=com.microsoft.azure -DarchetypeArtifactId=azure-functions-archetype -DjavaVersion=17
    

    Important

    • İşlevlerinizin Java 11 üzerinde çalışmasını istiyorsanız -DjavaVersion=11 ifadesini kullanın. Daha fazla bilgi edinmek için bkz . Java sürümleri.
    • JAVA_HOME Bu makaleyi tamamlamak için ortam değişkenini doğru JDK sürümünün yükleme konumuna ayarlayın.
  2. Maven, projeyi dağıtımda oluşturma işlemini tamamlamak için gereken değerleri ister.
    İstendiğinde aşağıdaki değerleri sağlayın:

    Prompt Value Description
    groupId com.fabrikam Java için paket adlandırma kurallarını izleyerek projenizi tüm projelerde benzersiz olarak tanımlayan bir değer.
    artifactId fabrikam-functions Sürüm numarası içermeyen jar'ın adı olarak bir değer.
    version 1.0-SNAPSHOT Varsayılan değeri seçin.
    package com.fabrikam Oluşturulan işlev kodu için Java paketi olan bir değer. Varsayılan değeri kullanın.
  3. Yazın Y veya onaylamak için Enter tuşuna basın.

    Maven, proje dosyalarını artifactId adlı yeni bir klasörde oluşturur. Bu örnekte şöyledirfabrikam-functions: .

  4. Proje klasörüne gidin:

    cd fabrikam-functions
    

    \src\main\java\com\fabrikam proje dizinindeki Function.java yeni HTTP tetikleyici işleviniz için şablon tarafından oluşturulan kodu gözden geçirebilirsiniz.

  1. Projenize işlev eklemek için şu func new komutu kullanın:

    func new --name HttpExample --template "HTTP trigger" --authlevel "function"
    

    Projenize yeni bir kod dosyası eklenir. Bu durumda bağımsız değişken işlevinizin --name benzersiz adıdır (HttpExample) ve --template bağımsız değişken bir HTTP tetikleyicisi belirtir.

Proje kök klasörü, local.settings.jsonvehost.json adlı yapılandırma dosyaları da dahil olmak üzere proje için çeşitli dosyalar içerir. local.settings.json Azure'dan indirilen gizli dizileri içerebileceğinden, dosya .gitignore dosyasında varsayılan olarak kaynak denetimin dışında tutulur.

İşlevinizi oluşturma ve oluşturma

HttpExample klasöründeki function.json dosyası bir HTTP tetikleyici işlevi bildirir. bir işleyici ekleyerek ve bir yürütülebilir dosyaya derleyerek işlevi tamamlarsınız.

  1. Yeni bir dosya oluşturmak için Ctrl + N (macOS'ta Cmd + N) tuşlarına basın. İşlev uygulaması köküne handler.go olarak kaydedin (host.json ile aynı klasörde).

  2. handler.go dosyasında aşağıdaki kodu ekleyin ve dosyayı kaydedin. Bu, Go özel işleyicinizdir.

    package main
    
    import (
        "fmt"
        "log"
        "net/http"
        "os"
    )
    
    func helloHandler(w http.ResponseWriter, r *http.Request) {
        message := "This HTTP triggered function executed successfully. Pass a name in the query string for a personalized response.\n"
        name := r.URL.Query().Get("name")
        if name != "" {
            message = fmt.Sprintf("Hello, %s. This HTTP triggered function executed successfully.\n", name)
        }
        fmt.Fprint(w, message)
    }
    
    func main() {
        listenAddr := ":8080"
        if val, ok := os.LookupEnv("FUNCTIONS_CUSTOMHANDLER_PORT"); ok {
            listenAddr = ":" + val
        }
        http.HandleFunc("/api/HttpExample", helloHandler)
        log.Printf("About to listen on %s. Go to https://127.0.0.1%s/", listenAddr, listenAddr)
        log.Fatal(http.ListenAndServe(listenAddr, nil))
    }
    
  3. VS Code'da yeni bir tümleşik terminal açmak için Ctrl + Shift + ' tuşlarına basın veya Terminal menüsünden Yeni Terminal'i seçin.

  4. Aşağıdaki komutu kullanarak özel işleyicinizi derleyin. İşlev uygulaması kök klasöründe (handler Windows üzerinde) adlı handler.exe yürütülebilir dosya çıktısı alınır.

    go build handler.go
    

İşlev uygulamanızı yapılandırma

İşlev konağı başlatıldığında özel işleyici ikili dosyanızı çalıştıracak şekilde yapılandırılmalıdır.

  1. host.json'i açın.

  2. customHandler.description bölümünde değerini defaultExecutablePathhandler olarak ayarlayın (Windows'ta olarak ayarlayınhandler.exe).

  3. customHandler bölümünde adlı enableForwardingHttpRequest bir özellik ekleyin ve değerini olarak trueayarlayın. Yalnızca BIR HTTP tetikleyicisi içeren işlevler için bu ayar, özel işleyici isteği yükü yerine tipik bir HTTP isteğiyle çalışmanıza olanak tanıyarak programlamayı basitleştirir.

  4. Bölümün bu örneğe customHandler benzediğini onaylayın. Dosyayı kaydedin.

    "customHandler": {
      "description": {
        "defaultExecutablePath": "handler",
        "workingDirectory": "",
        "arguments": []
      },
      "enableForwardingHttpRequest": true
    }
    

İşlev uygulaması, özel işleyici yürütülebilir dosyanızı başlatacak şekilde yapılandırılmıştır.

İşlevi yerel olarak çalıştırma

Projeyi yerel olarak çalıştırıp işlev uç noktasını çağırarak yeni işlevinizi doğrulayın.

  1. Proje klasörünün kökünde yerel Azure İşlevleri çalışma zamanı ortamını başlatmak için şu komutu kullanın:

    func start  
    
    npm install
    npm start
    
    mvn clean package  
    mvn azure-functions:run
    

    Çıkışın sonuna doğru aşağıdaki satırlar görüntülenir:

     ...
    
     Now listening on: http://0.0.0.0:7071
     Application started. Press Ctrl+C to shut down.
    
     Http Functions:
    
             HttpExample: [GET,POST] http://localhost:7071/api/HttpExample
     ...
    
     
  2. Bu çıkıştan işlevinizin HttpExample URL'sini bir tarayıcıya kopyalayın ve işlev URL'sine göz atın. Başarılı bir yanıt olarak "merhaba dünya" iletisini almanız gerekir.

    Note

    Yerel olarak çalıştırılırken erişim anahtarı yetkilendirmesi zorunlu tutulmadığından, döndürülen işlev URL'si erişim anahtarı değerini içermez ve işlevinizi çağırmak için buna ihtiyacınız yoktur.

  3. İşiniz bittiğinde Ctrl+C tuşlarını kullanın ve işlevler konağını durdurmak için seçim yapın.y

İşleviniz için destekleyici Azure kaynakları oluşturma

İşlev kodunuzu Azure'a dağıtmadan önce şu kaynakları oluşturmanız gerekir:

Gerekli kaynakları oluşturmak için bu adımlardaki Azure CLI komutlarını kullanın.

  1. Henüz yapmadıysanız Azure'da oturum açın:

    az login
    

    Komutu sizi az login Azure hesabınızda oturum açar. Azure Cloud Shell'de çalışırken bu adımı atlayın.

  2. Henüz yapmadıysanız, Application Insights uzantısını yüklemek için şu az extension add komutu kullanın:

    az extension add --name application-insights
    
  3. Seçtiğiniz bölgede adlı bir kaynak grubu oluşturmak için şu AzureFunctionsQuickstart-rg komutunu kullanın:

    az group create --name "AzureFunctionsQuickstart-rg" --location "<REGION>"
    

    Bu örnekte, Flex Consumption planını destekleyen, yakınınızdaki bir bölgeyle <REGION> değerini değiştirin. Şu anda desteklenen bölgelerin listesini görüntülemek için az functionapp list-flexconsumption-locations komutunu kullanın.

  4. Kaynak grubunuz ve bölgenizde genel amaçlı bir depolama hesabı oluşturmak için bu az storage account create komutunu kullanın:

    az storage account create --name <STORAGE_NAME> --location "<REGION>" --resource-group "AzureFunctionsQuickstart-rg" \
    --sku "Standard_LRS" --allow-blob-public-access false --allow-shared-key-access false
    

    Bu örnekte, <STORAGE_NAME> değerini size uygun ve Azure Depolama'da benzersiz bir adla değiştirin. Adlar yalnızca üç ile 24 karakter arasında sayı ve küçük harf içermelidir. Standard_LRSİşlevler tarafından desteklenen genel amaçlı bir hesap belirtir. Bu yeni hesaba yalnızca belirli kaynaklar için izin verilmiş Microsoft Entra-authenticated kimlikleri kullanılarak erişilebilir.

  5. Kullanıcı tarafından atanan bir yönetilen kimlik oluşturmak, nesne arasından döndürülen JSON özelliklerini jq ile ayrıştırmak ve varsayılan depolama hesabında Storage Blob Data Owner izinlerini vermek için bu betiği kullanın.

    output=$(az identity create --name "func-host-storage-user" --resource-group "AzureFunctionsQuickstart-rg" --location <REGION> \
    --query "{userId:id, principalId: principalId, clientId: clientId}" -o json)
    
    userId=$(echo $output | jq -r '.userId')
    principalId=$(echo $output | jq -r '.principalId')
    clientId=$(echo $output | jq -r '.clientId')
    
    storageId=$(az storage account show --resource-group "AzureFunctionsQuickstart-rg" --name <STORAGE_NAME> --query 'id' -o tsv)
    az role assignment create --assignee-object-id $principalId --assignee-principal-type ServicePrincipal \
    --role "Storage Blob Data Owner" --scope $storageId
    

    Eğer jq yardımcı programı yerel Bash kabuğunuzda yoksa, Azure Cloud Shell'de kullanılabilir. Bu örnekte, <STORAGE_NAME> değerini varsayılan depolama hesap adınızla ve <REGION> değerini bölgenizle değiştirin.

    az identity create komutu adlı func-host-storage-userbir kimlik oluşturur. Döndürülen principalId , komutunu kullanarak az role assignment create varsayılan depolama hesabında bu yeni kimliğe izin atamak için kullanılır. az storage account show komutu, depolama hesabı kimliğini almak için kullanılır.

  6. Azure'da işlev uygulamasını oluşturmak için şu az functionapp create komutunu kullanın:

    az functionapp create --resource-group "AzureFunctionsQuickstart-rg" --name <APP_NAME> --flexconsumption-location <REGION> \
    --runtime dotnet-isolated --runtime-version <LANGUAGE_VERSION> --storage-account <STORAGE_NAME> \
    --deployment-storage-auth-type UserAssignedIdentity --deployment-storage-auth-value "func-host-storage-user"
    
    az functionapp create --resource-group "AzureFunctionsQuickstart-rg" --name <APP_NAME> --flexconsumption-location <REGION> \
    --runtime java --runtime-version <LANGUAGE_VERSION> --storage-account <STORAGE_NAME> \
    --deployment-storage-auth-type UserAssignedIdentity --deployment-storage-auth-value "func-host-storage-user"
    
    az functionapp create --resource-group "AzureFunctionsQuickstart-rg" --name <APP_NAME> --flexconsumption-location <REGION> \
    --runtime node --runtime-version <LANGUAGE_VERSION> --storage-account <STORAGE_NAME> \
    --deployment-storage-auth-type UserAssignedIdentity --deployment-storage-auth-value "func-host-storage-user"
    
    az functionapp create --resource-group "AzureFunctionsQuickstart-rg" --name <APP_NAME> --flexconsumption-location <REGION> \
    --runtime python --runtime-version <LANGUAGE_VERSION> --storage-account <STORAGE_NAME> \
    --deployment-storage-auth-type UserAssignedIdentity --deployment-storage-auth-value "func-host-storage-user"
    
    az functionapp create --resource-group "AzureFunctionsQuickstart-rg" --name <APP_NAME> --flexconsumption-location <REGION> \
    --runtime python --runtime-version <LANGUAGE_VERSION> --storage-account <STORAGE_NAME> \
    --deployment-storage-auth-type UserAssignedIdentity --deployment-storage-auth-value "func-host-storage-user"
    
    az functionapp create --resource-group "AzureFunctionsQuickstart-rg" --name <APP_NAME> --flexconsumption-location <REGION> \
    --runtime other --storage-account <STORAGE_NAME> \
    --deployment-storage-auth-type UserAssignedIdentity --deployment-storage-auth-value "func-host-storage-user"
    

    Bu örnekte, bu yer tutucuları uygun değerlerle değiştirin:

    • <APP_NAME>: size uygun genel olarak benzersiz bir ad. <APP_NAME> aynı zamanda işlev uygulamasının varsayılan DNS etki alanıdır.
    • <STORAGE_NAME>: Önceki adımda kullandığınız hesabın adı.
    • <REGION>: geçerli bölgeniz.
    • <LANGUAGE_VERSION>: Uygun olduğunda yerel olarak doğruladığınız desteklenen dil yığını sürümünü kullanın.

    Bu komut , Flex Tüketim Planı'nda Linux'ta belirtilen dil çalışma zamanınızda çalışan bir işlev uygulaması oluşturur ve bu uygulama burada tahakkuk ettiğiniz kullanım miktarı için ücretsizdir. Komut aynı kaynak grubunda, işlev uygulaması yürütmelerinizi izlemek ve günlükleri görüntülemek için kullanabileceğiniz ilişkili bir Azure Application Insights örneği de oluşturur. Daha fazla bilgi için bkz. Azure İşlevlerini İzleme. Örneği etkinleştirene kadar herhangi bir ücret ödemezsiniz.

  7. Kullanıcı tarafından atanan yönetilen kimliğinizi Application Insights örneğinizdeki İzleme Ölçümleri Yayımcısı rolüne eklemek için bu betiği kullanın:

    appInsights=$(az monitor app-insights component show --resource-group "AzureFunctionsQuickstart-rg" \
        --app <APP_NAME> --query "id" --output tsv)
    principalId=$(az identity show --name "func-host-storage-user" --resource-group "AzureFunctionsQuickstart-rg" \
        --query principalId -o tsv)
    az role assignment create --role "Monitoring Metrics Publisher" --assignee $principalId --scope $appInsights
    

    Bu örnekte değerini işlev uygulamanızın adıyla değiştirin <APP_NAME> . az role assignment create komutu, kullanıcınızı role ekler. Application Insights örneğinizin kaynak kimliği ve kullanıcınızın asıl kimliği sırasıyla az monitor app-insights component show ve az identity show komutları kullanılarak elde edilir.

Uygulama ayarlarını güncelleştirme

İşlevler ana bilgisayarının paylaşılan sırları kullanarak varsayılan depolama hesabına bağlanmasını sağlamak için AzureWebJobsStorage bağlantı dizesi ayarını ön ekli birkaç ayar ile değiştirin AzureWebJobsStorage__. Bu ayarlar, uygulamanızın depolamaya ve Application Insights'a kullanıcı tarafından atanan yönetilen bir kimlikle bağlanmak için kullandığı karmaşık bir ayarı tanımlar.

  1. Kullanıcı tarafından atanan yönetilen kimliğin istemci kimliğini almak için bu betiği kullanın ve hem depolamaya hem de Application Insights'a yönetilen kimlik bağlantıları tanımlamak için bu betiği kullanın:

    clientId=$(az identity show --name func-host-storage-user \
        --resource-group AzureFunctionsQuickstart-rg --query 'clientId' -o tsv)
    az functionapp config appsettings set --name <APP_NAME> --resource-group "AzureFunctionsQuickstart-rg" \
        --settings AzureWebJobsStorage__accountName=<STORAGE_NAME> \
        AzureWebJobsStorage__credential=managedidentity AzureWebJobsStorage__clientId=$clientId \
        APPLICATIONINSIGHTS_AUTHENTICATION_STRING="ClientId=$clientId;Authorization=AAD"
    

    Bu betikte, <APP_NAME> ve <STORAGE_NAME> öğelerini sırasıyla işlev uygulamanızın ve depolama hesabınızın adlarıyla değiştirin.

  2. Paylaşılan gizli dizi anahtarı içeren mevcut bağlantı dizesi ayarını kaldırmak için AzureWebJobsStorage komutunu çalıştırın:

    az functionapp config appsettings delete --name <APP_NAME> --resource-group "AzureFunctionsQuickstart-rg" --setting-names AzureWebJobsStorage
    

    Bu örnekte <APP_NAME> değerini uygulama işlevinizin adıyla değiştirin.

Bu noktada Functions ana bilgisayarı, paylaşılan sırlar yerine yönetilen kimlikleri kullanarak depolama hesabına güvenli bir şekilde bağlanabilir. Artık proje kodunuzu Azure kaynaklarına dağıtabilirsiniz.

İşlev projesini Azure'a dağıtma

İşlev uygulamanızı Azure'da başarıyla oluşturduktan sonra, komutunu kullanarak yerel işlevler projenizi dağıtmaya func azure functionapp publish hazır olursunuz.

  1. Kök proje klasörünüzde şu func azure functionapp publish komutu çalıştırın:

    func azure functionapp publish <APP_NAME>
    

    Bu örnekte <APP_NAME> yerine uygulamanızın adını yazın. Başarılı bir dağıtım, aşağıdaki çıkışa benzer sonuçlar gösterir (basitlik için kesilmiş):

     ...
    
     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
     
  2. Yerel terminalinizde veya komut isteminizde, erişim anahtarı da dahil olmak üzere URL uç noktası değerini almak için şu komutu çalıştırın:

    func azure functionapp list-functions <APP_NAME> --show-keys
    

    Bu örnekte <APP_NAME> ifadesini uygulamanızın adıyla tekrar değiştirin.

  3. İşlev uç noktasını çağırmak için kullandığınız döndürülen uç nokta URL'sini ve anahtarını kopyalayın.

pom.xml dosyasını güncelleştirme

İşlev uygulamanızı Azure'da başarıyla oluşturduktan sonra maven'in yeni uygulamanıza dağıtabilmesi için pom.xml dosyasını güncelleştirin. Aksi takdirde Maven dağıtım sırasında yeni bir Azure kaynakları kümesi oluşturur.

  1. Azure Cloud Shell'de, dağıtım kapsayıcısı URL'sini ve kullanıcı tarafından atanan yeni yönetilen kimliği almak için şu az functionapp show komutu kullanın:

    az functionapp show --name <APP_NAME> --resource-group AzureFunctionsQuickstart-rg  \
        --query "{userAssignedIdentityResourceId: properties.functionAppConfig.deployment.storage.authentication.userAssignedIdentityResourceId, \
        containerUrl: properties.functionAppConfig.deployment.storage.value}"
    

    Bu örnekte <APP_NAME> değerini uygulama işlevinizin adıyla değiştirin.

  2. Proje kök dizininde, pom.xml dosyasını bir metin düzenleyicisinde açın, öğesini bulun properties ve şu özel özellik değerlerini güncelleştirin:

    Özellik adı Value
    java.version Yerel olarak doğruladığınız desteklenen dil yığını sürümünü kullanın, örneğin 17.
    azure.functions.maven.plugin.version 1.37.1
    azure.functions.java.library.version 3.1.0
    functionAppName Azure'daki işlev uygulamanızın adı.
  3. öğesinin configurationazure-functions-maven-plugin bölümünü bulun ve şu XML parçasıyla değiştirin:

    <configuration>
        <appName>${functionAppName}</appName>
        <resourceGroup>AzureFunctionsQuickstart-rg</resourceGroup>
        <pricingTier>Flex Consumption</pricingTier>
        <region>....</region>
        <runtime>
            <os>linux</os>
            <javaVersion>${java.version}</javaVersion>
        </runtime>
        <deploymentStorageAccount>...</deploymentStorageAccount>
        <deploymentStorageResourceGroup>AzureFunctionsQuickstart-rg</deploymentStorageResourceGroup>
        <deploymentStorageContainer>...</deploymentStorageContainer>
        <storageAuthenticationMethod>UserAssignedIdentity</storageAuthenticationMethod>
        <userAssignedIdentityResourceId>...</userAssignedIdentityResourceId>
        <appSettings>
            <property>
                <name>FUNCTIONS_EXTENSION_VERSION</name>
                <value>~4</value>
            </property>
        </appSettings>
    </configuration>
    
  4. Yeni configuration öğede, üç nokta (...) değerlerinin belirli değişikliklerini yapın:

    Configuration Value
    region Mevcut işlev uygulamanızın bölge kodu, örneğin eastus.
    deploymentStorageAccount Depolama hesabınızın adı.
    deploymentStorageContainer Aldığınız değer sonrası \ gelen containerUrl dağıtım paylaşımının adı.
    userAssignedIdentityResourceId Aldığınız yönetilen kimliğinizin tam nitelikli kaynak kimliği.
  5. Değişikliklerinizi pom.xml dosyasına kaydedin.

Artık kod projenizi mevcut uygulamanıza dağıtmak için Maven'ı kullanabilirsiniz.

İşlev projesini Azure'a dağıtma

  1. Komut isteminden şu komutu çalıştırın:

    mvn clean package azure-functions:deploy
    
  2. Dağıtımınız başarılı olduktan sonra, erişim anahtarı da dahil olmak üzere URL uç noktası değerini almak için bu Core Tools komutunu çalıştırın:

    func azure functionapp list-functions <APP_NAME> --show-keys
    

    Bu örnekte <APP_NAME> ifadesini uygulamanızın adıyla tekrar değiştirin.

  3. İşlev uç noktasını çağırmak için kullandığınız döndürülen uç nokta URL'sini ve anahtarını kopyalayın.

İşlevi Azure'da çağırma

İşleviniz bir HTTP tetikleyicisi kullandığından ve GET isteklerini desteklediğinden, işlev düzeyi erişim anahtarını kullanarak URL'sine http isteğinde bulunarak bu tetikleyiciyi çağırırsınız. Tarayıcıda GET isteği yürütmek en kolayıdır.

Kopyaladığınız URL'yi ve erişim anahtarını bir tarayıcı adres çubuğuna yapıştırın.

Uç nokta URL'si şu örneğe benzer olmalıdır:

https://contoso-app.azurewebsites.net/api/httpexample?code=aabbccdd...

Bu durumda, uç nokta URL'sine GET isteğinde bulunurken sorgu dizesinde bir erişim anahtarı da sağlamanız gerekir. Rastgele istemcilerden erişimi sınırlamak için erişim anahtarı kullanılması önerilir. HTTP istemcisi kullanarak POST isteğinde bulunurken, bunun yerine üst bilgide x-functions-key erişim anahtarını sağlamanız gerekir.

Bu URL'ye gittiğinizde, tarayıcı işlevi yerel olarak çalıştırdığınızda olduğu gibi benzer bir çıkış görüntülemelidir.

Kaynakları temizle

Bir sonraki adıma devam edip bir Azure Depolama kuyruğu çıkış bağlayıcısı eklediğinizde, daha önce yaptıklarınızın üzerine inşa edeceğiniz için tüm kaynaklarınızı yerinde koruyun.

Aksi takdirde, daha fazla maliyet oluşmasını önlemek için kaynak grubunu ve içerdiği tüm kaynakları silmek için aşağıdaki komutu kullanın.

az group delete --name AzureFunctionsQuickstart-rg

Sonraki Adımlar