Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
- Aktif bir aboneliğe sahip bir Azure hesabı. Ücretsiz hesap oluşturun.
-
Java 17 Geliştirici Seti
- Java'nın desteklenen başka bir sürümünü kullanıyorsanız projenin pom.xml dosyasını güncelleştirmeniz gerekir.
- Ortam değişkeni,
JAVA_HOMEJava Development Kit'in (JDK) doğru sürümünün yükleme konumuna ayarlanmalıdır.
- Apache Maven 3.8.x
JSON çıktısını ayrıştırmak için kullanılan ve Azure Cloud Shell'de de kullanılabilen komut satırı JSON işlemcisi.
jq
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:
- v4.x - Windows 64 bit (Önerilir. Visual Studio Code hata ayıklaması 64 bit gerektirir.)
- v4.x - Windows 32 bit
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.
Terminalde veya komut isteminde şu
func initkomutu çalıştırarak geçerli klasörde bir işlev uygulaması projesi oluşturun:func init --worker-runtime dotnet-isolated
Terminalde veya komut isteminde şu
func initkomutu çalıştırarak geçerli klasörde bir işlev uygulaması projesi oluşturun:func init --worker-runtime node --language javascript
Terminalde veya komut isteminde şu
func initkomutu çalıştırarak geçerli klasörde bir işlev uygulaması projesi oluşturun:func init --worker-runtime powershell
Terminalde veya komut isteminde şu
func initkomutu çalıştırarak geçerli klasörde bir işlev uygulaması projesi oluşturun:func init --worker-runtime python
Terminalde veya komut isteminde şu
func initkomutu çalıştırarak geçerli klasörde bir işlev uygulaması projesi oluşturun:func init --worker-runtime node --language typescript
Terminalde veya komut isteminde şu
func initkomutu çalıştırarak geçerli klasörde bir işlev uygulaması projesi oluşturun:func init --worker-runtime custom
Boş bir klasörde şu
mvnkomutu çalıştırarak bir Azure İşlevleri Maven arketipinden kod projesi oluşturun:mvn archetype:generate -DarchetypeGroupId=com.microsoft.azure -DarchetypeArtifactId=azure-functions-archetype -DjavaVersion=17Important
- İşlevlerinizin Java 11 üzerinde çalışmasını istiyorsanız
-DjavaVersion=11ifadesini kullanın. Daha fazla bilgi edinmek için bkz . Java sürümleri. -
JAVA_HOMEBu makaleyi tamamlamak için ortam değişkenini doğru JDK sürümünün yükleme konumuna ayarlayın.
- İşlevlerinizin Java 11 üzerinde çalışmasını istiyorsanız
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.fabrikamJava için paket adlandırma kurallarını izleyerek projenizi tüm projelerde benzersiz olarak tanımlayan bir değer. artifactId fabrikam-functionsSürüm numarası içermeyen jar'ın adı olarak bir değer. version 1.0-SNAPSHOTVarsayılan değeri seçin. package com.fabrikamOluşturulan işlev kodu için Java paketi olan bir değer. Varsayılan değeri kullanın. Yazın
Yveya onaylamak için Enter tuşuna basın.Maven, proje dosyalarını artifactId adlı yeni bir klasörde oluşturur. Bu örnekte şöyledir
fabrikam-functions: .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.
Projenize işlev eklemek için şu
func newkomutu 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
--namebenzersiz adıdır (HttpExample) ve--templatebağı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.
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).
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)) }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.
Aşağıdaki komutu kullanarak özel işleyicinizi derleyin. İşlev uygulaması kök klasöründe (
handlerWindows üzerinde) adlıhandler.exeyü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.
host.json'i açın.
customHandler.descriptionbölümünde değerinidefaultExecutablePathhandlerolarak ayarlayın (Windows'ta olarak ayarlayınhandler.exe).customHandlerbölümünde adlıenableForwardingHttpRequestbir özellik ekleyin ve değerini olaraktrueayarlayı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.Bölümün bu örneğe
customHandlerbenzediğ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.
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 startnpm install npm startmvn 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 ...Bu çıkıştan işlevinizin
HttpExampleURL'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.
İş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:
- İlgili kaynaklar için mantıksal bir kapsayıcı olan kaynak grubu.
- İşlevler ana bilgisayarı tarafından işlevlerinizle ilgili durumu ve diğer bilgileri korumak için kullanılan varsayılan depolama hesabı.
- İşlevler ana bilgisayarının varsayılan depolama hesabına bağlanmak için kullandığı kullanıcı tarafından atanan yönetilen kimlik.
- İşlev kodunuzu yürütmek için ortam sağlayan bir işlev uygulaması. İşlev uygulaması yerel işlev projenize eşler ve kaynakların daha kolay yönetilmesi, dağıtılması ve paylaşılması için işlevleri mantıksal birim olarak gruplandırmanıza olanak tanır.
Gerekli kaynakları oluşturmak için bu adımlardaki Azure CLI komutlarını kullanın.
Henüz yapmadıysanız Azure'da oturum açın:
az loginKomutu sizi
az loginAzure hesabınızda oturum açar. Azure Cloud Shell'de çalışırken bu adımı atlayın.Henüz yapmadıysanız, Application Insights uzantısını yüklemek için şu
az extension addkomutu kullanın:az extension add --name application-insightsSeçtiğiniz bölgede adlı bir kaynak grubu oluşturmak için şu
AzureFunctionsQuickstart-rgkomutunu 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.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 falseBu ö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.Kullanıcı tarafından atanan bir yönetilen kimlik oluşturmak, nesne arasından döndürülen JSON özelliklerini
jqile ayrıştırmak ve varsayılan depolama hesabındaStorage Blob Data Ownerizinlerini 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 $storageIdEğer
jqyardı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ülenprincipalId, komutunu kullanarakaz role assignment createvarsayılan depolama hesabında bu yeni kimliğe izin atamak için kullanılır.az storage account showkomutu, depolama hesabı kimliğini almak için kullanılır.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.
-
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 $appInsightsBu ö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 veaz identity showkomutları 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.
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.Paylaşılan gizli dizi anahtarı içeren mevcut bağlantı dizesi ayarını kaldırmak için
AzureWebJobsStoragekomutunu çalıştırın:az functionapp config appsettings delete --name <APP_NAME> --resource-group "AzureFunctionsQuickstart-rg" --setting-names AzureWebJobsStorageBu ö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.
Kök proje klasörünüzde şu
func azure functionapp publishkomutu ç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/httpexampleYerel 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-keysBu örnekte
<APP_NAME>ifadesini uygulamanızın adıyla tekrar değiştirin.İş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.
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 showkomutu 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.Proje kök dizininde, pom.xml dosyasını bir metin düzenleyicisinde açın, öğesini bulun
propertiesve şu özel özellik değerlerini güncelleştirin:Özellik adı Value java.versionYerel olarak doğruladığınız desteklenen dil yığını sürümünü kullanın, örneğin 17.azure.functions.maven.plugin.version1.37.1azure.functions.java.library.version3.1.0functionAppNameAzure'daki işlev uygulamanızın adı. öğesinin
configurationazure-functions-maven-pluginbö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>Yeni
configurationöğede, üç nokta (...) değerlerinin belirli değişikliklerini yapın:Configuration Value regionMevcut işlev uygulamanızın bölge kodu, örneğin eastus.deploymentStorageAccountDepolama hesabınızın adı. deploymentStorageContainerAldığınız değer sonrası \gelencontainerUrldağıtım paylaşımının adı.userAssignedIdentityResourceIdAldığınız yönetilen kimliğinizin tam nitelikli kaynak kimliği. 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
Komut isteminden şu komutu çalıştırın:
mvn clean package azure-functions:deployDağı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-keysBu örnekte
<APP_NAME>ifadesini uygulamanızın adıyla tekrar değiştirin.İş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