Azure İşlevleri'nde dağıtım teknolojileri

Azure İşlevleri proje kodunuzu Azure'a dağıtmak için birkaç farklı teknoloji kullanabilirsiniz. Bu makalede, kullanabileceğiniz dağıtım yöntemlerine genel bir bakış ve çeşitli senaryolarda kullanılacak en iyi yönteme yönelik öneriler sağlanır. Ayrıca, temel dağıtım teknolojileriyle ilgili ayrıntılı ve önemli ayrıntıların bir listesini sağlar.

Dağıtım yöntemleri

Azure'da işlev uygulamanıza kod yayımlamak için kullandığınız dağıtım teknolojisi, özel gereksinimlerinize ve geliştirme döngüsündeki noktaya bağlıdır. Örneğin, geliştirme ve test sırasında doğrudan Visual Studio Code gibi geliştirme aracınızdan dağıtabilirsiniz. Uygulamanız üretim aşamasındayken, kaynak denetiminden veya doğrulama ve test içerebilen otomatik yayımlama işlem hattı kullanarak sürekli yayımlama olasılığınız daha yüksektir.

Aşağıdaki tabloda, kod projeniz için kullanılabilir dağıtım yöntemleri açıklanmaktadır.

Dağıtım türü Yöntemler En iyi...
Araçlar tabanlı Visual Studio Code yayımlama
Visual Studio yayımlama
Temel Araçlar yayımlama
Geliştirme sırasındaki dağıtımlar ve diğer geliştirilmiş dağıtımlar. Yerel geliştirme araçlarını kullanarak kodunuzu isteğe bağlı olarak dağıtma.
App Service tarafından yönetilen Dağıtım Merkezi (CI/CD)
Kapsayıcı dağıtımları
Kaynak denetiminden veya kapsayıcı kayıt defterinden sürekli dağıtım (CI/CD). Dağıtımlar App Service platformu (Kudu) tarafından yönetilir.
Dış işlem hatları Azure Pipelines
GitHub Actions
Doğrulama, test ve otomatik dağıtımın parçası olarak çalıştırılması gereken diğer eylemleri içeren üretim işlem hatları. Dağıtımlar işlem hattı tarafından yönetilir.

Belirli dağıtımlar, belirli senaryoya göre en iyi teknolojiyi kullanmalıdır. Dağıtım yöntemlerinin çoğu, dağıtım için önerilen zip dağıtımını temel alır.

Dağıtım teknolojisi kullanılabilirliği

Dağıtım yöntemi, işlev uygulamanızı çalıştırdığınız barındırma planına ve işletim sistemine de bağlıdır.
İşlevler şu anda üç barındırma planı sunmaktadır:

Her planın farklı davranışları vardır. Her barındırma planı ve işletim sistemi için tüm dağıtım teknolojileri kullanılamaz. Bu grafik desteklenen dağıtım teknolojileri hakkında bilgi sağlar:

Dağıtım teknolojisi Windows Tüketimi Windows Premium Windows Ayrılmış Linux Tüketimi Linux Premium Linux Ayrılmış
Dış paket URL'si1
Zip dağıtımı
Docker kapsayıcısı
Kaynak denetimi
Yerel Git1
FTPS1
Portal içi düzenleme2

1 Tetikleyicileri el ile eşitlemenizi gerektiren dağıtım teknolojileri önerilmez.
2 Kod, portal dışından işlev uygulamanıza dağıtıldığında portal içi düzenleme devre dışı bırakılır. Portal içi düzenleme için dil desteği ayrıntıları da dahil olmak üzere daha fazla bilgi için bkz . Dil desteği ayrıntıları.

Temel kavramlar

Bazı temel kavramlar, dağıtımların Azure İşlevleri nasıl çalıştığını anlamak için kritik öneme sahiptir.

Tetikleyici eşitlemesi

Tetikleyicilerinizden herhangi birini değiştirdiğinizde, İşlevler altyapısı değişikliklerin farkında olmalıdır. Eşitleme birçok dağıtım teknolojisi için otomatik olarak gerçekleşir. Ancak bazı durumlarda tetikleyicilerinizi el ile eşitlemeniz gerekir.

Bu dağıtım seçeneklerini kullanırken tetikleyicileri el ile eşitlemeniz gerekir:

Tetikleyicileri üç yoldan biriyle eşitleyebilirsiniz:

  • İşlev uygulamanızı Azure portalında yeniden başlatın.
  • Ana anahtarı kullanmak için https://{functionappname}.azurewebsites.net/admin/host/synctriggers?code=<API_KEY> bir HTTP POST isteği gönderin.
  • adresine https://management.azure.com/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>/providers/Microsoft.Web/sites/<FUNCTION_APP_NAME>/syncfunctiontriggers?api-version=2016-08-01bir HTTP POST isteği gönderin. Yer tutucuları abonelik kimliğiniz, kaynak grubu adınız ve işlev uygulamanızın adıyla değiştirin. Bu istek, istek üst bilgisindeAuthorization bir erişim belirteci gerektirir.

Dış paket URL'si kullanarak dağıttığınızda, ilk dağıtımı içeren URL'yi değiştirmeden paket değiştiğinde dağıtımınızı tamamen eşitlemek için işlev uygulamanızı el ile yeniden başlatmanız gerekir.

İşlev uygulamanızın güvenliği gelen ağ kısıtlamalarıyla sağlandığında eşitleme tetikleyicileri uç noktası yalnızca sanal ağın içindeki bir istemciden çağrılabilir.

Uzaktan derleme

Azure İşlevleri, zip dağıtımlarından sonra aldığı kod üzerinde derlemeleri otomatik olarak gerçekleştirebilir. Bu derlemeler, uygulamanızın Windows veya Linux üzerinde çalışıp çalışmadığına bağlı olarak farklılık gösterir.

Windows üzerinde çalışan tüm işlev uygulamalarının scm kudu tarafından sağlanan küçük bir yönetim uygulaması vardır. Bu site, Azure İşlevleri için dağıtım ve derleme mantığının büyük bir kısmını işler.

Bir uygulama Windows'a dağıtıldığında, (C#) veya npm install (JavaScript) gibi dotnet restore dile özgü komutlar çalıştırılır.

Dağıtım sırasında uzak derlemeler kullanılırken aşağıdaki noktalar geçerlidir:

  • Uzak derlemeler, Tüketim planında Linux üzerinde çalışan işlev uygulamaları için desteklenir. Ancak, bir (Kudu) sitesi olmadığından scm bu uygulamalar için dağıtım seçenekleri sınırlıdır.
  • Linux'ta Premium plan veya Ayrılmış (App Service) planındaçalışan işlev uygulamalarının bir scm (Kudu) sitesi vardır, ancak Windows ile karşılaştırıldığında sınırlıdır.
  • Bir uygulama paketten çalıştır'ı kullanırken uzak derlemeler gerçekleştirilmez. Bu gibi durumlarda uzak derlemeyi kullanmayı öğrenmek için bkz . Zip dağıtımı.
  • Özellik kullanıma sunulmadan önce uygulamanız oluşturulduğunda (1 Ağustos 2019) uzaktan derlemeyle ilgili sorunlarla karşılaşabilirsiniz. Eski uygulamalar için yeni bir işlev uygulaması oluşturun veya işlev uygulamanızı güncelleştirmek için komutunu çalıştırın az functionapp update --resource-group <RESOURCE_GROUP_NAME> --name <APP_NAME> . Bu komutun başarılı olması için iki deneme gerekebilir.

Uygulama içeriği depolama

Çeşitli dağıtım yöntemleri, dağıtılan veya oluşturulan uygulama yükünü işlev uygulamasıyla ilişkili depolama hesabında depolar. İşlevler yapılandırıldığında Azure Dosyalar içerik paylaşımını kullanmaya çalışır, ancak bazı yöntemler yükü bağlantıyla AzureWebJobsStorage ilişkili blob depolama örneğinde depolar. Sonraki bölümde ele alınan her dağıtım teknolojisinin Uygulama içeriğinin depolandığı yer paragraflarındaki ayrıntılara bakın.

Önemli

Depolama hesabı, bazen uygulama kodunun kendisi de dahil olmak üzere önemli uygulama verilerini depolamak için kullanılır. Diğer uygulama ve kullanıcılardan depolama hesabına erişimi sınırlamanız gerekir.

Dağıtım teknolojisi ayrıntıları

Aşağıdaki dağıtım yöntemleri Azure İşlevleri'de kullanılabilir.

Dış paket URL'si

İşlev uygulamanızı içeren bir uzak paket (.zip) dosyasına başvurmak için bir dış paket URL'si kullanabilirsiniz. Dosya sağlanan URL'den indirilir ve uygulama Paketten Çalıştır modunda çalışır.

Nasıl kullanılır: Uygulama ayarlarınıza ekleyin WEBSITE_RUN_FROM_PACKAGE . Bu ayarın değeri bir URL (çalıştırmak istediğiniz paket dosyasının konumu) olmalıdır. Ayarları portaldan veya Azure CLI kullanarak ekleyebilirsiniz.

Azure Blob depolama kullanıyorsanız, İşlevler'e pakete erişim vermek için paylaşılan erişim imzası (SAS) içeren özel bir kapsayıcı kullanın. Uygulama her yeniden başlatıldığında içeriğin bir kopyasını getirir. Başvurunuzun uygulamanın ömrü boyunca geçerli olması gerekir.

Ne zaman kullanılır: Dış paket URL'si, kullanıcı uzak derlemenin gerçekleşmesini istemiyorsa Tüketim planında Linux üzerinde çalışan Azure İşlevleri için desteklenen tek dağıtım yöntemidir. bir işlev uygulamasının başvurduğunu paket dosyasını her dağıttığınızda, ilk dağıtım dahil olmak üzere tetikleyicileri el ile eşitlemeniz gerekir. URL'nin kendisini değil paket dosyasının içeriğini değiştirdiğinizde, tetikleyicileri eşitlemek için işlev uygulamanızı da yeniden başlatmanız gerekir.

Uygulama içeriğinin depolandığı yer: Uygulama içeriği belirtilen URL'de depolanır. Bu, azure bloblarında, büyük olasılıkla bağlantı tarafından AzureWebJobsStorage belirtilen depolama hesabında olabilir. Bazı istemci araçları varsayılan olarak bu hesaptaki bir bloba dağıtılabilir. Örneğin, Linux Tüketim uygulamaları için Azure CLI tarafından AzureWebJobsStoragebelirtilen hesaptaki bir blobda depolanan bir paket aracılığıyla dağıtmayı dener.

Zip dağıtımı

İşlev uygulamanızı içeren bir .zip dosyasını Azure'a göndermek için zip dağıtımı kullanın. İsteğe bağlı olarak, uygulamanızı paketten çalıştırmaya başlayacak şekilde ayarlayabilir veya uzak bir derlemenin gerçekleşeceğini belirtebilirsiniz.

Nasıl kullanılır: Sık kullandığınız istemci aracını kullanarak dağıtın: Visual Studio Code, Visual Studio veya Azure İşlevleri Core Tools kullanarak komut satırından. Varsayılan olarak, bu araçlar zip dağıtımını kullanır ve paketten çalıştırılır. Çekirdek Araçlar ve Visual Studio Code uzantısı, Linux'a dağıtılırken uzaktan derlemeyi etkinleştirir. bir .zip dosyasını işlev uygulamanıza el ile dağıtmak için .zip dosyasından veya URL'den dağıtma başlığındaki yönergeleri izleyin.

Zip deploy kullanarak dağıttığınızda, uygulamanızı paketten çalışacak şekilde ayarlayabilirsiniz. Paketten çalıştırmak için uygulama ayarı değerini olarak 1ayarlayınWEBSITE_RUN_FROM_PACKAGE. Zip dağıtımını öneririz. Uygulamalarınız için daha hızlı yükleme süreleri sağlar ve VS Code, Visual Studio ve Azure CLI için varsayılan değerdir.

Ne zaman kullanılır: Zip dağıtımı, Azure İşlevleri için önerilen dağıtım teknolojisidir.

Uygulama içeriğinin depolandığı yer: Varsayılan olarak zip dağıtımından alınan uygulama içeriği, işlev uygulaması oluşturulduğunda belirtilen depolama hesabından Azure Dosyalar tarafından yedeklenebilen dosya sisteminde depolanır. Linux Tüketimi'nde, uygulama içeriği bunun yerine bağlantı tarafından AzureWebJobsStorage belirtilen depolama hesabındaki bir blobda kalıcı olur.

Docker kapsayıcısı

Linux kapsayıcısında çalışan bir işlev uygulaması dağıtabilirsiniz.

Nasıl kullanılır:Linux kapsayıcısında işlevlerinizi oluşturun ve ardından kapsayıcıyı Azure İşlevleri veya başka bir kapsayıcı konağındaki Premium veya Ayrılmış plana dağıtın. Kapsayıcılı işlev uygulaması oluşturmak için kullandığınız projeniz için özelleştirilmiş bir Dockerfile oluşturmak üzere Azure İşlevleri Temel Araçları'nı kullanın. Kapsayıcıyı aşağıdaki dağıtımlarda kullanabilirsiniz:

Ne zaman kullanılır: İşlev uygulamanızın çalıştığı ve kapsayıcının barındırıldığı Linux ortamı üzerinde daha fazla denetime ihtiyacınız olduğunda Docker kapsayıcısı seçeneğini kullanın. Bu dağıtım mekanizması yalnızca Linux üzerinde çalışan işlevler için kullanılabilir.

Uygulama içeriğinin depolandığı yer: Uygulama içeriği, görüntünün bir parçası olarak belirtilen kapsayıcı kayıt defterinde depolanır.

Kaynak denetimi

İşlev uygulamanızla kaynak kodu deposu arasında sürekli tümleştirmeyi etkinleştirebilirsiniz. Kaynak denetimi etkinleştirildiğinde, bağlı kaynak deposundaki kod güncelleştirmeleri depodan en son kodun dağıtımını tetikler. Daha fazla bilgi için bkz. Azure İşlevleri için sürekli dağıtım.

Nasıl kullanılır: Kaynak denetiminden yayımlamayı ayarlamanın en kolay yolu, portalın İşlevler alanındaki Dağıtım Merkezi'ndendir. Daha fazla bilgi için bkz. Azure İşlevleri için sürekli dağıtım.

Ne zaman kullanılır: Kaynak denetimini kullanmak, işlev uygulamaları üzerinde işbirliği yapan ekipler için en iyi yöntemdir. Kaynak denetimi, daha karmaşık dağıtım işlem hatlarını etkinleştiren iyi bir dağıtım seçeneğidir. Kaynak denetimi genellikle depodaki güncelleştirmeler doğrulandıktan sonra üretime değiştirilebilen bir hazırlama yuvasında etkinleştirilir. Daha fazla bilgi için bkz. Azure İşlevleri dağıtım yuvaları.

Uygulama içeriğinin depolandığı yer: Uygulama içeriği kaynak denetim sistemindedir, ancak yerel olarak kopyalanmış ve oluşturulan bir uygulama içeriği, işlev uygulaması oluşturulduğunda belirtilen depolama hesabından Azure Dosyalar tarafından yedeklenebilen uygulama dosya sisteminde depolanır.

Yerel Git

Git kullanarak yerel makinenizden Azure İşlevleri kodu göndermek için yerel Git'i kullanabilirsiniz.

Nasıl kullanılır: Azure Uygulaması Hizmeti için Yerel Git dağıtımındaki yönergeleri izleyin.

Ne zaman kullanılır: Hata olasılığını azaltmak için tetikleyicileri el ile eşitlemenin ek adımını gerektiren dağıtım yöntemlerini kullanmaktan kaçınmanız gerekir. Mümkün olduğunda zip dağıtımını kullanın.

Uygulama içeriğinin depolandığı yer: Uygulama içeriği, işlev uygulaması oluşturulduğunda belirtilen depolama hesabından Azure Dosyalar tarafından yedeklenebilen dosya sisteminde depolanır.

FTP/S

Dosyaları doğrudan Azure İşlevleri aktarmak için FTP/S kullanabilirsiniz, ancak bu dağıtım yöntemi önerilmez. FTP kullanmayı planlamıyorsanız devre dışı bırakmanız gerekir. FTP kullanmayı seçerseniz, FTPS'yi zorunlu kılmanız gerekir. Azure portalında nasıl yapılacağını öğrenmek için bkz . FTPS'yi zorunlu kılma.

Nasıl kullanılır: FTPS kullanarak işlev uygulamanıza dağıtmak için kullanabileceğiniz URL'yi ve kimlik bilgilerini almak için FTPS dağıtım ayarlarındaki yönergeleri izleyin.

Ne zaman kullanılır: Hata olasılığını azaltmak için tetikleyicileri el ile eşitlemenin ek adımını gerektiren dağıtım yöntemlerini kullanmaktan kaçınmanız gerekir. Mümkün olduğunda zip dağıtımını kullanın.

Uygulama içeriğinin depolandığı yer: Uygulama içeriği, işlev uygulaması oluşturulduğunda belirtilen depolama hesabından Azure Dosyalar tarafından yedeklenebilen dosya sisteminde depolanır.

Portal düzenleme

Portal tabanlı düzenleyicide, işlev uygulamanızdaki dosyaları doğrudan düzenleyebilirsiniz (değişikliklerinizi her kaydettiğinizde temelde dağıtılır).

Nasıl kullanılır: İşlevlerinizi Azure portalında düzenleyebilmek için, işlevlerinizi portalda oluşturmuş olmanız gerekir. Tek bir doğru kaynağını korumak için, başka bir dağıtım yöntemini kullanmak işlevinizi salt okunur hale getirir ve portal düzenlemesinin devam etmesini engeller. Azure portalında dosyalarınızı düzenleyebildiğiniz bir duruma dönmek için düzenleme modunu el ile uygulamasına Read/Write döndürebilir ve dağıtımla ilgili uygulama ayarlarını (örneğin) WEBSITE_RUN_FROM_PACKAGEkaldırabilirsiniz.

Ne zaman kullanılır: Portal, Azure İşlevleri kullanmaya başlamak için iyi bir yoldur. Daha gelişmiş geliştirme çalışmaları için aşağıdaki istemci araçlarından birini kullanmanızı öneririz:

Uygulama içeriğinin depolandığı yer: Uygulama içeriği, işlev uygulaması oluşturulduğunda belirtilen depolama hesabından Azure Dosyalar tarafından yedeklenebilen dosya sisteminde depolanır.

Aşağıdaki tabloda, portal içi düzenlemeyi destekleyen işletim sistemleri ve diller gösterilmektedir:

Dil Windows Tüketimi Windows Premium Windows Ayrılmış Linux Tüketimi Linux Premium Linux Ayrılmış
C#1
Java
JavaScript (Node.js)
Python2
PowerShell
TypeScript (Node.js)

1 Portal içi düzenleme yalnızca konakla birlikte işlem halinde çalışan C# betik dosyaları için desteklenir. Daha fazla bilgi için Azure İşlevleri C# betiği (.csx) geliştirici başvurusuna bakın.
2 Portal içi düzenleme yalnızca v1 Python programlama modeli için desteklenir.

Dağıtım davranışları

güncelleştirmeleri işlev uygulama kodunuz için dağıttığınızda, şu anda yürütülen işlevler sonlandırılır. Dağıtım tamamlandıktan sonra, istekleri işlemeye başlamak için yeni kod yüklenir. Durum bilgisi olmayan ve savunma işlevleri yazmayı öğrenmek için Azure İşlevleri performansını ve güvenilirliğini geliştirme'yi gözden geçirin.

Bu geçiş üzerinde daha fazla denetime ihtiyacınız varsa dağıtım yuvalarını kullanmanız gerekir.

Dağıtım yuvaları

İşlev uygulamanızı Azure'a dağıttığınızda doğrudan üretim yerine ayrı bir dağıtım yuvasına dağıtabilirsiniz. Dağıtım yuvasına dağıtmak ve doğrulamadan sonra üretime geçmek, sürekli dağıtımı yapılandırmanın önerilen yoludur.

Yuvaya dağıtma yönteminiz, kullandığınız dağıtım aracına bağlıdır. Örneğin, Azure İşlevleri Temel Araçları kullanırken, komut için func azure functionapp publish belirli bir yuvanın adını belirtme seçeneğini eklersiniz--slot.

Dağıtım yuvaları hakkında daha fazla bilgi için Azure İşlevleri Dağıtım Yuvaları belgelerine bakın.

Sonraki adımlar

İşlev uygulamalarınızı dağıtma hakkında daha fazla bilgi edinmek için şu makaleleri okuyun: