İşlev uygulamanızı yönetme

Azure İşlevleri'de bir işlev uygulaması, tek tek işlevleriniz için yürütme bağlamı sağlar. İşlev uygulaması davranışları, belirli bir işlev uygulaması tarafından barındırılan tüm işlevler için geçerlidir. İşlev uygulamasındaki tüm işlevler aynı dilde olmalıdır.

İşlev uygulamasındaki tek tek işlevler birlikte dağıtılır ve birlikte ölçeklendirilir. Aynı işlev uygulamasındaki tüm işlevler, işlev uygulaması ölçeklendirildikçe örnek başına kaynakları paylaşır.

Bağlantı dizeleri, ortam değişkenleri ve diğer uygulama ayarları her işlev uygulaması için ayrı ayrı tanımlanır. İşlev uygulamaları arasında paylaşılması gereken tüm veriler kalıcı bir depoda harici olarak depolanmalıdır.

Azure portalında kullanmaya başlama

  1. Başlamak için Azure portal gidin ve Azure hesabınızda oturum açın. Portalın üst kısmındaki arama çubuğuna işlev uygulamanızın adını girin ve listeden seçin.

  2. Sol bölmedeki Ayarlar altında Yapılandırma'yı seçin.

    Function app overview in the Azure portal

İşlev uygulamanızı yönetmek için ihtiyacınız olan her şeye genel bakış sayfasından, özellikle de Uygulama ayarları ve Platform özelliklerine gidebilirsiniz.

Uygulama ayarlarıyla çalışma

İşlev kodunuzun gerektirdiği sayıda uygulama ayarı oluşturabilirsiniz. İşlevler tarafından kullanılan önceden tanımlanmış uygulama ayarları da vardır. Daha fazla bilgi edinmek için bkz. Azure İşlevleri için uygulama ayarları başvurusu.

Bu ayarlar şifrelenmiş olarak depolanır. Daha fazla bilgi edinmek için bkz. Uygulama ayarları güvenliği.

Uygulama ayarları Azure portal ve Azure CLI ile Azure PowerShell kullanılarak yönetilebilir. Uygulama ayarlarını Visual Studio Code ve Visual Studio da yönetebilirsiniz.

Uygulama ayarlarını bulmak için Azure portal Kullanmaya başlayın bakın.

Uygulama ayarları sekmesi, işlev uygulamanız tarafından kullanılan ayarları korur. Portalda değerleri görmek için Değerleri göster'i seçmeniz gerekir. Portalda bir ayar eklemek için Yeni uygulama ayarı'nı seçin ve yeni anahtar-değer çiftini ekleyin.

Function app settings in the Azure portal.

Uygulama ayarlarını kullanma

İşlev uygulaması ayarları değerleri, kodunuz içinde ortam değişkenleri olarak da okunabilir. Daha fazla bilgi için bu dile özgü başvuru konularının Ortam değişkenleri bölümüne bakın:

Bir işlev uygulamasını yerel olarak geliştirirken, bu değerlerin yerel kopyalarını local.settings.json proje dosyasında tutmanız gerekir. Daha fazla bilgi edinmek için bkz. Yerel ayarlar dosyası.

Barındırma planı türü

Bir işlev uygulaması oluşturduğunuzda, uygulamanın çalıştığı bir barındırma planı da oluşturursunuz. Bir plan bir veya daha fazla işlev uygulamasına sahip olabilir. İşlevlerinizin işlevselliği, ölçeklendirmesi ve fiyatlandırması planın türüne bağlıdır. Daha fazla bilgi edinmek için bkz. Azure İşlevleri barındırma seçenekleri.

İşlev uygulamanız tarafından kullanılan plan türünü Azure portal veya Azure CLI veya Azure PowerShell API'lerini kullanarak belirleyebilirsiniz.

Aşağıdaki değerler plan türünü gösterir:

Plan türü Portal Azure CLI/PowerShell
Tüketim Tüketim Dynamic
Premium ElasticPremium ElasticPremium
Ayrılmış (App Service) Çeşitli Çeşitli

İşlev uygulamanız tarafından kullanılan plan türünü belirlemek için Azure portal işlev uygulamasının Genel Bakış sekmesindeki App Serviceplanına bakın. Fiyatlandırma katmanını görmek için App Service Planının adını seçin ve ardından sol bölmeden Özellikler'i seçin.

View scaling plan in the portal

Geçişi planlama

Bir işlev uygulamasını Tüketim planı ile Windows üzerinde bir Premium planı arasında geçirmek için Azure CLI komutlarını kullanabilirsiniz. Belirli komutlar geçişin yönüne bağlıdır. Ayrılmış (App Service) plana doğrudan geçiş şu anda desteklenmiyor.

Bu geçiş Linux'ta desteklenmez.

Premium tüketim

Tüketim planından Windows'da bir Premium planına geçiş yapmak için aşağıdaki yordamı kullanın:

  1. Mevcut işlev uygulamanızla aynı bölgede ve kaynak grubunda yeni bir App Service planı (Elastik Premium) oluşturmak için az functionapp plan create komutunu aşağıdaki gibi çalıştırın:

    az functionapp plan create --name <NEW_PREMIUM_PLAN_NAME> --resource-group <MY_RESOURCE_GROUP> --location <REGION> --sku EP1
    
  2. Mevcut işlev uygulamasını yeni Premium planına geçirmek için az functionapp update komutunu aşağıdaki gibi çalıştırın:

    az functionapp update --name <MY_APP_NAME> --resource-group <MY_RESOURCE_GROUP> --plan <NEW_PREMIUM_PLAN>
    
  3. Önceki Tüketim işlevi uygulama planınıza artık ihtiyacınız yoksa, yeni plana başarıyla geçiş yaptığınız onayladıktan sonra özgün işlev uygulama planınızı silin. Kaynak grubunuzdaki tüm Tüketim planlarının listesini almak için az functionapp plan list komutunu aşağıdaki gibi çalıştırın:

    az functionapp plan list --resource-group <MY_RESOURCE_GROUP> --query "[?sku.family=='Y'].{PlanName:name,Sites:numberOfSites}" -o table
    

    Geçişi yaptığınız sıfır site içeren planı güvenle silebilirsiniz.

  4. Geçiş yaptığınız Tüketim planını silmek için az functionapp plan delete komutunu aşağıdaki gibi çalıştırın.

    az functionapp plan delete --name <CONSUMPTION_PLAN_NAME> --resource-group <MY_RESOURCE_GROUP>
    

Tüketime Premium

Premium planından Windows tüketim planına geçmek için aşağıdaki yordamı kullanın:

  1. Mevcut işlev uygulamanızla aynı bölgede ve kaynak grubunda yeni bir işlev uygulaması (Tüketim) oluşturmak için az functionapp plan create komutunu aşağıdaki gibi çalıştırın. Bu komut, işlev uygulamasının çalıştığı yeni bir Tüketim planı da oluşturur.

    az functionapp create --resource-group <MY_RESOURCE_GROUP> --name <NEW_CONSUMPTION_APP_NAME> --consumption-plan-location <REGION> --runtime dotnet --functions-version 3 --storage-account <STORAGE_NAME>
    
  2. Mevcut işlev uygulamasını yeni Tüketim planına geçirmek için az functionapp update komutunu aşağıdaki gibi çalıştırın.

    az functionapp update --name <MY_APP_NAME> --resource-group <MY_RESOURCE_GROUP> --plan <NEW_CONSUMPTION_PLAN> --force
    
  3. 1. adımda oluşturduğunuz işlev uygulamasını silmek için az functionapp delete komutunu aşağıdaki gibi çalıştırın çünkü yalnızca mevcut işlev uygulamasını çalıştırmak için oluşturulan plana ihtiyacınız vardır.

    az functionapp delete --name <NEW_CONSUMPTION_APP_NAME> --resource-group <MY_RESOURCE_GROUP>
    
  4. Önceki Premium işlev uygulaması planınıza artık ihtiyacınız yoksa, yeni plana başarıyla geçişinizi onayladıktan sonra özgün işlev uygulama planınızı silin. Plan silinmezse Premium planı için ücretlendirilmeye devam edeceğinizi lütfen unutmayın. Kaynak grubunuzdaki tüm Premium planlarının listesini almak için az functionapp plan list komutunu aşağıdaki gibi çalıştırın.

    az functionapp plan list --resource-group <MY_RESOURCE_GROUP> --query "[?sku.family=='EP'].{PlanName:name,Sites:numberOfSites}" -o table
    
  5. Geçiş yaptığınız Premium planı silmek için az functionapp plan delete komutunu aşağıdaki gibi çalıştırın.

    az functionapp plan delete --name <PREMIUM_PLAN> --resource-group <MY_RESOURCE_GROUP>
    

İşlev erişim anahtarlarınızı alma

HTTP ile tetiklenen işlevler genellikle şu biçimde bir URL kullanılarak çağrılabilir: https://<APP_NAME>.azurewebsites.net/api/<FUNCTION_NAME>. İşlevinizin yetkilendirmesi dışında anonymousbir değer ayarlandığında, isteğinizde bir erişim anahtarı da sağlamanız gerekir. Erişim anahtarı, sorgu dizesi kullanılarak ?code= URL'de veya istek üst bilgisinde sağlanabilir. Daha fazla bilgi için bkz . İşlev erişim anahtarları. Erişim anahtarlarınızı almanın çeşitli yolları vardır.

  1. Azure portal oturum açın, ardından İşlev Uygulaması'nı arayın ve seçin.

  2. Doğrulamak istediğiniz işlevi seçin.

  3. Sol gezinti bölmesindeki İşlevler'in altında Uygulama anahtarları'nı seçin.

    Bu, uygulamadaki herhangi bir işleve erişmek için kullanılabilen konak anahtarlarını döndürür. Ayrıca, herkese tüm işlev uygulaması API'lerine yönetici düzeyinde erişim sağlayan sistem anahtarını döndürür.

Ayrıca, HTTP ile tetiklenen işlevinizde Geliştirici'nin altında İşlev anahtarları'nı seçerek yalnızca belirli bir işlev anahtarı için anahtarı kullanarak en az ayrıcalık alıştırması yapabilirsiniz.

Uzantıları el ile yükleme

C# sınıf kitaplığı işlevleri, doğrudan sınıf kitaplığı projesinde bağlama uzantıları için NuGet paketlerini içerebilir. Diğer non-.NET dilleri ve C# betiği için uzantıları yüklemenin önerilen yolu, uzantı paketlerini veyaAzure İşlevleri Core Tools'u yerel olarak kullanmaktır. Uzantı paketlerini kullanamıyorsanız ve yalnızca portalda çalışabiliyorsanız, extensions.csproj dosyasını doğrudan sitede el ile oluşturmak için Gelişmiş Araçlar'ı (Kudu) kullanmanız gerekir. önce öğesini host.json dosyasından kaldırdığınızdan extensionBundle emin olun.

Bu işlem, uygulamanıza eklemeniz gereken diğer tüm dosyalarda da çalışır.

Önemli

Mümkün olduğunda, dosyaları doğrudan Azure'daki işlev uygulamanızda düzenlememelisiniz. Uygulama dosyalarınızı yerel olarak indirmenizi, uzantıları ve diğer paketleri yüklemek için Core Tools'u kullanmanızı, değişikliklerinizi doğrulamanızı ve ardından Core Tools veya desteklenen diğer dağıtım yöntemlerinden birini kullanarak uygulamanızı yeniden yayımlamanızı öneririz.

Azure portal yerleşik İşlevler düzenleyicisi, işlev kodu ve yapılandırma (function.json) dosyalarınızı doğrudan portalda güncelleştirmenize olanak tanır.

  1. İşlev uygulamanızı seçin ve İşlevler'in altında İşlevler'i seçin.
  2. İşlevinizi seçin ve Geliştirici'nin altında Kod + test'i seçin.
  3. Düzenlemek istediğiniz dosyayı seçin ve işiniz bittiğinde Kaydet'i seçin.

Uygulamanın kökündeki function.proj veya extensions.csproj gibi dosyaların Gelişmiş Araçlar (Kudu) kullanılarak oluşturulması ve düzenlenmesi gerekir.

  1. İşlev uygulamanızı seçin, ardından Geliştirme araçları'nın altında GelişmişaraçlarGo'ya> tıklayın.

  2. Yükseltildiyse Azure kimlik bilgilerinizle SCM sitesinde oturum açın.

  3. Hata ayıklama konsolumenüsünden CMD'yi seçin.

  4. adresine .\site\wwwrootgidin, üstteki artı (+) düğmesini seçin ve Yeni dosya'yı seçin.

  5. Dosyayı gibi extensions.csproj adlandırın ve Enter tuşuna basın.

  6. Yeni dosyanın yanındaki düzenle düğmesini seçin, dosyaya kod ekleyin veya güncelleştirin ve Kaydet'i seçin.

  7. extensions.csproj gibi bir proje dosyası için aşağıdaki komutu çalıştırarak extensions projesini yeniden oluşturun:

    dotnet build extensions.csproj
    

Platform özellikleri

İşlev uygulamaları içinde çalışır ve Azure App Service platformu tarafından korunur. Bu nedenle işlev uygulamalarınız Azure'ın temel web barındırma platformunun özelliklerinin çoğuna erişebilir. Azure portal çalışırken, sol bölmede işlev uygulamalarınızda kullanabileceğiniz App Service platformunun birçok özelliğine erişebilirsiniz.

Aşağıdaki matris, planı ve işletim sistemini barındırarak portal özelliği desteğini gösterir:

Özellik Tüketim planı Premium planı Ayrılmış plan
Gelişmiş araçlar (Kudu) Windows: ✔
Linux: X
App Service düzenleyicisi Windows: ✔
Linux: X
Windows: ✔
Linux: X
Windows: ✔
Linux: X
Yedeklemeler X X
Konsol Windows: komut satırı
Linux: X
Windows: komut satırı
Linux: SSH
Windows: komut satırı
Linux: SSH

Bu makalenin geri kalanında, portalda işlev uygulamalarınız için yararlı olan aşağıdaki özelliklere odaklanılır:

App Service ayarlarıyla çalışma hakkında daha fazla bilgi için bkz. Azure App Service Ayarlar yapılandırma.

App Service düzenleyicisi

The App Service editor

App Service düzenleyicisi, JSON yapılandırma dosyalarını ve kod dosyalarını değiştirmek için kullanabileceğiniz gelişmiş bir portal içi düzenleyicidir. Bu seçeneğin seçilmesi, temel bir düzenleyici ile ayrı bir tarayıcı sekmesi başlatır. Bu, Git deposuyla tümleştirmenize, kodu çalıştırmanıza ve hatalarını ayıklamanıza ve işlev uygulaması ayarlarını değiştirmenize olanak tanır. Bu düzenleyici, yerleşik işlev düzenleyicisine kıyasla işlevleriniz için gelişmiş bir geliştirme ortamı sağlar.

İşlevlerinizi yerel bilgisayarınızda geliştirmeyi düşünmenizi öneririz. Yerel olarak geliştirip Azure'da yayımladığınızda, proje dosyalarınız portalda salt okunur olur. Daha fazla bilgi edinmek için bkz. Yerel olarak Azure İşlevleri kod ve test etme.

Konsol

Function app console

Komut satırından işlev uygulamanızla etkileşim kurmayı tercih ettiğinizde portal içi konsol ideal bir geliştirici aracıdır. Yaygın komutlar dizin ve dosya oluşturma ve gezinti ile toplu iş dosyalarını ve betiklerini yürütmeyi içerir.

Yerel olarak geliştirme yaparken Azure İşlevleri Core Tools ve Azure CLI'yi kullanmanızı öneririz.

Gelişmiş araçlar (Kudu)

Configure Kudu

App Service için gelişmiş araçlar (Kudu olarak da bilinir), işlev uygulamanızın gelişmiş yönetim özelliklerine erişim sağlar. Kudu'dan sistem bilgilerini, uygulama ayarlarını, ortam değişkenlerini, site uzantılarını, HTTP üst bilgilerini ve sunucu değişkenlerini yönetirsiniz. Ayrıca işlev uygulamanızın SCM uç noktasına göz atarak Kudu'yu başlatabilirsiniz; örneğin https://<myfunctionapp>.scm.azurewebsites.net/

Dağıtım Merkezi

İşlev kodunuzu geliştirmek ve korumak için bir kaynak denetim çözümü kullandığınızda, Dağıtım Merkezi kaynak denetimi oluşturmanızı ve dağıtmanızı sağlar. Güncelleştirmeler yaptığınızda projeniz derlenir ve Azure'a dağıtılır. Daha fazla bilgi için bkz. Azure İşlevleri dağıtım teknolojileri.

Çıkış noktaları arası kaynak paylaşma

İstemcide kötü amaçlı kod yürütülmesini önlemek için modern tarayıcılar, web uygulamalarından ayrı bir etki alanında çalışan kaynaklara yönelik istekleri engeller. Çıkış noktaları arası kaynak paylaşımı (CORS), üst Access-Control-Allow-Origin bilginin işlev uygulamanızda uç noktaları çağırmasına izin verilen kaynakları bildirmesine olanak tanır.

Portal

İşlev uygulamanız için İzin verilen çıkış noktaları listesini yapılandırdığınızda üst bilgi, Access-Control-Allow-Origin işlev uygulamanızdaki HTTP uç noktalarındaki tüm yanıtlara otomatik olarak eklenir.

Configure function app's CORS list

Joker karakter (*) kullanıldığında diğer tüm etki alanları yoksayılır.

az functionapp cors add İzin verilen kaynak listesine etki alanı eklemek için komutunu kullanın. Aşağıdaki örnek contoso.com etki alanını ekler:

az functionapp cors add --name <FUNCTION_APP_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--allowed-origins https://contoso.com

az functionapp cors show İzin verilen geçerli kaynakları listelemek için komutunu kullanın.

Kimlik Doğrulaması

Configure authentication for a function app

İşlevler BIR HTTP tetikleyicisi kullandığında, çağrıların önce kimlik doğrulamasının yapılmasını gerektirebilirsiniz. App Service Facebook, Microsoft ve Twitter gibi sosyal sağlayıcılarla Azure Active Directory kimlik doğrulamasını ve oturum açmayı destekler. Belirli kimlik doğrulama sağlayıcılarını yapılandırma hakkında ayrıntılı bilgi için bkz. kimlik doğrulamasına genel bakış Azure App Service.

Sonraki adımlar