Azure İşlevleri için sürekli dağıtım

Azure İşlevleri, bir kaynak kontrol deposundan bir fonksiyon uygulamasına değişiklikleri sürekli olarak dağıtmanızı sağlar. Bu iş akışında, bir kod güncellemesi projenizden Azure'a derleme, paketleme ve dağıtımı tetikler. Desteklenen dağıtım sağlayıcıları ve sürüm stratejileri, barındırma planına bağlıdır.

Barındırma planı Önerilen CI/CD sağlayıcısı Dağıtım ve sürüm rehberliği
Flex Consumption GitHub Actions veya Azure Pipelines Paket dağıtımını kullanıyor. Dağıtım slotları desteklenmiyor. CI/CD sürüm kontrollerini kullanın ve kesintisiz dağıtımlar için aşamalı güncellemeleri değerlendirin.
Elastik Premium, Dedicated ve Tüketim GitHub Actions veya Azure Pipelines ZIP dağıtımı kullanıyor. Uygulamanız destekliyorsa, bir hazırlama yuvasına dağıtım yapın, güncellemeyi doğrulayın ve ardından yuvayı üretimle değiştirin.
Azure Konteyner Uygulamaları Konteyner oluşturma ve dağıtım iş akışı Bir konteyner imajını dağıtır. Daha fazla bilgi için bkz. Azure Container Apps üzerinde Azure İşlevleri'ne genel bakış.

Bu makalenin başında hosting planınızı seçin ve fonksiyon uygulamanıza uygulanan sürekli dağıtım rehberini görebilirsiniz.

Dağıtım slotlarını destekleyen barındırma planları için, sürekli dağıtımı üretim slotu yerine bir hazırlama slotu için yapılandırın. Güncelleştirmeleri sahnelemede doğrulayın ve ardından sahneleme yuvasını üretimle değiştirin. Doğrudan bir üretim yuvasına bağlanıyorsanız, entegre dala yalnızca üretim kalitesindeki kodun ulaşmasını sağlayın.

Flex Consumption için GitHub Actions veya Azure Pipelines'ı configure edin. Flex Consumption dağıtım slotlarını desteklemediği için, kötü bir dağıtımdan sonra toparlanabilmek için kaynak kontrolünde ve CI/CD sisteminde dağıtım geçmişinizi koruyun.

Azure Container Apps üzerindeki fonksiyonlar için bir konteyner imajı oluşturun ve dağıtın. Dağıtım slotları mevcut değil. Sıfır kesinti süresi olan sürümler için revizyonlar kullanın ve mavi-yeşil dağıtım stratejisini değerlendirin.

Bu makaledeki Dağıtım Merkezi adımları, App Service kaynak kontrol entegrasyonunu destekleyen fonksiyon uygulamalara uygulanır. Tüketim planında bu entegrasyon yalnızca Windows'ta desteklenmektedir. Azure CLI kullanarak kaynak kontrol entegrasyonunu da ayarlayabilirsiniz.

Azure İşlevleri, uygulamanıza sürekli dağıtım için şu kaynakları destekler:

Proje kodunuzu Azure DevOps'taki hizmetlerden biri olan Azure Repos'ta koruyun. Hem Git hem de Team Foundation Sürüm Denetimi destekler. Azure Pipelines derleme sağlayıcısı ile kullanılır. Daha fazla bilgi için bkz: Azure Repos nedir?

Fonksiyon uygulamanızı harici bir Git deposuna da bağlayabilirsiniz, ancak bu seçenek manuel senkronizasyon gerektirir. Dağıtım seçenekleri hakkında daha fazla bilgi için bkz. Azure İşlevleri'da dağıtım teknolojileri.

Not

Bu makalede ele alınan sürekli dağıtım seçenekleri yalnızca kod tabanlı dağıtımlara özeldir. Azure Container Apps üzerinde Azure İşlevleri hakkında bilgi için bkz. Azure Container Apps üzerinde Azure İşlevleri’a genel bakış. Premium veya Dedicated planda Azure İşlevleri tarafından barındırılan özel bir konteyner için, Work with containers and Azure İşlevleri bölümünde Konteynerlerin Azure'a sürekli dağıtımını etkinleştir bölümüne bakınız.

Flex Consumption, Azure Repos'tan Azure Pipelines kullanılarak ve GitHub'dan GitHub Actions kullanılarak sürekli dağıtımı destekler. App Service kaynak kontrol entegrasyonu, Bitbucket ve Local Git dağıtımları dahil olmak üzere, desteklenmiyor.

Azure Container Apps'teki Fonksiyonlar için, kaynağınızı tercih ettiğiniz depoda koruyun ve bir konteyner imajı oluşturmak ve göndermek için CI/CD iş akışı kullanın. Sonra fonksiyon uygulamanızı yeni görselin kullanması için güncelledin. Daha fazla bilgi için Deployment and setup for Functions on Azure Container Apps bölümüne bakınız.

Gereksinimler

Azure'daki işlevler için dağıtım birimi işlev uygulamasıdır. Sürekli dağıtımın başarılı olması için projenizin dizin yapısının Azure İşlevleri beklenen temel klasör yapısıyla uyumlu olması gerekir. Azure İşlevleri Core Tools, Visual Studio Code veya Visual Studio kullanarak kod projenizi oluşturduğunuzda, Azure İşlevleri şablonları doğru dizin yapısına sahip kod projeleri oluşturur. Tüm fonksiyonları aynı anda ve aynı pakette bir fonksiyon uygulamasında dağıtıyorsunuz.

Sürekli dağıtımı etkinleştirdikten sonra, Azure portalındaki fonksiyon koduna erişim sadece okunur olarak yapılandırılır çünkü gerçeğin kaynağı başka yerde.

Not

Dağıtım Merkezi, gelen ağ kısıtlamaları olan bir işlev uygulaması için sürekli dağıtımı etkinleştirmeyi desteklemez. Bunun yerine, derleme sağlayıcı iş akışını doğrudan GitHub veya Azure Pipelines'ta yapılandırın. Koşucu veya ajan, yapılandırma erişim kısıtlamaları altında uygulamanın dağıtım uç noktasına ulaşabilmelidir. Uç nokta özel olduğunda, koşucu veya ajanın da özel DNS çözümlemesine ihtiyacı vardır. Azure Pipelines için, bağlantılı bir ağ üzerinde şirket içinde barındırılan bir aracı veya ağ bağlantısına sahip yönetilen bir DevOps aracı havuzunu kullanın. GitHub Actions için, bağlı bir ağ üzerinde kendi kendine barındırılan bir runner veya Azure özel ağına sahip GitHub tarafından barındırılan bir runner kullanın.

Fonksiyon uygulamanızda gelen ağ erişimi kısıtlamaları olduğunda, iş akışı çalıştırıcısının veya aracısının yapılandırılmış erişim kısıtlamaları kapsamında uygulamanın dağıtım uç noktasına ulaşabilmesi gerekir. Uç nokta özel olduğunda, runner veya agent’in de özel DNS çözümlemesine ihtiyaç duyması gerekir. Azure Pipelines için, bağlı bir ağ üzerinde self-host edilen bir aracı veya ağ bağlantısına sahip yönetilen bir DevOps aracı havuzu kullanın. GitHub Actions için, bağlı bir ağ üzerinde kendi kendine barındırılan bir runner veya Azure özel ağına sahip GitHub tarafından barındırılan bir runner kullanın.

CI/CD iş akışınız, geçerli bir Azure İşlevleri konteyner görüntüsü oluşturmalı, görseli konteyner uygulamanızın erişebileceği bir kayıt defterine göndermeli ve fonksiyon uygulamasını güncelleyerek o görsemden bir revizyon oluşturmalıdır. Daha fazla bilgi için Azure Container Apps üzerinde bir işlev uygulaması oluşturma konusuna bakın.

Derleme sağlayıcısı seçme

Kod projenizi oluşturmak dağıtım işleminin bir parçasıdır. Belirli derleme işlemi, belirli dil yığınınıza, işletim sisteminize ve barındırma planınıza bağlıdır. Barındırmanıza bağlı olarak yerel veya uzaktan inşa edebilirsiniz. Daha fazla bilgi için bkz. Uzak derleme

Önemli

Güvenliği artırmak için, Azure Pipelines ve GitHub Actions gibi yönetilen kimlikleri destekleyen bir derleme sağlayıcısı kullanın. App Service derleme hizmeti, temel kimlik doğrulamanızı etkinleştirmenizi ve metin tabanlı kimlik bilgilerini kullanmanızı gerektirir.

Azure İşlevleri şu derleme sağlayıcılarını destekler:

Azure Pipelines, Azure DevOps'taki hizmetlerden biridir ve Azure Repos projeleri için varsayılan derleme sağlayıcısıdır. GitHub'dan proje oluşturmak için Azure Pipelines'ı da kullanabilirsiniz. Azure Pipelines'da, Azure İşlevleri'ne dağıtmak için özel olarak tasarlanmış bir AzureFunctionApp görev vardır. Bu görev, projenin nasıl derleneceğini, paketleneceğini ve dağıtıldığını denetlemenizi sağlar. Azure Pipelines yönetilen kimlikleri destekler.

Kaynak denetimi tümleştirmesini etkinleştirirken bu sağlayıcıların güçlü yönlerini ve sınırlamalarını göz önünde bulundurun. Belirli bir sağlayıcıdan yararlanmak için depo kaynak türünüzü değiştirmeniz gerekebilir.

Projenizi geliştirmek ve dağıtmak için Azure Pipelines veya GitHub Actions kullanın. Bu sağlayıcılar Microsoft Entra kimliklerini destekler ve Flex Tüketim paket dağıtım sürecini kullanırlar.

App Service derleme servisi Flex Tüketim'e uygulanmaz.

Azure İşlevleri imajınızı oluşturabilen bir konteyner derleme sağlayıcısı kullanın, bunu bir konteyner kayıt defterine gönderin ve fonksiyon uygulamanızı güncelleyerek yeni görselden bir revizyon oluşturun. Uçtan uca GitHub Actions iş akışı için Deploy to Azure Container Apps with GitHub Actions bölümüne bakınız.

Sürekli dağıtımı yapılandırma

Azure portalı, fonksiyon uygulamalarınız için bir Dağıtım Merkezi sağlar, bu da sürekli dağıtımı yapılandırmayı kolaylaştırır. Sürekli dağıtımı yapılandırmanın özel yolu hem kodunuzun bulunduğu kaynak denetimi deposunun türüne hem de seçtiğiniz derleme sağlayıcısına bağlıdır.

Azure portalında işlev uygulaması sayfanıza gidin ve sol bölmedeki Dağıtım'ın altında Dağıtım Merkezi'ni seçin.

Azure portalında kaynak deposunu seçtiğiniz Deployment Center fonksiyon uygulamasının ekran görüntüsü.

Proje kodunuzun korunduğu Kaynak depo türünü şu desteklenen seçeneklerden birini seçin:

Azure DevOps portalında Azure Pipelines kullanan Azure Repos dağıtımlarını tanımlayın. Bu dağıtımları fonksiyon uygulamanızdan tanımlamayın. Azure Repos'tan Azure Pipelines tabanlı dağıtım oluşturmak için adım adım rehber için bkz. Azure Pipelines ile Sürekli teslimat.

Dağıtım bittikten sonra, hizmet belirtilen kaynaktan tüm kodu uygulamanıza dağıtır. Bu noktada, dağıtım kaynağındaki değişiklikler bu değişikliklerin Azure'daki işlev uygulamanızda dağıtımını tetikler.

Şu sağlayıcılardan birini kullanarak depoda sürekli dağıtımı yapılandırın:

Her başarılı iş akışı çalışması yeni bir uygulama paketi dağıtır. Dağıtım Merkezi kaynak denetimi tümleştirmesi, Flex Consumption için kullanılamaz.

CI/CD iş akışınızı konteyner imajını oluşturup gönderecek şekilde yapılandırın, ardından görüntüyü fonksiyon uygulamanıza dağıtın. Her görüntü güncellemesi bir Container Apps revizyonu oluşturur. Daha fazla bilgi için Deploy to Azure Container Apps with GitHub Actions bölümüne bakınız.

Uygulama oluşturma sırasında sürekli dağıtımı etkinleştirme

Azure portalında bir fonksiyon uygulaması oluşturduğunuzda, GitHub'tan GitHub Actions kullanarak sürekli dağıtımı yapılandırabilirsiniz. GitHub Actions'ı Create Function App sayfasının Dağıtım sekmesinde yapılandırın.

Sürekli entegrasyon için farklı bir dağıtım kaynağı veya derleme sağlayıcısı kullanmak için önce fonksiyon uygulamanızı oluşturun. Sonra portala geri dönüp Dağıtım Merkezi'nde sürekli entegrasyon kurun.

Azure Pipelines için önce fonksiyon uygulamanızı oluşturun ve ardından boru hattını Azure DevOps'ta yapılandırın.

Fonksiyon uygulamasını bir konteyner imajından oluşturun ve ardından CI/CD iş akışınızı güncellenmiş görüntüleri yayınlayacak şekilde yapılandırın ve revizyonlar oluşturun. Daha fazla bilgi için Azure Container Apps üzerinde bir işlev uygulaması oluşturma konusuna bakın.

Dağıtımlar için temel kimlik doğrulamasını etkinleştirme

Bu bölüm yalnızca App Service dağıtım uç noktasını kullanan dağıtım yöntemleri için geçerlidir.

Bazı durumlarda, fonksiyon uygulamanız dağıtım uç noktasına temel kimlik doğrulama erişimi devre dışı bırakılmış şekilde oluşturulur. Bu koşul, Microsoft Entra kimliklerini kullanarak dağıtım uç noktasına erişemeyen tüm yöntemlerle yayın yapmayı engeller. Dağıtım uç noktası için temel kimlik doğrulamanın devre dışı bırakılmasının yayın etkileri, temel kimlik doğrulama olmadan Deploy bölümünde ayrıntılı olarak açıklanmıştır.

Önemli

Temel kimlik doğrulaması kullandığınızda, kimlik bilgileri düz metin olarak gönderilir. Bu kimlik bilgilerini korumak için, temel kimlik doğrulama kullanıldığında sadece şifreli bağlantı (HTTPS) üzerinden dağıtım uç noktasına erişmeniz gerekir. Daha fazla bilgi için bkz . Güvenli dağıtım.

Dağıtım uç noktası için temel kimlik doğrulamayı etkinleştirmek için:

  1. Azure portalında işlev uygulamanıza gidin.

  2. Uygulamanın sol menüsünde Ayarlar>Yapılandırma>Genel ayarlar'ı seçin.

  3. SCM Temel Kimlik Doğrulama Yayımlama Kimlik BilgileriniAçık olarak ayarlayın ve kaydet'i seçin.

SCM temel kimlik doğrulaması, Flex Tüketim paket dağıtımları için geçerli değildir. Varsayılan olarak Azure Pipelines, gerekli Azure hizmet bağlantısından bir Microsoft Entra bearer belirtecini kullanır; iş yükü kimlik federasyonu önerilir. GitHub Actions için, önerilen OpenID Connect (OIDC) kimlik doğrulamasını kullanın. Bu yöntemler, SCM yayınlama kimlik bilgilerinden kaçınır ve temel kimlik doğrulamadan daha güvenlidir.

Bu temel kimlik doğrulama ayarı Azure Container Apps'teki Fonksiyonlar için geçerli değildir. Bunun yerine CI/CD sağlayıcınız, konteyner kayıt defteriniz ve konteyner uygulaması arasında kimlik doğrulamayı yapılandırın.

Sonraki adımlar