Aracılığıyla paylaş


Azure İşlevleri geliştirici kılavuzu

Azure İşlevleri'da, tercih ettiğiniz dil veya geliştirme ortamı ne olursa olsun tüm işlevler bazı temel teknik kavramları ve bileşenleri paylaşır. Bu makale dile özgüdür. Makalenin üst kısmında tercih ettiğiniz dili seçin.

Bu makalede, Azure İşlevleri genel bakışını okuduğunuz varsayılır.

Doğrudan başlamayı tercih ederseniz Visual Studio, Visual Studio Code kullanarak veya komut isteminden hızlı başlangıç öğreticisini tamamlayabilirsiniz.

Hemen başlamayı tercih ederseniz Maven (komut satırı), Eclipse, IntelliJ IDEA, Gradle, Quarkus, Spring Cloud veya Visual Studio Code kullanarak hızlı başlangıç öğreticisini tamamlayabilirsiniz.

Doğrudan başlamayı tercih ederseniz, Visual Studio Code'u kullanarak veya komut isteminden hızlı başlangıç öğreticisini tamamlayabilirsiniz.

Doğrudan başlamayı tercih ederseniz, Visual Studio Code'u kullanarak veya komut isteminden hızlı başlangıç öğreticisini tamamlayabilirsiniz.

Doğrudan başlamayı tercih ederseniz, Visual Studio Code'u kullanarak veya komut isteminden hızlı başlangıç öğreticisini tamamlayabilirsiniz.

Doğrudan başlamayı tercih ederseniz, Visual Studio Code'u kullanarak veya komut isteminden hızlı başlangıç öğreticisini tamamlayabilirsiniz.

Kod projesi

Azure İşlevleri merkezinde, işlevler olarak adlandırılan bir veya daha fazla kod yürütme birimi uygulayan dile özgü bir kod projesi bulunur. İşlevler yalnızca olaylara, HTTP isteklerine yanıt olarak veya bir zamanlamaya göre Azure bulutunda çalışan yöntemlerdir. Azure İşlevleri kod projenizi, Azure'da çalışırken projedeki tek tek işlevlerinizi düzenlemeye, dağıtmaya ve topluca yönetmeye yönelik bir mekanizma olarak düşünün. Daha fazla bilgi için bkz . İşlevlerinizi düzenleme.

Kod projenizi düzenleme yönteminiz ve projenizdeki hangi yöntemlerin işlev olduğunu nasıl belirttiğiniz, projenizin geliştirme diline bağlıdır. Dile özgü ayrıntılı yönergeler için C# geliştiricileri kılavuzuna bakın.

Kod projenizi düzenleme yönteminiz ve projenizdeki hangi yöntemlerin işlev olduğunu nasıl belirttiğiniz, projenizin geliştirme diline bağlıdır. Dile özgü yönergeler için bkz . Java geliştiricileri kılavuzu.

Kod projenizi düzenleme yönteminiz ve projenizdeki hangi yöntemlerin işlev olduğunu nasıl belirttiğiniz, projenizin geliştirme diline bağlıdır. Dile özgü yönergeler için bkz . Node.js geliştiriciler kılavuzu.

Kod projenizi düzenleme yönteminiz ve projenizdeki hangi yöntemlerin işlev olduğunu nasıl belirttiğiniz, projenizin geliştirme diline bağlıdır. Dile özgü yönergeler için bkz . PowerShell geliştiricileri kılavuzu.

Kod projenizi düzenleme yönteminiz ve projenizdeki hangi yöntemlerin işlev olduğunu nasıl belirttiğiniz, projenizin geliştirme diline bağlıdır. Dile özgü yönergeler için bkz . Python geliştiricileri kılavuzu.

Tüm işlevlerin, işlevin nasıl başlatılıp işleve giriş sağlayabileceğini tanımlayan bir tetikleyicisi olmalıdır. İşlevleriniz isteğe bağlı olarak giriş ve çıkış bağlamaları tanımlayabilir. Bu bağlamalar, istemci SDK'larıyla çalışmanıza gerek kalmadan diğer hizmetlerle bağlantıları basitleştirir. Daha fazla bilgi için bkz. Azure İşlevleri tetikleyicileri ve bağlama kavramları.

Azure İşlevleri, yeni kod projeleri oluşturmayı ve projenize işlev eklemeyi kolaylaştıran dile özgü bir dizi proje ve işlev şablonu sağlar. Bu şablonları kullanarak yeni uygulamalar ve işlevler oluşturmak için Azure İşlevleri geliştirmeyi destekleyen araçlardan herhangi birini kullanabilirsiniz.

Geliştirme araçları

Aşağıdaki araçlar, tercih ettiğiniz dilde Azure İşlevleri için tümleşik bir geliştirme ve yayımlama deneyimi sağlar:

Bu araçlar, İşlevler çalışma zamanını kullanarak yerel bilgisayarınızda çalıştırabilmeniz ve hatalarını ayıklayabileceğiniz Azure İşlevleri Temel Araçlar ile tümleştirilir. Daha fazla bilgi için bkz. Yerel olarak Azure İşlevleri kod ve test.

Azure portalında kodunuzu ve function.json tanım dosyanızı doğrudan portalda güncelleştirmenizi sağlayan bir düzenleyici de vardır. Bu düzenleyiciyi yalnızca küçük değişiklikler veya kavram kanıtı işlevleri oluşturmak için kullanmalısınız. Mümkün olduğunda işlevlerinizi her zaman yerel olarak geliştirmeniz gerekir. Daha fazla bilgi için bkz . Azure portalında ilk işlevinizi oluşturma.

Portal düzenleme yalnızca function.json dosyasını kullanan Node.js sürüm 3 için desteklenir.

Dağıtım

Kod projenizi Azure'da yayımladığınızda, projenizi temelde mevcut bir işlev uygulaması kaynağına dağıtırsınız. İşlev uygulaması, Azure'da işlevlerinizin çalıştırıldığı bir yürütme bağlamı sağlar. Bu nedenle, işlevlerinizin dağıtım ve yönetim birimidir. Azure Kaynağı açısından bakıldığında işlev uygulaması, web uygulamasına eşdeğer olan Azure Uygulaması Hizmeti'ndeki bir site kaynağına (Microsoft.Web/sites) eşdeğerdir.

İşlev uygulaması, birlikte yönetilen, dağıtılan ve ölçeklendirilen bir veya daha fazla işlevden oluşur. İşlev uygulamasındaki tüm işlevler aynı fiyatlandırma planını, dağıtım yöntemini ve çalışma zamanı sürümünü paylaşır. Daha fazla bilgi için bkz . İşlev uygulamasını yönetme.

İşlev uygulaması ve diğer gerekli kaynaklar Azure'da henüz mevcut olmadığında, proje dosyalarınızı dağıtabilmek için önce bu kaynakları oluşturmanız gerekir. Bu kaynakları şu yollardan biriyle oluşturabilirsiniz:

İşlevler, araç tabanlı yayımlamaya ek olarak, mevcut bir işlev uygulamasına kaynak kodu dağıtmaya yönelik diğer teknolojileri de destekler. Daha fazla bilgi için bkz. Azure İşlevleri dağıtım teknolojileri.

Hizmetlere bağlanma

Bulut tabanlı işlem hizmetlerinin en önemli gereksinimlerinden biri, diğer bulut hizmetlerinden veri okumak ve bu hizmetlere veri yazmaktır. İşlevler, istemci SDK'larıyla çalışmak zorunda kalmadan hizmetlere bağlanmanızı kolaylaştıran kapsamlı bir bağlama kümesi sağlar.

İşlevler tarafından sağlanan bağlama uzantılarını kullanmanız veya istemci SDK'larıyla doğrudan çalışmanız fark etmeksizin, bağlantı verilerini güvenli bir şekilde depolar ve kodunuzda içermezsiniz. Daha fazla bilgi için bkz . Bağlantılar.

Bağlamalar

İşlevler, birçok Azure hizmeti ve uzantı olarak uygulanan birkaç üçüncü taraf hizmet için bağlamalar sağlar. Daha fazla bilgi için desteklenen bağlamaların tam listesine bakın.

Bağlama uzantıları hem girişleri hem de çıkışları destekleyebilir ve birçok tetikleyici de giriş bağlaması görevi görür. Bağlamalar, İşlevler ana bilgisayarının sizin için veri erişimini işleyebilmesi için hizmetlerle bağlantıyı yapılandırmanıza olanak sağlar. Daha fazla bilgi için bkz. Azure İşlevleri tetikleyicileri ve bağlama kavramları.

Bağlamalardan gelen hatalarla ilgili sorunlarla karşılaşıyorsanız bağlama hata kodlarını Azure İşlevleri belgelerine bakın.

İstemci SDK'ları

İşlevler işlev kodunuzda veri erişimini basitleştirmek için bağlamalar sağlarken, dilerseniz projenizde bir istemci SDK'sını kullanarak belirli bir hizmete doğrudan erişebilirsiniz. İşlevleriniz bağlama uzantısı tarafından desteklenmeyen bir temel SDK işlevselliği gerektiriyorsa istemci SDK'larını doğrudan kullanmanız gerekebilir.

İstemci SDK'larını kullanırken, bağlama uzantıları tarafından kullanılan bağlantı dizesi depolamak ve bunlara erişmek için aynı işlemi kullanmanız gerekir.

İşlevlerinizde bir istemci SDK örneği oluşturduğunuzda, ortam değişkenlerinden istemcinin gerektirdiği bağlantı bilgilerini almanız gerekir.

İşlevlerinizde bir istemci SDK örneği oluşturduğunuzda, ortam değişkenlerinden istemcinin gerektirdiği bağlantı bilgilerini almanız gerekir.

İşlevlerinizde bir istemci SDK örneği oluşturduğunuzda, ortam değişkenlerinden istemcinin gerektirdiği bağlantı bilgilerini almanız gerekir.

İşlevlerinizde bir istemci SDK örneği oluşturduğunuzda, ortam değişkenlerinden istemcinin gerektirdiği bağlantı bilgilerini almanız gerekir.

İşlevlerinizde bir istemci SDK örneği oluşturduğunuzda, ortam değişkenlerinden istemcinin gerektirdiği bağlantı bilgilerini almanız gerekir.

Bağlantılar

En iyi güvenlik uygulaması olarak Azure İşlevleri, diğer hizmetlere bağlanmak için gereken dizeleri, anahtarları ve diğer belirteçleri daha güvenli bir şekilde depolamanıza yardımcı olmak için Azure Uygulaması Hizmeti'nin uygulama ayarları işlevselliğinden yararlanır. Azure'daki uygulama ayarları şifrelenmiş olarak depolanır ve çalışma zamanında uygulamanız tarafından ortam değişken name value çiftleri olarak erişilebilir. Bağlantı özelliği gerektiren tetikleyiciler ve bağlamalar için gerçek bağlantı dizesi yerine uygulama ayarı adını ayarlarsınız. Bağlamayı doğrudan bir bağlantı dizesi veya anahtarla yapılandıramazsınız.

Örneğin, özelliği olan connection bir tetikleyici tanımını göz önünde bulundurun. bağlantı dizesi yerine, bağlantı dizesi içeren bir ortam değişkeninin adını ayarlarsınızconnection. Bu gizli dizi erişim stratejisini kullanmak hem uygulamalarınızı daha güvenli hale getirir hem de ortamlar arasındaki bağlantıları değiştirmenizi kolaylaştırır. Daha da fazla güvenlik için kimlik tabanlı bağlantıları kullanabilirsiniz.

Varsayılan yapılandırma sağlayıcısı ortam değişkenlerini kullanır. Bu değişkenler, Azure'da çalıştırılırken uygulama ayarlarında ve yerel olarak geliştirme yaparken yerel ayarlar dosyasında tanımlanır.

Bağlantı değerleri

Bağlantı adı tek bir tam değere çözümlendiğinde, çalışma zamanı değeri genellikle gizli dizi içeren bir bağlantı dizesi olarak tanımlar. bağlantı dizesi ayrıntıları, bağlandığınız hizmete bağlıdır.

Ancak, bağlantı adı, kimlik tabanlı bağlantıları yapılandırmak için yararlı olan birden çok yapılandırma öğesi koleksiyonuna da başvurabilir. Ortam değişkenleri, çift alt çizgi __ile biten paylaşılan bir ön ek kullanılarak koleksiyon olarak ele alınabilir. Daha sonra bağlantı adı bu önek olarak ayarlanarak gruba başvurulabilir.

Örneğin, Azure Blob tetikleyici tanımının connection özelliği olabilir Storage1. adlı Storage1bir ortam değişkeni tarafından yapılandırılan tek bir dize değeri olmadığı sürece, adlı Storage1__blobServiceUri ortam değişkeni, bağlantının blobServiceUri özelliğini bilgilendirmek için kullanılabilir. Bağlantı özellikleri her hizmet için farklıdır. Bağlantıyı kullanan bileşenin belgelerine bakın.

Not

Yönetilen Kimlik bağlantıları için ayarlar sağlamak üzere Azure Uygulaması Yapılandırması veya Key Vault kullanılırken, adların doğru çözümlendiğinden __ emin olmak için adların yerine veya / gibi : geçerli bir anahtar ayırıcı kullanılmalıdır.

Örneğin, Storage1:blobServiceUri.

Kimlik tabanlı bağlantı yapılandırma

Azure İşlevleri'deki bazı bağlantılar gizli dizi yerine kimlik kullanacak şekilde yapılandırılabilir. Destek, bağlantıyı kullanan uzantıya bağlıdır. Bazı durumlarda, bağlandığınız hizmet kimlik tabanlı bağlantıları desteklese de İşlevler'de bir bağlantı dizesi gerekebilir. İşlev uygulamalarınızı yönetilen kimliklerle yapılandırma öğreticisi için kimlik tabanlı bağlantılarla işlev uygulaması oluşturma öğreticisine bakın.

Not

Tüketim veya Elastik Premium planında çalışırken uygulamanız, işlev uygulamanız tarafından kullanılan depolama hesabındaki Azure Dosyalar bağlanırken ve WEBSITE_CONTENTSHARE ayarlarını kullanırWEBSITE_AZUREFILESCONNECTIONSTRING. Azure Dosyalar, dosya paylaşımına erişirken yönetilen kimliğin kullanılmasını desteklemez. Daha fazla bilgi için bkz. desteklenen Azure Dosyalar kimlik doğrulama senaryoları

Aşağıdaki bileşenler kimlik tabanlı bağlantıları destekler:

Bağlantı kaynağı Desteklenen planlar Daha fazla bilgi edinin
Azure Blobları tetikleyicileri ve bağlamaları Tümü Azure Blobs uzantısı sürüm 5.0.0 veya üzeri,
Uzantı paketi 3.3.0 veya üzeri
Azure Kuyrukları tetikleyicileri ve bağlamaları Tümü Azure Kuyrukları uzantısı sürüm 5.0.0 veya üzeri,
Uzantı paketi 3.3.0 veya üzeri
Azure Tabloları (Azure Depolama kullanırken) Tümü Azure Tabloları uzantısı sürüm 1.0.0 veya üzeri,
Uzantı paketi 3.3.0 veya üzeri
Azure SQL Veritabanı Tümü Yönetilen kimlik ve SQL bağlamalarıyla bir işlev uygulamasını Azure SQL'e bağlama
Azure Event Hubs tetikleyicileri ve bağlamaları Tümü Azure Event Hubs uzantısı sürüm 5.0.0 veya üzeri,
Uzantı paketi 3.3.0 veya üzeri
Azure Service Bus tetikleyicileri ve bağlamaları Tümü Azure Service Bus uzantısı sürüm 5.0.0 veya üzeri,
Uzantı paketi 3.3.0 veya üzeri
Azure Event Grid çıkış bağlaması Tümü Azure Event Grid uzantısı sürüm 3.3.0 veya üzeri,
Uzantı paketi 3.3.0 veya üzeri
Azure Cosmos DB tetikleyicileri ve bağlamaları Tümü Azure Cosmos DB uzantısı sürüm 4.0.0 veya üzeri,
Uzantı paketi 4.0.2 veya üzeri
Azure SignalR tetikleyicileri ve bağlamaları Tümü Azure SignalR uzantısı sürüm 1.7.0 veya üzeri
Uzantı paketi 3.6.1 veya üzeri
Dayanıklı İşlevler depolama sağlayıcısı (Azure Depolama) Tümü uzantı 2.7.0 veya sonraki bir sürümü Dayanıklı İşlevler,
Uzantı paketi 3.3.0 veya üzeri
Konak için gerekli depolama ("AzureWebJobsStorage") Tümü Kimlikle konak depolamaya bağlanma

Azure İşlevleri hizmetinde barındırıldığında, kimlik tabanlı bağlantılar yönetilen kimlik kullanır. Ve özellikleriyle credential clientID kullanıcı tarafından atanan bir kimlik belirtilse de, sistem tarafından atanan kimlik varsayılan olarak kullanılır. Kullanıcı tarafından atanan kimliği kaynak kimliğiyle yapılandırmanın desteklenmediğini unutmayın. Yerel geliştirme gibi diğer bağlamlarda çalıştırıldığında, bunun yerine geliştirici kimliğiniz kullanılır, ancak bu özelleştirilebilir. Bkz. Kimlik tabanlı bağlantılarla yerel geliştirme.

Kimliğe izin verme

Hangi kimlik kullanılıyorsa, hedeflenen eylemleri gerçekleştirmek için izinlere sahip olmalıdır. Çoğu Azure hizmeti için bu, bu izinleri sağlayan yerleşik veya özel rolleri kullanarak Azure RBAC'de bir rol atamanız gerektiği anlamına gelir.

Önemli

Bazı izinler, tüm bağlamlar için gerekli olmayan hedef hizmet tarafından gösterilebilir. Mümkün olduğunda, kimliğe yalnızca gerekli ayrıcalıkları sağlayarak en az ayrıcalık ilkesine uyun. Örneğin, uygulamanın yalnızca bir veri kaynağından okuyabilmesi gerekiyorsa, yalnızca okuma izni olan bir rol kullanın. Okuma işlemi için aşırı izin olduğundan, bu hizmete yazmaya da izin veren bir rol atamak uygun olmaz. Benzer şekilde, rol atamasının kapsamının yalnızca okunması gereken kaynaklara göre ayarlandığından emin olmak istersiniz.

Her bileşenin izinleri hakkında bilgi edinmek için şu sekmelerden birini seçin:

Çalışma zamanında blob kapsayıcınıza erişim sağlayan bir rol ataması oluşturmanız gerekir. Sahip gibi yönetim rolleri yeterli değildir. Aşağıdaki tabloda, normal işlemde Blob Depolama uzantısı kullanılırken önerilen yerleşik roller gösterilmektedir. Uygulamanız, yazdığınız koda göre daha fazla izin gerektirebilir.

Bağlama türü Örnek yerleşik roller
Tetikleyici Depolama Blobu Veri Sahibi ve Depolama Kuyruğu Veri Katkıda Bulunanı1

AzureWebJobsStorage bağlantısına ek izinler de verilmelidir.2
Giriş bağlaması Depolama Blob Verileri Okuyucusu
Çıkış bağlaması Depolama Blob Verileri Sahibi

1 Blob tetikleyicisi, bağlantı tarafından belirtilen depolama hesabındaki bir kuyruğa zehirli bloblar yazarak birden çok yeniden denemede başarısızlığı işler.

2 AzureWebJobsStorage bağlantısı, tetikleyiciyi etkinleştiren bloblar ve kuyruklar için dahili olarak kullanılır. Kimlik tabanlı bir bağlantı kullanacak şekilde yapılandırılmışsa, varsayılan gereksinimin ötesinde ek izinlere ihtiyacı vardır. Gerekli izinler Depolama Blobu Veri Sahibi, Depolama Kuyruğu Veri Katkıda Bulunanı ve Depolama Hesabı Katkıda Bulunanı rolleri kapsamındadır. Daha fazla bilgi edinmek için bkz . Kimlikle konak depolamaya bağlanma.

Kimlik tabanlı bağlantılar için ortak özellikler

Azure hizmeti için kimlik tabanlı bağlantı aşağıdaki ortak özellikleri kabul eder; burada <CONNECTION_NAME_PREFIX> tetikleyici veya bağlama tanımındaki özelliğinizin connection değeridir:

Özellik Ortam değişkeni şablonu Açıklama
Belirteç Kimlik Bilgileri <CONNECTION_NAME_PREFIX>__credential Bağlantı için bir belirtecin nasıl alınması gerektiğini tanımlar. Dağıtılan Azure İşleviniz yönetilen kimlik kimlik doğrulamasını kullanmayı planlıyorsa bu ayar olarak ayarlanmalıdır managedidentity . Bu değer yalnızca barındırma ortamında yönetilen kimlik kullanılabilir olduğunda geçerlidir.
Client ID <CONNECTION_NAME_PREFIX>__clientId credential olarak ayarlandığındamanagedidentity, bu özellik belirteç alınırken kullanılacak kullanıcı tarafından atanan kimliği belirtmek üzere ayarlanabilir. özelliği, uygulamaya atanan kullanıcı tarafından atanan kimliğe karşılık gelen bir istemci kimliğini kabul eder. Hem Kaynak kimliği hem de istemci kimliği belirtmek geçersiz. Belirtilmezse, sistem tarafından atanan kimlik kullanılır. Bu özellik, credential ayar edilmemesi gereken yerel geliştirme senaryolarında farklı şekilde kullanılır.
Kaynak Kimliği <CONNECTION_NAME_PREFIX>__managedIdentityResourceId credential olarak ayarlandığındamanagedidentity, bu özellik belirteç alınırken kullanılacak kaynak Tanımlayıcısını belirtmek üzere ayarlanabilir. özelliği, kullanıcı tanımlı yönetilen kimliğin kaynak kimliğine karşılık gelen bir kaynak tanımlayıcısını kabul eder. Hem kaynak kimliği hem de istemci kimliği belirtmek geçersiz. Hiçbiri belirtilmezse, sistem tarafından atanan kimlik kullanılır. Bu özellik, credential ayar edilmemesi gereken yerel geliştirme senaryolarında farklı şekilde kullanılır.

Belirli bir bağlantı türü için diğer seçenekler desteklenebilir. Bağlantıyı yapan bileşenin belgelerine bakın.

Kimlik tabanlı bağlantılarla yerel geliştirme

Not

Kimlik tabanlı bağlantılarla yerel geliştirme için Azure İşlevleri Core Tools veya sonraki bir sürüm gerekir.4.0.3904

İşlev projenizi yerel olarak çalıştırdığınızda, yukarıdaki yapılandırma çalışma zamanına yerel geliştirici kimliğinizi kullanmasını söyler. Bağlantı, aşağıdaki konumlardan sırayla bir belirteç almaya çalışır:

  • Microsoft uygulamaları arasında paylaşılan yerel önbellek
  • Visual Studio'daki geçerli kullanıcı bağlamı
  • Visual Studio Code'daki geçerli kullanıcı bağlamı
  • Azure CLI'daki geçerli kullanıcı bağlamı

Bu seçeneklerden hiçbiri başarılı olmazsa bir hata oluşur.

Kimliğinizin geliştirme için kullanılan Azure kaynaklarına yönelik bazı rol atamaları zaten olabilir, ancak bu roller gerekli veri erişimini sağlamayabilir. Sahip gibi yönetim rolleri yeterli değildir. Her bileşen için bağlantılar için gereken izinleri bir kez daha denetleyin ve bunları kendinize atadığınızdan emin olun.

Bazı durumlarda, farklı bir kimlik kullanımını belirtmek isteyebilirsiniz. Microsoft Entra hizmet sorumlusu için istemci kimliğine ve gizli diziye göre alternatif kimliğe işaret eden bağlantının yapılandırma özelliklerini ekleyebilirsiniz. Bu yapılandırma seçeneği, Azure İşlevleri hizmetinde barındırıldığında desteklenmez. Yerel makinenizde kimlik ve gizli dizi kullanmak için aşağıdaki ek özelliklerle bağlantıyı tanımlayın:

Özellik Ortam değişkeni şablonu Açıklama
Kiracı kimliği <CONNECTION_NAME_PREFIX>__tenantId Microsoft Entra kiracısı (dizin) kimliği.
Client ID <CONNECTION_NAME_PREFIX>__clientId Kiracıdaki bir uygulama kaydının istemci (uygulama) kimliği.
İstemci gizli anahtarı <CONNECTION_NAME_PREFIX>__clientSecret Uygulama kaydı için oluşturulan bir istemci gizli dizisi.

Azure Bloblarına kimlik tabanlı bağlantı için gereken özelliklere bir örnek local.settings.json aşağıda verilmiştir:

{
  "IsEncrypted": false,
  "Values": {
    "<CONNECTION_NAME_PREFIX>__blobServiceUri": "<blobServiceUri>",
    "<CONNECTION_NAME_PREFIX>__queueServiceUri": "<queueServiceUri>",
    "<CONNECTION_NAME_PREFIX>__tenantId": "<tenantId>",
    "<CONNECTION_NAME_PREFIX>__clientId": "<clientId>",
    "<CONNECTION_NAME_PREFIX>__clientSecret": "<clientSecret>"
  }
}

Kimlikle konak depolamaya bağlanma

Azure İşlevleri konağı, zamanlayıcı tetikleyicilerinin tek başına yürütülmesini ve varsayılan uygulama anahtarı depolamasını koordine etme gibi temel davranışları etkinleştirmek için içinde ayarlanan AzureWebJobsStorage depolama bağlantısını kullanır. Bu bağlantı, kimlik kullanacak şekilde de yapılandırılabilir.

Dikkat

İşlevler'deki diğer bileşenler varsayılan davranışlar için kullanılır AzureWebJobsStorage . Azure Blobları, Event Hubs ve Dayanıklı İşlevler için tetikleyiciler ve bağlamalar dahil olmak üzere bu tür bağlantıları desteklemeyen uzantıların eski sürümlerini kullanıyorsanız, bunu kimlik tabanlı bir bağlantıya taşımamalısınız. Benzer şekilde, AzureWebJobsStorage Linux Tüketiminde sunucu tarafı derlemesi kullanılırken dağıtım yapıtları için kullanılır ve bunu etkinleştirirseniz, bir dış dağıtım paketi aracılığıyla dağıtmanız gerekir.

Ayrıca işlev uygulamanız tetikleyicileri, bağlamaları ve/veya işlev kodundaki diğer depolama bağlantıları için yeniden kullanıyor AzureWebJobsStorage olabilir. Bu bağlantıyı bir bağlantı dizesi değiştirmeden önce tüm kullanımlarının AzureWebJobsStorage kimlik tabanlı bağlantı biçimini kullanabildiğinden emin olun.

için kimlik tabanlı bir bağlantı kullanmak için AzureWebJobsStorageaşağıdaki uygulama ayarlarını yapılandırın:

Ayar Açıklama Örnek değer
AzureWebJobsStorage__blobServiceUri HTTPS şemasını kullanarak depolama hesabının blob hizmetinin veri düzlemi URI'si. <https:// storage_account_name.blob.core.windows.net>
AzureWebJobsStorage__queueServiceUri HTTPS şemasını kullanarak depolama hesabının kuyruk hizmetinin veri düzlemi URI'si. <https:// storage_account_name.queue.core.windows.net>
AzureWebJobsStorage__tableServiceUri HTTPS şemasını kullanarak depolama hesabının tablo hizmetinin veri düzlemi URI'si. <https:// storage_account_name.table.core.windows.net>

Kimlik tabanlı bağlantılar için ortak özellikler de ayarlanabilir.

Genel Azure için varsayılan DNS sonekini ve hizmet adını kullanan bir depolama hesabı kullanarak yapılandırıyorsanız AzureWebJobsStorage , biçimi izleyerek https://<accountName>.[blob|queue|file|table].core.windows.net depolama hesabınızın adına ayarlayabilirsiniz AzureWebJobsStorage__accountName . Her depolama hizmetinin uç noktaları bu hesap için çıkarılır. Depolama hesabı bağımsız bir bulutta olduğunda veya özel DNS'sine sahip olduğunda bu işe yaramaz.

Ayar Açıklama Örnek değer
AzureWebJobsStorage__accountName Depolama hesabının hesap adı, yalnızca hesap bağımsız bir bulutta değilse ve özel DNS'sine sahip değilse geçerlidir. Bu söz dizimi benzersizdir AzureWebJobsStorage ve diğer kimlik tabanlı bağlantılar için kullanılamaz. <storage_account_name>

Çalışma zamanında "AzureWebJobsStorage" için depolama hesabına erişim sağlayan bir rol ataması oluşturmanız gerekir. Sahip gibi yönetim rolleri yeterli değildir. Depolama Blobu Veri Sahibi rolü, İşlevler ana bilgisayar depolamasının temel gereksinimlerini kapsar. Çalışma zamanının bloblara hem okuma hem de yazma erişimine ve kapsayıcı oluşturabilmesine ihtiyacı vardır. Bazı uzantılar bu bağlantıyı bloblar, kuyruklar ve tablolar için varsayılan konum olarak kullanır ve bu kullanımlar aşağıdaki tabloda belirtildiği gibi gereksinimler ekleyebilir. Başka herhangi bir amaçla "AzureWebJobsStorage" kullanıyorsanız ek izinlere ihtiyacınız olabilir.

Dahili Gerekli roller Açıklama
Uzantı yok (yalnızca konak) Depolama Blob Verileri Sahibi Genel koordinasyon, varsayılan anahtar deposu için kullanılır
Azure Blobları (yalnızca tetikleyici) Tümü:
Depolama Hesabı Katkıda Bulunanı,
Depolama Blobu Veri Sahibi,
Depolama Kuyruğu Veri Katkıda Bulunanı
Blob tetikleyicisi azure kuyruklarını dahili olarak kullanır ve blob alındı bilgilerini yazar. Tetikleyici için yapılandırılan bağlantıdan bağımsız olarak bunlar için AzureWebJobsStorage kullanır.
Azure Event Hubs (yalnızca tetikleyici) (varsayılan gereksinimden değişiklik yok)
Depolama Blob Verileri Sahibi
Denetim noktaları, AzureWebJobsStorage bağlantısı kullanılarak bloblarda kalıcı hale eklenir.
Süreölçer tetikleyicisi (varsayılan gereksinimden değişiklik yok)
Depolama Blob Verileri Sahibi
Olay başına bir yürütme sağlamak için AzureWebJobsStorage bağlantısı kullanılarak bloblarla kilitler alınır.
Dayanıklı İşlevler Tümü:
Depolama Blob Verileri Katkıda Bulunanı,
Depolama Kuyruğu Veri Katkıda Bulunanı,
Depolama Tablosu Veri Katkıda Bulunanı
Dayanıklı İşlevler etkinlik işlevlerini koordine etmek ve düzenleme durumunu korumak için blobları, kuyrukları ve tabloları kullanır. Varsayılan olarak tüm bunlar için AzureWebJobsStorage bağlantısını kullanır, ancak Dayanıklı İşlevler uzantısı yapılandırmasında farklı bir bağlantı belirtebilirsiniz.

Raporlama Sorunları

Öğe Açıklama Bağlantı
Çalışma Zamanı Betik Konağı, Tetikleyiciler ve Bağlamalar, Dil Desteği Sorun Bildirin
Şablonlar Oluşturma Şablonuyla İlgili Kod Sorunları Sorun Bildirin
Portal Kullanıcı Arabirimi veya Deneyim Sorunu Sorun Bildirin

Açık kaynak depoları

Azure İşlevleri kodu açık kaynak ve bu GitHub depolarında temel bileşenleri bulabilirsiniz:

Sonraki adımlar

Daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın: