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 makale, çalışmaya hazır .zip dağıtım paketi oluşturmanın, paketi Azure'ye dağıtmanın ve fonksiyon uygulamanızı doğrudan paketten çalıştıracak şekilde yapılandırmanın nasıl yapılacağını anlatır. Azure İşlevleri Core Tools, Azure CLI veya dağıtım REST API'lerini kullanarak dağıtabilirsiniz.
Paket tabanlı dağıtım, koddan çalışan fonksiyon uygulamaları için varsayılan yöntemdir. Dağıtım teknolojisi ve paket yapılandırması barındırma planına bağlıdır. Bu makalenin başında barındırma planınızı seçin.
Azure İşlevleri, Azure App Service'in sunduğu tüm sürekli dağıtım ve entegrasyon seçeneklerine sahiptir. Daha fazla bilgi için bkz Azure İşlevleri için Sürekli Dağıtım.
Barındırma planına göre paket dağıtımı
Aşağıdaki tablo, her barındırma planı için dağıtım sürecini ve paket yapılandırmasını özetlemektedir:
| Barındırma planı | Kurulum süreci | Paket yapılandırması |
|---|---|---|
| Esnek Tüketim planı | Yönetilen paket dağıtımı | Varsayılan olarak dağıtılan paketten çalışır. ayarlamayın WEBSITE_RUN_FROM_PACKAGE. |
| Premium planı | ZIP dağıtımı | Dağıtılan paketten çalıştırmak için WEBSITE_RUN_FROM_PACKAGE değerini 1 olarak ayarlayın. |
| Ayrılmış (Uygulama Hizmeti) planı | ZIP dağıtımı | Dağıtılan paketten çalıştırmak için WEBSITE_RUN_FROM_PACKAGE değerini 1 olarak ayarlayın. |
| Windows'ta tüketim planı | ZIP dağıtımı | Dağıtılan paketten çalıştırmak için WEBSITE_RUN_FROM_PACKAGE öğesini 1 olarak ayarlayın. |
| Linux'ta tüketim planı | Uzaktan derleme veya harici paket URL'si | Yerel olarak oluşturulmuş bir paket için harici bir paket URL'si kullanın. |
| Azure Konteyner Uygulamaları | Konteyner görüntüsü dağıtımı | Paket tabanlı kod dağıtımı geçerli değil. |
Uyarı
Bu makaledeki içerik, şu anda seçilen barındırma planıyla ilgili değildir. Farklı bir plan seçmek için bu makalenin üst kısmındaki seçiciyi kullanın. Tüm barındırma planlarının karşılaştırması için Azure İşlevleri barındırma seçeneklerine bakınız.
Azure Container Apps üzerinde barındırılan fonksiyon uygulamaları, .zip paket olarak değil, konteyner imgesi olarak dağıtılır. Görüntü tabanlı bir fonksiyon uygulaması oluşturmak ve dağıtmak için, kod kullanarak Azure Container Apps'te fonksiyon uygulaması oluştur bölümüne bakınız.
Bir dağıtım paketi oluşturun
Çoğu durumda, dağıtım paketini kendiniz oluşturmanıza gerek yoktur. Bu araç tabanlı dağıtım yöntemleri, paketi yayınlama sürecinin bir parçası olarak oluşturur:
- Azure İşlevleri Core Tools
func azure functionapp publishkomutu. - Visual Studio Code yayıncılığı.
- Visual Studio yayıncılığı.
- GitHub Actions dağıtımı, yapılandırılmış proje yolunu paketler.
Azure Pipelines dağıtımı için, işlem hattı derleme adımları .zip arşivini oluşturup bunu AzureFunctionApp dağıtım görevine iletir.
Doğrudan çalışmaya hazır bir dağıtım paketiyle çalışmanız gerektiğinde, paketi kullanarak func packoluşturun. Örneğin, paketi dağıtırken harici bir paket URL'si kullanarak kendiniz oluşturun.
Ayrıca .zip arşivini manuel olarak oluşturabilirsiniz. Arşivi manuel olarak oluştururken, bu paket yapısı gereksinimlerini takip edin.
Dağıtım paketi gereksinimleri
Dağıttığınız zip arşivi, işlev uygulamanızı çalıştırmak için gereken tüm dosyaları içermelidir. Yerleşik .zip sıkıştırma işlevini veya Microsoft dışı araçları kullanarak İşlevler proje klasörünün içeriğinden el ile zip arşivi oluşturabilirsiniz.
Arşiv, ayıklanan klasörün kökünde host.json dosyasını içermelidir. İşlev uygulaması için seçilen dil yığını başka gereksinimler oluşturur:
Önemli
Dağıtım için derlenmiş çıkış oluşturan diller için, proje klasörünün tamamını değil yayımlamayı planladığınız çıkış klasörünün içeriğini sıkıştırdığınızdan emin olun. İşlevler zip arşivinin içeriğini ayıkladığında, host.json dosyanın paketin kökünde bulunması gerekir.
Zip dağıtım süreci, .zip arşivin dosyalarını ve dizindeki wwwroot klasörlerini çıkarır. Arşivi oluştururken üst dizini de eklerseniz, sistem wwwroot içinde bulmayı beklediği dosyaları bulamaz.
Bir paket dağıt
Flex Consumption, hazır bir paketi uygulamanın dağıtım depolama konteynerinde depolamak için paket dağıtımını kullanır. Uygulama doğrudan bu paketten çalışıyor.
WEBSITE_RUN_FROM_PACKAGE uygulama ayarını ayarlamayın.
Paketi Core Tools, Visual Studio Code veya Azure CLI kullanarak dağıtın. Bu araçlar, Flex Consumption uygulaması için doğru paket dağıtım davranışını otomatik olarak seçer.
Bu araçlar, paketi uygulamanın dağıtım uç noktasına göndererek push dağıtımı gerçekleştirir. Flex Consumption için, bu istemciler paketi /api/publish uygulamanın scm hostuna gönderir. Dağıtım uç noktası yalnızca özel bir uç nokta üzerinden erişilebiliyorsa, dağıtımı gerçekleştiren bilgisayar, koşucu veya ajanın özel dağıtım uç noktasına ağ bağlantısı ve DNS çözümlemesine sahip olmalıdır. Dağıtım hizmeti, işlenen paketi yapılandırılmış dağıtım konteynerinde saklar; bir paketi doğrudan bu konteynere yüklemek onu dağıtmaz. Dağıtımı başlatan istemciden dağıtım uç noktasına göndermeden dağıtım yapmak için, dağıtım hizmetinin erişebileceği bir paket URL’si içeren Bicep veya ARM şablonu dağıtımı kullanın.
Azure CLI'yi kullanarak dağıtma
Bir paketi dağıtmak için komutu az functionapp deployment source config-zip kullanın:
az functionapp deployment source config-zip --resource-group <RESOURCE_GROUP> \
--name <APP_NAME> --src <ZIP_FILE_PATH>
Kaynak proje uzaktan derleme gerektirdiğinde ekleyin --build-remote true .
func pack zaten çalıştırılmaya hazır durumda oluşturduğu bir paket için, örneğin bir Go dağıtım paketi, uzaktan derleme istemeyin.
Dağıtım depolamasını yapılandırmak veya önceki bir dağıtımı kurtarmak için Flex Consumption planında fonksiyon uygulamalarını oluştur ve yönet bölümünü inceleyebilirsiniz.
Bir paket dağıt
Premium, Dedicated ve Consumption plan uygulamaları zip dağıtım API'sini kullanır. Dağıtım hizmeti şu işlemleri gerçekleştirir:
- Önceki dağıtımlardan kalan dosyaları sil.
- Dağıtım betiklerini ve diğer dağıtım özelleştirmelerini çalıştırın.
- Dağıtım logları yaz.
- Senkronizasyon işlevi tetiklenir.
Önemli
Zip dağıtımında, önceki dağıtımdan dosyalar o dağıtımın parçası olduklarında silinir veya güncellenir. Dağıtım süreci, fonksiyon uygulamanızdaki önceki dağıtımda olmayan diğer dosyaları ve dizinleri korur. Uygulama detayları için zip dağıtım referansına bakınız.
Azure CLI'yi kullanarak dağıtma
Azure CLI kullanarak push deployment başlatın. az functionapp deployment source config-zip komutunu kullanarak işlev uygulamanıza bir .zip dosyası dağıtın. Bu komutu kullanmak için Azure CLI 2.0.21 veya sonraki bir sürümü kullanmanız gerekir. Hangi Azure CLI sürümünü kullandığınızı az --version görmek için komutunu kullanın.
Aşağıdaki komutta, <zip_file_path> yer tutucusunu, .zip dosyanızın bulunduğu konumla değiştirin. Ayrıca, <app_name> yerine işlev uygulamanızın benzersiz adını ve <resource_group> yerine kaynak grubunuzun adını yazın.
az functionapp deployment source config-zip -g <resource_group> -n \
<app_name> --src <zip_file_path>
Bu komut, .zip dosyasından proje dosyalarını Azure'daki fonksiyon uygulamanıza dağıtır ve uygulamayı yeniden başlatır.
Yerel bilgisayarınızda Azure CLI kullanırken, <zip_file_path> bilgisayarınızdaki .zip dosyasının yoludur. Azure CLI'sini Azure Cloud Shell'de de çalıştırabilirsiniz. Cloud Shell'i kullanırken, önce dağıtım .zip dosyanızı Cloud Shell'inizle ilişkili Azure Dosyalar hesabına yüklemeniz gerekir. Bu durumda, <zip_file_path> Cloud Shell hesabınızın kullandığı depolama konumudur. Daha fazla bilgi için bkz . Azure Cloud Shell'de dosyaları kalıcı hale geçirme.
REST API'leri ile ZIP dosyası dağıtma
.zip dosyasını Azure'daki uygulamanıza dağıtmak için dağıtım hizmeti REST API'lerini kullanabilirsiniz. Dağıtmak için bir POST isteğini adresine gönderinhttps://<app_name>.scm.azurewebsites.net/api/zipdeploy. POST isteği, ileti gövdesinde .zip dosyasını içermelidir. Uygulamanızın dağıtım kimlik bilgileri, HTTP BASIC kimlik doğrulaması kullanılarak istekte belirtilir. Daha fazla bilgi için bkz .zip push dağıtımı referansı.
HTTP BASIC kimlik doğrulaması için App Service dağıtım kimlik bilgileriniz gerekir. Dağıtım kimlik bilgilerinizi nasıl ayarlayacağınızı görmek için Kullanıcı düzeyi kimlik bilgilerini ayarlama ve sıfırlama bölümüne bakın.
cURL ile
Aşağıdaki örnekte bir .zip dosyası dağıtmak için cURL aracı kullanılır. Yer tutucular <deployment_user>, <zip_file_path> ve <app_name> ile değiştirin. cURL tarafından istendiğinde parolayı yazın.
curl -X POST -u <deployment_user> --data-binary "@<zip_file_path>" https://<app_name>.scm.azurewebsites.net/api/zipdeploy
Yüklenmiş olan .zip dosyasından push dağıtımını bu istek tetikler. Aşağıdaki cURL örneğinde gösterildiği gibi uç noktayı kullanarak https://<app_name>.scm.azurewebsites.net/api/deployments geçerli ve geçmiş dağıtımları gözden geçirebilirsiniz.
<app_name> öğesini uygulamanızın adıyla ve <deployment_user> öğesini dağıtım kimlik bilgilerinizin kullanıcı adıyla değiştirin.
curl -u <deployment_user> https://<app_name>.scm.azurewebsites.net/api/deployments
Zaman uyumsuz zip dağıtımı
Senkronizasyon sırasında dağıtım yaparken, bağlantı zaman aşımlarıyla ilgili hatalar alabilirsiniz. Zaman uyumsuz olarak dağıtmak için URL'ye ekleyin ?isAsync=true . Zip dosyasını karşıya yüklediğinizde hemen yoklanabilir dağıtım durumu URL'sine işaret eden bir Location üst bilgiyle yanıt alırsınız. Üst bilgide sağlanan URL'yi Location yoklarken, işlem devam ederken bir HTTP 202 (Kabul Edildi) yanıtı ve arşiv genişletildikten ve dağıtım başarıyla tamamlandıktan sonra bir HTTP 200 (Tamam) yanıtı alırsınız.
Microsoft Entra doğrulaması
Zip dağıtımı için HTTP BASIC kimlik doğrulamasını kullanmanın bir alternatifi, Microsoft Entra kimliği kullanmaktır. SCM sitesi için HTTP BASIC kimlik doğrulaması devre dışı bırakıldıysa Microsoft Entra kimliği gerekebilir.
Dağıtımı gerçekleştiren kullanıcı veya hizmet sorumlusu için geçerli bir Microsoft Entra erişim belirteci gereklidir. Erişim belirteci, Azure CLI'nın az account get-access-token komutu kullanılarak alınabilir. Erişim belirteci, HTTP POST isteğinin Kimlik doğrulaması üst bilgisinde kullanılır.
curl -X POST \
--data-binary "@<zip_file_path>" \
-H "Authorization: Bearer <access_token>" \
"https://<app_name>.scm.azurewebsites.net/api/zipdeploy"
PowerShell ile
Aşağıdaki örnek, Publish-AzWebapp kullanarak .zip dosyasını yükler. Yer tutucular <group-name>, <app-name> ve <zip-file-path> ile değiştirin.
Publish-AzWebapp -ResourceGroupName <group-name> -Name <app-name> -ArchivePath <zip-file-path>
Yüklenmiş olan .zip dosyasından push dağıtımını bu istek tetikler.
Geçerli ve geçmiş dağıtımları gözden geçirmek için aşağıdaki komutları çalıştırın. Yeniden <deployment-user>, <deployment-password>, ve <app-name> yer tutucularını değiştirin.
$username = "<deployment-user>"
$password = "<deployment-password>"
$apiUrl = "https://<app-name>.scm.azurewebsites.net/api/deployments"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username, $password)))
$userAgent = "powershell/1.0"
Invoke-RestMethod -Uri $apiUrl -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -UserAgent $userAgent -Method GET
Bicep veya Azure Resource Manager şablonu kullanarak dağıtın
Bir paketi, Bicep veya Azure Resource Manager (ARM) şablon dağıtımının bir parçası olarak Flex Consumption uygulamasına dağıtabilirsiniz.
packageUri uzantısını kullanan bir /onedeploy kaynağı tanımlayın ve uzak paket URL’sini Microsoft.Web/sites/extensions özelliğinde belirtin.
Paket dosyasına released-package.zipisim vermelisiniz. Functions ana bilgisayarı hem uzak paket URL'sine hem de dağıtım depolama konteynerine erişebilmelidir. Paketi doğrudan dağıtım konteynerine yüklemek onu dağıtmaz.
Bicep ve ARM şablon örnekleri için bkz. Flex Tüketimi dağıtım paketini tanımla.
Azure Resource Manager şablonu kullanarak deploy
Azure Resource Manager (ARM) şablonunun ZipDeploy uzantısını kullanarak .zip dosyanızı fonksiyon uygulamanıza itebilirsiniz.
ZipDeploy ARM şablonu örneği
Bu şablon, hem üretim hem de hazırlık yuvalarını içerir ve birine veya diğerine dağıtım yapar. Genellikle, bu şablonu staging slotuna dağıtmak için kullanırsınız ve sonra yeni zip paketinizi üretim slotunda çalıştırmak için swap yaparsınız.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"appServiceName": {
"type": "string"
},
"deployToProduction": {
"type": "bool",
"defaultValue": false
},
"slot": {
"type": "string",
"defaultValue": "staging"
},
"packageUri": {
"type": "secureString"
}
},
"resources": [
{
"condition": "[parameters('deployToProduction')]",
"type": "Microsoft.Web/sites/extensions",
"apiVersion": "2021-02-01",
"name": "[format('{0}/ZipDeploy', parameters('appServiceName'))]",
"properties": {
"packageUri": "[parameters('packageUri')]",
"appOffline": true
}
},
{
"condition": "[not(parameters('deployToProduction'))]",
"type": "Microsoft.Web/sites/slots/extensions",
"apiVersion": "2021-02-01",
"name": "[format('{0}/{1}/ZipDeploy', parameters('appServiceName'), parameters('slot'))]",
"properties": {
"packageUri": "[parameters('packageUri')]",
"appOffline": true
}
}
]
}
İlk dağıtımda doğrudan üretim slotuna dağıtırsınız. Daha fazla bilgi için bkz Yuva dağıtımları.
Dağıtım paketinden işlevleri çalıştırma
Dağıtım paketinden doğrudan çalıştırıldığında, dosyaları dizine wwwroot kopyalamak atlanır. Bunun yerine, Functions çalışma zamanı paketi yalnızca wwwroot okunabilir bir dizin olarak monte eder. Bu yaklaşım:
- Dosya kopyalama kilitleme sorunlarını azaltır.
- Uygulamanızda çalışan dosyaları doğrular.
- Azure Resource Manager deployment performansını iyileştirir.
- Soğuk başlatma süresini azaltabilir, özellikle büyük npm paket ağaçlarına sahip JavaScript uygulamaları için.
Flex Consumption paket yapılandırması
Flex Consumption uygulamaları varsayılan olarak bir paketten çalışır.
WEBSITE_RUN_FROM_PACKAGE uygulama ayarını eklemeyin. Depolama konteyneri ve kimlik doğrulama yöntemi dahil olmak üzere dağıtım ayarları, fonksiyon uygulaması kaynağının özellikleridir. Daha fazla bilgi için bkz. Dağıtım.
Premium ve Özel paket yapılandırması
WEBSITE_RUN_FROM_PACKAGE değerini, doğrudan yerel olarak dağıtılmış paketten çalıştırmak için 1 olarak ayarlayın. Çalışma zamanı, paketi Windows'taki c:\home\data\SitePackages klasörde veya /home/data/SitePackages Linux'ta klasörde saklar.
Tüketim paketi yapılandırması
Desteklenen WEBSITE_RUN_FROM_PACKAGE değer işletim sistemine bağlıdır:
| İşletim Sistemi | Değer | Davranış |
|---|---|---|
| Windows | 1 |
Uygulama, klasördeki c:\home\data\SitePackages bir paketten çalışıyor. |
| Linux | <URL> |
Uygulama, paketten belirlenen URL'de çalışır. Managed identity kullanılarak erişilen özel Azure Blob Depolama konteynerini kullanın. |
Önemli
Tüketim planında Linux'ta kullanım süresi sonu v3 çalışma zamanını çalıştırmaya devam eden işlev uygulamaları 30 Eylül 2026'dan sonra çalışmayı durduruyor. Hizmet kesintisini önlemek için uygulamanızı v4 çalışma zamanına geçirin.
Tüketim planında Linux'ta işlev uygulamaları barındırma seçeneği 30 Eylül 2028'de kullanımdan kaldırılıyor. Linux Tüketim planı yeni özellikler veya dil sürümleri almayacak. Tüketim planında Windows çalışan uygulamalar şu anda etkilenmez. Uygulamalarınızı kullanımdan kaldırma tarihinden önce Esnek Tüketim planına geçirin.
Paket dağıtımı konuları
Fonksiyon uygulamanızı bir paketten dağıtıp çalıştırırken bu gereksinimleri ve sınırlamaları aklınızda bulundurun:
- Paket .zip formatı kullanmak zorundadır. Tar ve gzip biçimleri desteklenmez.
- Maksimum paket boyutu 1 GB'dır. Dağıtım, proje dosyalarını açtığında geçici depolama kullanır, bu yüzden uygulamanın da yeterli geçici depolama alanı olması gerekir. Tüketim planı, her plan için 500 MB geçici depolama sağlar.
- Bir paket üzerinden çalıştırdığınızda, Azure portalı da dahil olmak üzere,
wwwrootiçindeki dosyalar salt okunurdur. - Bir paketten çalıştırırken yerel önbelleği kullanamazsınız.
- Uzaktan derleme istediğinizde
WEBSITE_RUN_FROM_PACKAGEayarını yapmayın. Bunun yerine,SCM_DO_BUILD_DURING_DEPLOYMENT=trueolarak ayarlayın. Linux'ta da ayarlaENABLE_ORYX_BUILD=true. -
WEBSITE_RUN_FROM_PACKAGEMSDeploy ile çalışmaz. Bunun yerine zip dağıtımı kullanın.
WEBSITE_RUN_FROM_PACKAGE ayarını ekleme
İşlev uygulaması ayarlarını eklemenin, güncelleştirmenin ve silmenin birkaç yolu vardır:
- Azure portalında
- Azure CLI kullanarak
Azure PowerShell kullanarak
İşlev uygulaması ayarlarında yapılan değişiklikler, işlev uygulamanızın yeniden başlatılmasını gerektirir.
zip dağıtımıyla yüklenen bir paketten çalıştır
Paketi dağıtmadan önce WEBSITE_RUN_FROM_PACKAGE değerini 1 olarak ayarlayın. Zip dağıtım API'si, içeriğini wwwroot klasörüne ayıklamak yerine paketi SitePackages klasörüne kopyalar. Dağıtım ayrıca monte edilecek paketi belirleyen packagename.txt bir dosya oluşturur. Uygulama yeniden başladıktan sonra paket sadece wwwroot okunabilir dizin olarak monte edilir. Linux Tüketim uygulamaları bu ayar değerini desteklemez ve bunun yerine harici bir paket URL'sinden çalışmak zorundadır.
Dağıtım uygulamayı yeniden başlattığında, şu anda çalışan fonksiyon çalışmaları sona erer. Yeniden başlatmaları güvenli bir şekilde işleyen işlevlerin nasıl yazılacağı hakkında bilgi için İşlevleri durumsuz olacak şekilde yazın bölümüne bakın.
Harici bir paket URL'sinden çalıştır
Paket depolama yönetimini kendiniz yönetmeniz gerektiğinde harici bir paket URL'si kullanın. Bu seçeneğe Linux Tüketim uygulamasında yerel olarak oluşturulmuş bir paket çalıştırmak için ihtiyacınız var. Flex Consumption'te desteklenmiyor.
Uyarı
WEBSITE_RUN_FROM_PACKAGE=1 kullanan mevcut bir işlev uygulamasını, harici bir paket URL'sinden çalışacak şekilde değiştiremezsiniz. Harici bir paket URL'si kullanmak için yeni bir fonksiyon uygulaması oluşturun ve paket URL'sine ayarlayın WEBSITE_RUN_FROM_PACKAGE .
Özel bir Blob Depolama konteyneri kullanın ve fonksiyon uygulamasının yönetilen kimlik erişimini pakete verin. Yönetilen kimlik kullanın çünkü SAS token'ları süresi doluyor ve bakım gerektiriyor. Güncellenmiş bir paket yayınladığınızda, tetikleyicileri manuel olarak senkronize etmeniz gerekir. Paketi URL'sini değiştirmeden güncellerseniz, tetikleyicileri senkronize etmeden önce fonksiyon uygulamasını yeniden başlatın.
Bir paketi Azure Blob Depolama’a el ile yükleyin
Bir .zip dağıtım paketi oluşturun.
Azure portalında depolama hesabınıza gidin.
Veri depolama bölümünden Konteynerler seçin ve ardından özel bir konteyner oluşturun veya seçin.
Paketi konteynere yükleyin.
Yüklenen blobu seçin ve URL'sini kopyalayın. Yönetilen bir kimlik kullanmıyorsanız, bunun yerine bir SAS URL'si oluşturun.
Fonksiyon uygulamanızda Ayarlar'ı genişletin, Ortam değişkenlerini seçin ve ardından Uygulama ayarları sekmesinden Ekle'yi seçin.
Değeri paket URL'si olan,
WEBSITE_RUN_FROM_PACKAGEadlı bir ayar ekleyin.Değişiklikleri uygulayın, uygulamayı yeniden başlatın ve tetikleyicileri manuel olarak senkronize edin.
Azure Blob Depolama'den yönetilen kimlik kullanarak bir paket getir
Azure Blob Depolama'ı, istekleri Microsoft Entra ID ile yetkilendirmek için yapılandırabilirsiniz. Bu yapılandırma, süresi dolan bir SAS anahtarı oluşturmak yerine uygulamanın yönetilen kimliğine güvenebileceğiniz anlamına gelir.
Varsayılan olarak, uygulamanın sistem tarafından atanan kimliği kullanılır. Kullanıcı tarafından atanan bir kimlik belirtmek istiyorsanız, WEBSITE_RUN_FROM_PACKAGE_BLOB_MI_RESOURCE_ID uygulama ayarını o kimliğin kaynak kimliğiyle ayarlayabilirsiniz. Ayar, SystemAssigned'i bir değer olarak da kabul edebilir, bu da ayarın devre dışı bırakılmasına eşdeğerdir.
Paketin kimlik kullanılarak alınabilmesi için:
Blobun özel erişim için yapılandırıldığından emin olun.
Kimliğe, paket blobu üzerinde kapsamı olan Depolama Blobu Veri Okuyucusu rolünü verin. Rol atamasını oluşturmayla ilgili ayrıntılar için bkz. Blob verilerine erişim için Azure rolü atama.
WEBSITE_RUN_FROM_PACKAGEUygulama ayarını paketin blob URL'sine ayarlayın. Bu URL genelliklehttps://<storage-account-name>.blob.core.windows.net/<container-name>/<path-to-package>şeklindedir veya benzeridir.Kullanıcı tarafından atanan bir kimlik belirtmek istiyorsanız,
WEBSITE_RUN_FROM_PACKAGE_BLOB_MI_RESOURCE_IDuygulama ayarını o kimliğin kaynak kimliğiyle ayarlayabilirsiniz. Bu ayar SystemAssigned değerini de kabul edebilir ancak bu, ayarın tamamen atlanması ile aynıdır. Kaynak kimliği, Azure'daki bir kaynağın standart gösterimidir. Kullanıcı tarafından atanan yönetilen kimlik için bu/subscriptions/subid/resourcegroups/rg-name/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity-nameolacaktır. Kullanıcı tarafından atanan yönetilen kimliğin kaynak kimliği,kullanıcı tarafından atanan yönetilen kimliğin>> Kimliği bölümünden alınabilir.
Dağıtım özelleştirmesi
Dağıtım işlemi, gönderdiğiniz .zip dosyasının çalışmaya hazır bir uygulama içerdiğini varsayar. Varsayılan olarak hiçbir özelleştirme çalıştırılmaz. Sürekli tümleştirme ile elde ettiğiniz derleme işlemlerini etkinleştirmek için uygulama ayarlarınıza aşağıdakileri ekleyin:
SCM_DO_BUILD_DURING_DEPLOYMENT=true
.zip anında iletme dağıtımı kullandığınızda, bu ayar varsayılan olarak yanlıştır. Varsayılan sürekli tümleştirme dağıtımları için true'tur. True olarak ayarlandığında dağıtımla ilgili ayarlarınız dağıtım sırasında kullanılır. Bu ayarları uygulama ayarları olarak veya .zip dosyanızın kökünde bulunan bir .deployment yapılandırma dosyasında yapılandırabilirsiniz. Daha fazla bilgi için bkz. Dağıtım referansındaki Depo ve dağıtımla ilgili ayarlar.
İşlev uygulama dosyalarınızı indirme
Uygulamanızın şu anda çalıştırdığı tam pakete ihtiyacınız varsa, uygulamanızın dağıtımları için yapılandırılmış Blob Depolama konteynerinden indirin:
Azure portalındaki fonksiyon uygulaması sayfanızda Ayarlar'ı genişletin ve ardından Dağıtım ayarlarını seçin.
Uygulama paketi konumu altında, dağıtımlar için kullanılan depolama hesabı ve konteyneri not edin.
O depolama hesabına gidin, Veri depolama'yı genişletin ve ardından Konteynerler seçeneğini seçin.
Dağıtım konteynerini seçin, mevcut paketi seçin ve ardından İndir'i seçin.
İndirilen paket, dağıttığınız oluşturulmuş uygulama içeriğini içerir ve bu içerik kaynak projenizden farklı olabilir. Her dağıtım mevcut paketin üzerine yazar ve dağıtım konteyneri dağıtım geçmişi sağlamaz.
CI/CD kullanılarak dağıtılan uygulamalar için, kaynak projesini kaynak kontrolünde tutun ve sürüm saklama politikanıza göre hazır derleme eserlerini koruyun. Belirli bir sürümü yeniden dağıtıma almak için saklanan bir artefakt kullanın. Uygulamanın şu anda çalıştırdığı tam pakete ihtiyacınız olduğunda veya orijinal artefakt artık mevcut olmadığında paketi dağıtım konteynerinde kullanın.
İşlev uygulama dosyalarınızı indirme
İşlevlerinizi Azure portalındaki düzenleyiciyi kullanarak oluşturduysanız, mevcut işlev uygulaması projenizi şu yollardan biriyle .zip dosyası olarak indirebilirsiniz:
Azure portalında oturum açın ve ardından işlev uygulamanıza gidin.
Genel Bakış sekmesinde Uygulama içeriğini indir'i seçin. İndirme seçeneklerinizi ve ardından İndir'i seçin.
İndirilen .zip dosyası, .zip iletme dağıtımı kullanılarak işlev uygulamanıza yeniden yayımlanmak için doğru biçimdedir. Portal indirmesi, işlev uygulamanızı doğrudan Visual Studio'da açmak için gereken dosyaları da ekleyebilir.
CI/CD kullanılarak dağıtılan uygulamalar için, kaynak projesini kaynak kontrolünde tutun ve sürüm saklama politikanıza göre hazır derleme eserlerini koruyun. Bir depodan indirilen bir kaynak arşiv, bir dağıtım paketi değildir. Projeyi inşa etmek ve dağıtmak için dağıtım iş akışınızı kullanın.