Azure İşlevleri çalışma zamanı sürümlerinin hedefini belirleme

İşlev uygulaması, Azure İşlevleri çalışma zamanının belirli bir sürümünde çalışır. Varsayılan olarak, İşlevler çalışma zamanının en son 4.x sürümünde işlev uygulamaları oluşturursunuz. İşlev uygulamalarınız yalnızca desteklenen bir ana sürümde çalıştırıldığında desteklenir. Bu makalede, gerektiğinde İşlevler çalışma zamanının belirli bir sürümünü hedeflemek veya sabitlemek için Azure'da bir işlev uygulamasını yapılandırma adımları açıklanmaktadır.

Değerlendirmeler

Belirli bir çalışma zamanı sürümünü hedeflerken şu noktaları göz önünde bulundurun:

  • Esnek Tüketim planı yalnızca çalışma zamanının 4.x sürümünde çalışır. Flex Consumption planı uygulama ayarını desteklemediğinden FUNCTIONS_EXTENSION_VERSION , uygulamanız bu planda çalışırken belirli bir çalışma zamanı sürümünü hedefleyemez.
  • Belirli bir sürümü hedefleme şekliniz, Windows veya Linux kullanıp çalıştırmadığınıza bağlıdır.
  • Bu makale Windows veya Linux'a özgüdür. Makalenin üst kısmından işletim sisteminizi seçin.
  • Mümkün olduğunda uygulamanızı her zaman desteklenen en son çalışma zamanı sürümünde çalıştırın. Uygulamanızı yalnızca en son sürümle ilgili bir sorun nedeniyle talimat verildiğinde belirli bir sürüme sabitleyin. İşlevleriniz doğru şekilde çalıştırıldığında her zaman en son çalışma zamanı sürümüne geçin.
  • Yerel geliştirme sırasında, yüklü Azure İşlevleri Core Tools sürümünüz Azure'daki işlev uygulaması tarafından kullanılan ana çalışma zamanı sürümüyle eşleşmelidir. Daha fazla bilgi için bkz . Temel Araçlar sürümleri.

Çalışma zamanı sürümünüzü güncelleştirme

Mümkün olduğunda, işlev uygulamalarınızı her zaman Azure İşlevleri çalışma zamanının desteklenen en son sürümünde çalıştırın. İşlev uygulamanız şu anda çalışma zamanının eski bir sürümünde çalışıyorsa uygulamanızı 4.x sürümüne geçirin.

Uygulamanızın mevcut işlevleri olduğunda, daha sonraki bir ana çalışma zamanı sürümüne geçmeden önce önlem almanız gerekir. Aşağıdaki makaleler, dile özgü uyumluluğu bozan değişiklikler de dahil olmak üzere, ana sürümler arasındaki uyumluluğu bozan değişiklikleri ayrıntılı olarak açıklar. Ayrıca, mevcut işlev uygulamanızı başarıyla taşımak için size adım adım yönergeler sunarlar.

Geçerli çalışma zamanı sürümünüzü belirlemek için bkz . Geçerli çalışma zamanı sürümünü görüntüleme.

Geçerli çalışma zamanı sürümünü görüntüleme

İşlev uygulamanızın geçerli çalışma zamanı sürümünü şu yollardan biriyle görüntüleyebilirsiniz:

Bir işlev uygulaması tarafından kullanılmakta olan çalışma zamanı sürümünü görüntülemek ve güncelleştirmek için şu adımları izleyin:

  1. Azure portalında işlev uygulamanıza göz atın.

  2. Ayarlar öğesini genişletin ve ardından Yapılandırma öğesini seçin.

  3. İşlev çalışma zamanı ayarları sekmesinde Çalışma Zamanı sürümüne dikkat edin. Bu örnekte, sürüm olarak ~4ayarlanır.

    Çalışma zamanı sürümünün nasıl görüntülendiğini gösteren ekran görüntüsü.

Belirli bir sürüme sabitleme

Azure İşlevleri, belirli bir işlev uygulaması tarafından kullanılan çalışma zamanı sürümünü hedeflemek için uygulama ayarını kullanmanıza FUNCTIONS_EXTENSION_VERSION olanak tanır. Yalnızca ana sürümü ()~4 belirtirseniz, işlev uygulaması kullanılabilir duruma geldikçe çalışma zamanının yeni ikincil sürümlerine otomatik olarak güncelleştirilir. İkincil sürüm güncelleştirmeleri otomatiktir çünkü yeni ikincil sürümler işlevlerinizi bozan değişikliklere neden olmaz.

Linux uygulamaları, işlevlerinizin çalıştırılacağı doğru Linux temel görüntüsünü belirlemek için linuxFxVersion site ayarınıFUNCTIONS_EXTENSION_VERSION ile birlikte kullanır. Linux'ta yeni bir işlev uygulaması oluşturduğunuzda çalışma zamanı, dil yığınınızın çalışma zamanı sürümüne göre sizin için doğru temel görüntüyü otomatik olarak seçer.

Belirli bir çalışma zamanı sürümüne sabitlemek işlev uygulamanızı yeniden başlatır.

Belirli bir ikincil sürüm (örneğin 4.0.12345) belirttiğinizde FUNCTIONS_EXTENSION_VERSION içinde, otomatik sürüm güncellemelerine geri dönmeyi açıkça seçene kadar işlev uygulamasını çalışma zamanının o belirli sürümüne sabitlersiniz. İşlev uygulamanızla ilgili ana sürümü hedeflemenizi engelleyen sorunları çözmek için yalnızca belirli bir ikincil sürüme sabitleyin. Eski ikincil sürümler üretim ortamından düzenli olarak kaldırılır. İşlev uygulamanız, kaldırılmış küçük bir sürüme sabitlendiğinde,FUNCTIONS_EXTENSION_VERSION içinde ayarlanan sürüm yerine mevcut en yakın sürümde çalışır. App Service duyuruları minör versiyon kaldırmalarını bildirir.

Not

Visual Studio'dan çalışma zamanının belirli bir ikincil sürümüne sabitlenmiş bir uygulamaya yayımlamayı denediğinizde, bir iletişim kutusu sizden en son sürüme güncelleştirmenizi veya yayımlamayı iptal etmenizi ister. Belirli bir alt sürümü kullanmanız gerektiğinde bu denetimi önlemek için `<DisableFunctionExtensionVersionUpdate>true</DisableFunctionExtensionVersionUpdate>` özelliğini `.csproj` dosyanıza ekleyin.

Uygulamanızı çalışma zamanının belirli bir sürümüne geçici olarak sabitlemek için şu yöntemlerden birini kullanın:

Bir işlev uygulaması tarafından kullanılmakta olan çalışma zamanı sürümünü görüntülemek ve güncelleştirmek için şu adımları izleyin:

  1. Azure portalında işlev uygulamanıza göz atın.

  2. Ayarlar öğesini genişletin ve ardından Yapılandırma öğesini seçin.

  3. İşlev çalışma zamanı ayarları sekmesinde Çalışma Zamanı sürümüne dikkat edin. Bu örnekte, sürüm olarak ~4ayarlanır.

    Çalışma zamanı sürümünün nasıl görüntülendiğini gösteren ekran görüntüsü.

  1. Uygulamanızı belirli bir ikincil sürüme sabitlemek için sol bölmede Ayarlar'ı genişletin ve ortam değişkenleri'ni seçin.

  2. Uygulama ayarları sekmesinden FUNCTIONS_EXTENSION_VERSION'ı seçin, Değer'i gerekli ikincil sürümünüzle değiştirin ve uygula'yı seçin.

  3. Uygula'yı seçin ve ardından değişiklikleri uygulamak ve uygulamayı yeniden başlatmak için Onayla'yı seçin.

Uygulama ayarında değişiklik yapıldıktan sonra işlev uygulaması yeniden başlatılır.

İşlev uygulamanızı Linux'ta belirli bir çalışma zamanı sürümüne sabitlemek için, biçiminde site ayarındalinuxFxVersion sürüme özgü bir temel görüntü URL'si DOCKER|<PINNED_VERSION_IMAGE_URI>ayarlayın.

Önemli

Linux'ta sabitlenmiş işlev uygulamaları düzenli güvenlik ve konak işlev güncelleştirmeleri almaz. Bir destek uzmanı tarafından önerilmediği sürece, FUNCTIONS_EXTENSION_VERSION ayarını ve diliniz ile sürümünüz için standart bir linuxFxVersion değerini, örneğin Python|3.12 gibi, kullanın. Geçerli değerler için başvuru makalesine linuxFxVersionbakın.

Tüketim planında çalışan Linux işlev uygulamaları için belirli bir çalışma zamanına sabitleme şu anda desteklenmiyor.

Aşağıdaki örnek, Node.js 22 işlev uygulamasını belirli bir 4.14.0.3 çalışma zamanı sürümüne sabitlemek için gereken değeri gösterir linuxFxVersion :

DOCKER|mcr.microsoft.com/azure-functions/node:4.14.0.3-node22

Gerektiğinde, bir destek uzmanı uygulamanız için geçerli bir temel görüntü URI'sini sağlayabilir.

linuxFxVersion öğesini görüntülemek ve ayarlamak için aşağıdaki Azure CLI komutlarını kullanın. Şu anda portalda veya Azure PowerShell kullanarak ayarlayamazsınız linuxFxVersion :

  • Geçerli çalışma zamanı sürümünü görüntülemek için az functionapp config show komutunu kullanın:

    az functionapp config show --name <function_app> \
    --resource-group <my_resource_group> --query 'linuxFxVersion' -o tsv
    

    Bu kodda, <function_app> öğesini işlev uygulamanızın adıyla değiştirin. Ayrıca, <my_resource_group> ifadesini işlev uygulamanızın kaynak grubunun adıyla değiştirin. linuxFxVersion geçerli değeri döndürülür.

  • İşlev uygulamasındaki linuxFxVersion ayarını güncelleştirmek için az functionapp config set komutunu kullanın:

    az functionapp config set --name <FUNCTION_APP> \
    --resource-group <RESOURCE_GROUP> \
    --linux-fx-version <LINUX_FX_VERSION>
    

    <FUNCTION_APP> öğesini işlev uygulamanızın adıyla değiştirin. Ayrıca, <RESOURCE_GROUP> ifadesini işlev uygulamanızın kaynak grubunun adıyla değiştirin. Son olarak, <LINUX_FX_VERSION> öğesini bir destek uzmanı tarafından size sağlanan belirli bir görüntünün değeriyle değiştirin.

Önceki kod örneklerinde Cloud Shell’i Aç seçeneğini belirleyerek bu komutları Azure Cloud Shell üzerinden çalıştırabilirsiniz. Bu komutu çalıştırmak için, oturum açmak üzere komutunu çalıştırdıktan sonra az login da kullanabilirsiniz.

site yapılandırmasında değişiklik yapıldıktan sonra işlev uygulaması yeniden başlatılır.

Yönetilen Linux imajını güncelle

Bu bölüm yalnızca Debian Bullseye yönetilen bir görüntü kullanan Linux Elastic Premium veya Dedicated (App Service) planlarındaki mevcut Python 3.11 ve Java 8, 11 veya 17 uygulamaları için geçerlidir. Uygulamanız bu şartların tamamını karşılamazsa, bu prosedürü takip etmenize gerek yoktur.

Daha yeni yönetilen imaj, etkilenen bir uygulamanın desteklenen bir Linux dağıtımına geçerken mevcut dil sürümünde geçici olarak kalmasına olanak tanır. Bu prosedür Flex Consumption veya özel konteyner uygulamaları için geçerli değildir. Linux Tüketim planındaki bir uygulama için Flex Tüketim planına geçiş yapın.

Bu güncelleme, mevcut dil versiyonu için Linux dağıtımını üç bölümlü linuxFxVersion bir değer kullanarak seçer. Fonksiyonlar sunucusunu belirli DOCKER|<IMAGE_URI> bir görüntüye sabitlemez.

Bookworm veya Noble linuxFxVersion değeri seçin

İlk olarak, dil sürümünü güncelleyemeyeceğinizi veya mevcut dil sürümünü koruyup daha yeni bir Linux dağıtımı seçip yenilemediğinizi belirleyin.

  1. Uygulamayı daha yeni desteklenen bir dil sürümüne güncellemeyi düşünün. Bir dil güncellemesinden sonra, uygulama o dil versiyonu için mevcut varsayılan yönetilen görseli kullanır.

  2. Uygulama mevcut dil sürümünde kalması gerekiyorsa, karşılık gelen yeni görüntü değerini seçin:

    Dil sürümü Debian Bullseye değeri Daha yeni dağıtım Daha yeni görüntü değeri
    Python 3.11 Python\|3.11\|2.0 Debian Kitapkurdu Python\|3.11\|3.0
    Java 8 Java\|8\|2.0 Ubuntu Noble Java\|8\|4.0
    Java 11 Java\|11\|2.0 Ubuntu Noble Java\|11\|4.0
    Java 17 Java\|17\|2.0 Ubuntu Noble Java\|17\|4.0

    Bu üç parçalı değerler, Bullseye dönemi görselleri için yönetilen Linux imajını açıkça seçer. az functionapp list-runtimes komutu tarafından döndürülmezler.

Daha yeni yönetilen Linux imajını test et

Prodüksiyon uygulamasını güncellemeden önce uygulamanızı ve yeni görsele olan bağımlılıklarını test edin.

  1. Ayrı bir test uygulaması oluşturun veya bir dağıtım slotu oluşturun.

  2. Üretim uygulamanızın kullandığı aynı kod ve yapılandırmayı test uygulamasına veya slotuna yerleştirin.

  3. Görüntü değerini güncelle bölümündeki adımları izleyerek daha yeni görüntü değerini ayarlayın. Bir slot kullandığınızda, her Azure CLI komutuna --slot <SLOT_NAME> ekleyin.

  4. Her bir fonksiyonu çağırın ve uygulamanın başarıyla çalıştığını, tetikleyicilerin beklendiği gibi çalıştığını ve yerel veya işletim sistemi bağımlılıklarının doğru yüklendiğini doğrulayın.

Görüntü değerini güncelle

Görüntü değerini değiştirmek fonksiyon uygulamasını yeniden başlatır. Üretim ortamını bakım penceresi sırasında güncelleyin veya bir dağıtım yuvası kullanın.

  1. Mevcut linuxFxVersion değeri görün:

    az functionapp config show --name <APP_NAME> \
      --resource-group <RESOURCE_GROUP> \
      --query linuxFxVersion --output tsv
    

    Bu komut, site yapılandırmasında saklanan değeri döndürür. Geri dönen değer, Linux dağıtımını tanımlayan üç parçalı değer yerine yalnızca dil ve dil versiyonunu Python|3.11içerebilir. Değer görüntü versiyonunu içermiyorsa, uygulamanın şu anda Debian Bullseye kullandığını doğrulamak için Linux dağıtımını doğrula'daki adımları takip edin.

  2. Daha yeni görüntü değerine ayarlayın linuxFxVersion :

    az functionapp config set --name <APP_NAME> \
      --resource-group <RESOURCE_GROUP> \
      --linux-fx-version "<LANGUAGE|VERSION|IMAGE_VERSION>"
    

    Debian Bookworm'da Python 3.11 için Python|3.11|3.0 kullanın. Ubuntu Noble'da Java için Java|8|4.0, Java|11|4.0 veya Java|17|4.0 kullanın.

  3. Uygulamanın yeniden başlamasını bekle.

Linux dağıtımını doğrulayın

Hem yapılandırma değerini hem de uygulamanızı çalıştıran Linux dağıtımını doğrulayın.

  1. Güncellenmiş linuxFxVersion değeri onaylayın:

    az functionapp config show --name <APP_NAME> \
      --resource-group <RESOURCE_GROUP> \
      --query linuxFxVersion --output tsv
    

    Üç parçalı bir değeri açıkça belirlediğiniz için, bu komut seçtiğiniz tam olarak Bookworm veya Noble değerini döndürür.

  2. Uygulamanın Kudu sitesini açın.https://<APP_NAME>.scm.azurewebsites.net

  3. Ortam'ı seçin ve inceleyinKUDU_ENV, ya da bir SSH oturumu açın ve çalıştırın:

    cat /etc/os-release
    
  4. Çıktının Python 3.11 için Debian Bookworm veya Java 8, 11 veya 17 için Ubuntu Noble olduğunu doğrulayın.

  5. Her fonksiyonu çağırın ve tetikleyicilerin ve bağımlılıkların beklendiği gibi çalışmaya devam ettiğini doğrulayın.

Yönetilen Linux görüntü güncellemesini geri alın

Güncellenmiş görüntü uyumluluk sorunu yaratıyorsa, sorunu çözene kadar önceki linuxFxVersion değeri geçici olarak geri getirin.

Warning

Debian Bullseye, kullanım süresi bittikten sonra desteklenmiyor ve güvenlik güncellemeleri almıyor. Geri almayı sadece geçici bir hafifletme olarak kullanın ve mümkün olan en kısa sürede desteklenen bir görüntüye geri dönün.

  1. Bir Bookworm veya Noble linuxFxVersion değeri seçin tablosunda, dil sürümünüz için Debian Bullseye değerini bulun.

  2. linuxFxVersion öğesini o Bullseye değerine ayarlayın:

    az functionapp config set --name <APP_NAME> \
      --resource-group <RESOURCE_GROUP> \
      --linux-fx-version "<BULLSEYE_LINUX_FX_VERSION>"
    
  3. Uygulamanın yeniden başlamasını bekleyin, ardından Linux dağıtımını doğrula'da kontrolleri tekrarlayın.

Sonraki adımlar