Azure Işlevlerinizi bir paket dosyasından çalıştırın

Azure 'da işlevlerinizi doğrudan işlev uygulamanızdaki bir dağıtım paketi dosyasından çalıştırabilirsiniz. Diğer seçenek, dosyalarınızı d:\home\site\wwwroot işlev uygulamanızın dizinine dağıtmaktır.

Bu makalede, işlevlerinizi bir paketten çalıştırmanın avantajları açıklanmaktadır. Ayrıca, işlev uygulamanızda bu işlevselliği nasıl etkinleştireceğinizi gösterir.

Bir paket dosyasından çalıştırmanın avantajları

Bir paket dosyasından çalıştırmanın çeşitli avantajları vardır:

  • Dosya kopyalama kilitleme sorunları riskini azaltır.
  • , Bir üretim uygulamasına dağıtılabilir (yeniden başlatma ile).
  • Uygulamanızda çalışmakta olan dosyalardan emin olabilirsiniz.
  • Azure Resource Manager dağıtımlarınınperformansını geliştirir.
  • Özellikle büyük NPM paket ağaçları olan JavaScript işlevleri için soğuk başlangıç zamanlarını azaltabilir.

Daha fazla bilgi için bu duyuruyabakın.

İşlevleri bir paketten çalıştırmak için etkinleştirme

İşlev uygulamanızın bir paketten çalıştırılmasını sağlamak için, WEBSITE_RUN_FROM_PACKAGE işlev uygulaması ayarlarınıza yalnızca bir ayar eklersiniz. WEBSITE_RUN_FROM_PACKAGEAyar aşağıdaki değerlerden birine sahip olabilir:

Değer Açıklama
1 Windows çalışan işlev uygulamaları için önerilir. İşlev uygulamanızın klasöründeki bir paket dosyasından çalıştırın d:\home\data\SitePackages . ZIP dağıtımı ile dağıtılmadığından, bu seçenek klasörün ayrıca adlı bir dosyaya sahip olmasını gerektirir packagename.txt . Bu dosya, bir boşluk olmadan yalnızca klasördeki paket dosyasının adını içerir.
<URL> Çalıştırmak istediğiniz belirli bir paket dosyasının konumu. Bir URL belirttiğinizde, güncelleştirilmiş bir paket yayımladıktan sonra Tetikleyicileri de eşitlemeniz gerekir.
Blob depolamayı kullanırken, genellikle genel bir blob kullanmamalısınız. Bunun yerine, paylaşılan erişim imzası (SAS) ile özel bir kapsayıcı kullanın veya işlevler çalışma zamanının pakete erişmesini sağlamak için yönetilen bir kimlik kullanın . paket dosyalarını Blob depolama hesabınıza yüklemek için Azure Depolama Gezgini kullanabilirsiniz.

Dikkat

Windows üzerinde bir işlev uygulaması çalıştırırken, dış URL seçeneği daha kötü soğuk başlangıç performansı verir. işlev uygulamanızı Windows dağıtma sırasında, ' a ayarlamanız WEBSITE_RUN_FROM_PACKAGE 1 ve zıp dağıtımına yayımlamanız gerekir.

Aşağıda, Azure Blob depolamada barındırılan bir .zip dosyasından çalışacak şekilde yapılandırılmış bir işlev uygulaması gösterilmektedir:

WEBSITE_RUN_FROM_ZIP uygulama ayarı

Not

Şu anda yalnızca .zip paket dosyaları desteklenir.

yönetilen kimlik kullanarak Azure Blob Depolama paket getirme

Azure Blob Depolama Azure AD ile istekleri yetkilendirmek için yalıtabilirsiniz. Başka bir anlama gelir; süre sonu ile bir SAS anahtarı oluşturmak yerine uygulamanın yönetilen kimliğine güvenebilirsiniz. Varsayılan olarak, uygulamanın sistem tarafından atanan kimliği kullanılır. Kullanıcı tarafından atanan bir kimlik belirtmek isterseniz, uygulama ayarını bu WEBSITE_RUN_FROM_PACKAGE_BLOB_MI_RESOURCE_ID kimliğin kaynak kimliği olarak ayarlayın. Ayar bir değer olarak "SystemAssigned" değerini de kabul eder, ancak bu ayar tamamen at ile aynıdır.

Kimliği kullanarak paketin getirilsin sağlamak için:

  1. Blob'un özel erişim için yapılandırıldığından emin olmak.

  2. Kimlik, Depolama blobu üzerinde kapsam ile Blob Veri Okuyucusu rolüne sahip olur. Rol ataması oluşturma hakkında ayrıntılı bilgi için bkz. Blob verilerine erişim için Azure rolü atama.

  3. Uygulama WEBSITE_RUN_FROM_PACKAGE ayarını paketin blob URL'si olarak ayarlayın. Bu büyük olasılıkla "https://{storage-account-name}.blob.core.windows.net/{container-name}/{path-to-package}" şeklinde veya benzer bir şekilde olur.

ZIP dağıtımıyla tümleştirme

ZIP dağıtımı , işlev uygulaması projenizi dizine dağıtmanıza olanak sağlayan bir Azure App Service özelliğidir wwwroot . Proje bir .zip dağıtım dosyası olarak paketlenmiştir. Paketinizi klasöre dağıtmak için aynı API 'Ler kullanılabilir d:\home\data\SitePackages . WEBSITE_RUN_FROM_PACKAGEUygulama ayarı değeri ile 1 , ZIP dağıtım API 'leri d:\home\data\SitePackages dosyaları içine ayıklamak yerine paketini klasörüne kopyalar d:\home\site\wwwroot . Ayrıca dosyayı da oluşturur packagename.txt . Yeniden başlatmadan sonra, paket wwwroot salt okunurdur. ZIP dağıtımı hakkında daha fazla bilgi için bkz. Azure işlevleri Için zip dağıtımı.

Not

Bir dağıtım gerçekleştiğinde, işlev uygulamasının yeniden başlatılması tetiklenir. Yeniden başlatmadan önce, var olan tüm işlev yürütmeleri tamamlanana veya zaman aşımına izin verilir. Daha fazla bilgi için bkz. dağıtım davranışları.

WEBSITE_RUN_FROM_PACKAGE ayarı ekleniyor

İşlev uygulaması ayarlarını ekleyebileceğiniz, güncelleştiren ve silebilmeniz için çeşitli yollar vardır:

İşlev uygulaması ayarlarında yapılan değişiklikler, işlev uygulamanızın yeniden başlatılmasını gerektirir.

Azure Depolama barındırılan bir paketi el ile yüklemek için örnek iş akışı

URL seçeneğini kullanırken daraltılmış bir paketi dağıtmak için, .zip sıkıştırılmış bir dağıtım paketi oluşturmanız ve onu hedefe yüklemeniz gerekir. bu örnek bir Blob Depolama kapsayıcısı kullanır.

  1. Seçtiğiniz yardımcı programı kullanarak projeniz için bir .zip paketi oluşturun.

  2. Azure Portaldepolama hesabı adınızı arayın veya depolama hesaplarında buna gözatamazsınız.

  3. Depolama hesabında, veri depolama altında kapsayıcılar ' ı seçin.

  4. hesabınızda yeni bir Blob Depolama kapsayıcısı oluşturmak için + kapsayıcı ' yı seçin.

  5. Yeni kapsayıcı sayfasında, bir ad sağlayın (örneğin, "dağıtımlar"), ortak erişim düzeyinin özel olduğundan emin olun ve Oluştur' u seçin.

  6. oluşturduğunuz kapsayıcıyı seçin, Upload' yi seçin, projenizle oluşturduğunuz .zip dosyasının konumuna gidin ve Upload' yı seçin.

  7. Karşıya yükleme tamamlandıktan sonra karşıya yüklenen blob dosyanızı seçin ve URL 'YI kopyalayın. Kimlik kullanmıyorsanız BIR SAS URL 'si oluşturmanız gerekebilir

  8. İşlev uygulamanızı arayın veya işlev uygulaması sayfasında bu uygulamaya gözatamazsınız.

  9. işlev uygulamanızda Ayarlar altında konfigürasyonlar ' ı seçin.

  10. uygulama Ayarlar sekmesinde yeni uygulama ayarı ' nı seçin.

  11. WEBSITE_RUN_FROM_PACKAGE ad için bir değer girin ve paketin URL 'sini Blob Depolama ' de değer olarak yapıştırın.

  12. Tamam’ı seçin. Sonra > Ayarları kaydetmek ve uygulamayı yeniden başlatmak için devam Kaydet ' i seçin.

Şimdi, dağıtım paketi .zip dosyasını kullanarak dağıtımın başarılı olduğunu doğrulamak için işlevinizi Azure 'da çalıştırabilirsiniz.

Sorun giderme

  • Paketten Çalıştır wwwroot salt okunurdur, bu nedenle dosyaları bu dizine yazarken bir hata alırsınız.
  • Tar ve gzip biçimleri desteklenmez.
  • ZIP dosyası en fazla 1 GB olabilir.
  • Bu özellik yerel önbellek ile oluşturmaz.
  • İyileştirilmiş soğuk başlangıç performansı için yerel ZIP seçeneğini ( WEBSITE_RUN_FROM_PACKAGE = 1) kullanın.
  • Paketten Çalıştır, dağıtım özelleştirme seçeneği () ile uyumlu değil SCM_DO_BUILD_DURING_DEPLOYMENT=true , dağıtım sırasında derleme adımı yok sayılır.

Sonraki adımlar