Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Functions'de, 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 Functions genel bakış okuduğunuz varsayılır.
Doğrudan başlamayı tercih ediyorsanız, Visual Studio, Visual Studio Code kullanarak veya command isteminden hızlı başlangıç öğreticisini tamamlayabilirsiniz.
Doğrudan başlamayı tercih ederseniz, Maven (komut satırı), Eclipse kullanarak hızlı başlangıç öğreticisini tamamlayabilirsiniz. IntelliJ IDEA, Gradle, Quarkus, Spring Cloud, veya Visual Studio Code.
Hemen başlamayı tercih ederseniz, Visual Studio Code kullanarak veya command isteminden hızlı başlangıç öğreticisini tamamlayabilirsiniz.
Hemen başlamayı tercih ederseniz, Visual Studio Code kullanarak veya command isteminden hızlı başlangıç öğreticisini tamamlayabilirsiniz.
Hemen başlamayı tercih ederseniz, Visual Studio Code kullanarak veya command isteminden hızlı başlangıç öğreticisini tamamlayabilirsiniz.
Hemen başlamayı tercih ederseniz, Visual Studio Code kullanarak veya command isteminden hızlı başlangıç öğreticisini tamamlayabilirsiniz.
Kod projesi
Azure Functions merkezinde, functions adlı 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 bulutta çalışan yöntemlerdir. Azure Functions kod projenizi, Azure ç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ştirici 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ştirici 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 Functions tetikleyicileri ve bağlamaları kavramları.
Azure Functions, 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 Functions geliştirmeyi destekleyen araçlardan herhangi birini kullanabilirsiniz.
Geliştirme araçları
Aşağıdaki araçlar, tercih ettiğiniz dilde Azure Functions için tümleşik bir geliştirme ve yayımlama deneyimi sağlar:
Azure Functions Core Tools (komut istemi)
Bu araçlar Azure Functions Core Tools ile tümleştirilir, böylece İşlevler çalışma zamanını kullanarak yerel bilgisayarınızda çalıştırabilir ve hata ayıklayabilirsiniz. Daha fazla bilgi için bkz. Code ve test Azure Functions yerel olarak.
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 yayımladığınızda, temelde projenizi mevcut bir işlev uygulaması kaynağına dağıtırsınız. İşlev uygulaması, işlevlerinizin çalıştığı Azure bir yürütme bağlamı sağlar. Bu nedenle, işlevlerinizin dağıtım ve yönetim birimidir. Azure Kaynağı perspektifinden bakıldığında işlev uygulaması, web uygulamasına eşdeğer olan Azure App Service'daki 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 henüz mevcut olmadığında, proje dosyalarınızı dağıtabilmeniz için önce bu kaynakları oluşturmanız gerekir. Bu kaynakları şu yollardan biriyle oluşturabilirsiniz:
- Visual Studio yayımlama sırasında
Visual Studio Code kullanma
program aracılığıyla Azure CLI, Azure PowerShell, ARM şablonları veya Bicep dosyaları
İş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. deployment technologies in Azure Functions.
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, uzantı olarak uygulanan birçok Azure hizmeti ve birkaç üçüncü taraf hizmeti 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 Functions tetikleyicileri ve bağlamaları kavramları.
Bağlamalardan gelen hatalarla ilgili sorun yaşıyorsanız Azure Functions Bağlama Hata Kodları 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 Functions, 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 App Service uygulama ayarları işlevselliğinden yararlanır. Azure uygulama ayarları şifrelenmiş olarak depolanır ve çalışma zamanında uygulamanız tarafından ortam değişkeni namevalue çiftleri olarak erişilebilir. Bağlantı özelliği gerektiren tetikleyiciler ve bağlamalar için gerçek connection string yerine uygulama ayarı adını ayarlarsınız. Bağlamayı doğrudan bir connection string veya anahtarla yapılandıramazsınız.
Örneğin, özelliği olan connection bir tetikleyici tanımını göz önünde bulundurun. connection string yerine connection değerini connection string içeren bir ortam değişkeninin adına ayarlarsınız. 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, yerel olarak geliştirme sırasında Azure ve local ayarlar dosyasında çalışırken uygulama ayarları içinde 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 connection string olarak tanımlar. connection string 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 Storage1 olabilir. 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ının ayarlarını sağlamak için Azure App Configuration veya Key Vault kullanırken, adların doğru çözümlendiğinden emin olmak için adların doğru çözümlendiğinden emin olmak için : yerine / veya __ gibi geçerli bir anahtar ayırıcısı kullanılmalıdır.
Örneğin, Storage1:blobServiceUri.
Kimlik tabanlı bağlantı yapılandırma
Azure Functions'daki bazı bağlantılar gizli dizi yerine kimlik kullanacak şekilde yapılandırılabilir. Destek, çalışma zamanı sürümüne ve bağlantıyı kullanan uzantıya bağlıdır. Bağlandığınız hizmet kimlik tabanlı bağlantıları desteklese de bazı durumlarda İşlevler'de bir connection string 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 Files bağlanırken WEBSITE_AZUREFILESCONNECTIONSTRING ve WEBSITE_CONTENTSHARE ayarlarını kullanır. Azure Files, dosya paylaşımına erişirken yönetilen kimliğin kullanılmasını desteklemez. Daha fazla bilgi için bkz. Azure Files desteklenen kimlik doğrulama senaryoları
Kimlik tabanlı bağlantılar yalnızca İşlevler 4.x'te desteklenir. Sürüm 1.x kullanıyorsanız, önce sürüm 4.x'e geçmeniz gerekir.
Aşağıdaki bileşenler kimlik tabanlı bağlantıları destekler:
Azure Functions hizmetinde barındırıldığında, kimlik tabanlı bağlantılar managed identity kullanır. Ve özellikleriyle credentialclientID 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 hizmet için bu, bu izinleri sağlayan yerleşik veya özel rolleri kullanarak Azure RBAC
Ö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:
- Azure Blob uzantısı
- Azure Kuyruklar uzantısı
- Azure Tablolar uzantısı
- Event Hubs uzantısı
- Service Bus uzantısı
- Event Grid uzantısı
- Azure Cosmos DB uzantısı
- Azure SignalR uzantısı
- Azure Web PubSub uzantısı
- Durable Functions depolama sağlayıcısı
- İşlevler konak depolama
Ç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 Storage 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 SahibiveDepolama Kuyruğu Veri Katkıda Bulunanı1 AzureWebJobsStorage bağlantısına ek izinler de verilmelidir.2 |
| Giriş bağlaması | Depolama Blobu Veri Okuyucu |
| Çıkış bağlaması | Depolama Blob Verileri Yöneticisi |
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 connection özelliğinizin değeridir:
| Özellik | Ortam değişkeni şablonu | Açıklama |
|---|---|---|
| Belirteç Kimlik Bilgileri | <CONNECTION_NAME_PREFIX>__credential |
Bu özellik, bağlantı için bir belirtecin nasıl alınması gerektiğini belirler. Özellik yerel geliştirme senaryolarında ayarlanmamalıdır. Yönetilen kimlik doğrulaması kullanmayı planlıyorsanız, bu özelliği olarak managedidentityayarlayın.
Başka bir kiracıdaki bir kaynağa bağlanmak istediğinizde, bunun yerine managedidentityasfederatedidentity kullanın. |
| Müşteri Kimliği | <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. Hiçbiri belirtilmezse, sistem tarafından atanan kimlik kullanılır.Bu özellik, kiracılar arası senaryolarda farklı şekilde kullanılır. Kiracılar arası senaryolar bölümüne bakın. Bu özellik, ayar edilmemesi gereken yerel geliştirme senaryolarında credentialfarklı şekilde kullanılır. |
| Kaynak Kimliği | <CONNECTION_NAME_PREFIX>__managedIdentityResourceId |
credential olarak ayarlandığındamanagedidentity, bu özellik belirteç alınırken kullanılacak kullanıcı tarafından atanan kimliği belirtmek üzere ayarlanabilir. Özellik, bir uygulamaya atanmış kullanıcı tarafından verilen kimliğe 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. |
Belirli bir bağlantı türü için diğer seçenekler desteklenebilir. Bağlantıyı yapan bileşenin belgelerine bakın.
ortam değişkenlerini Azure SDK
Dikkat
Azure SDK EnvironmentCredential ortam değişkenlerinin kullanılması, diğer bağlantılar üzerindeki kasıtsız etki nedeniyle önerilmez. Ayrıca Azure Functions dağıtıldığında da tam olarak desteklenmez.
Azure SDK EnvironmentCredential ile ilişkili ortam değişkenleri de ayarlanabilir, ancak bunlar İşlevler hizmeti tarafından Tüketim planlarında ölçeklendirme için işlenmez. Bu ortam değişkenleri herhangi bir bağlantıya özgü değildir ve belirli bir bağlantı için ilgili özellik ayarlanmadığı sürece varsayılan olarak uygulanır. Örneğin, ayarlanırsa AZURE_CLIENT_ID , bu yapılandırılmış gibi <CONNECTION_NAME_PREFIX>__clientId kullanılır. Açıkça ayar <CONNECTION_NAME_PREFIX>__clientId bu varsayılanı geçersiz kılar.
Kimlik tabanlı bağlantılarla yerel geliştirme
Not
Kimlik tabanlı bağlantılarla yerel geliştirme için 4.0.3904 veya sonraki bir sürümün sürümü gerekir.
İş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 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 karşı 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 Functions 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ı (dizin) kimliği. |
| Müşteri Kimliği | <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 local.settings.json özelliklerine bir örnek 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 Functions ana bilgisayarı, 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 AzureWebJobsStorage depolama bağlantısı kümesini 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 Durable Functions 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.
AzureWebJobsStorage tüm kullanımlarının, bu bağlantıyı bir connection string değiştirmeden önce 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 soneki ve hizmet adını kullanan bir depolama hesabı kullanarak AzureWebJobsStorage yapılandırıyorsanız, https://<accountName>.[blob|queue|file|table].core.windows.net biçimini izleyerek AzureWebJobsStorage__accountName depolama hesabınızın adına ayarlayabilirsiniz. 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. |
<depolama hesap adı> |
Ç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 başka izinlere de ihtiyacınız olabilir.
| Dahili | Gerekli roller | Açıklama |
|---|---|---|
| Uzantı yok (yalnızca konak) | Depolama Blob Verileri Yöneticisi | İşlevler, genel koordinasyon için ve varsayılan anahtar deposu olarak blob depolamayı kullanır. Bu senaryo, normal işlem için en düşük izin kümesini temsil eder, ancak tanılama olayları1 için destek içermez. |
| No extension (host only), with support for diagnostic events1 Uzantı yok (yalnızca konak), tanılama olayları desteğiyle1 |
Depolama Blobu Veri Sahibi, Depolama Tablosu Veri Katılımcısı |
Tanılama olayları, AzureWebJobsStorage bağlantısı kullanılarak tablo depolamada kalıcı hale dönüştürülür. |
| Azure Blobları (yalnızca tetikleyici) | Tümü: Depolama Hesabı Katkıda Bulunanı, Depolama Blobu Veri Sahibi, Depolama Kuyruğu Veri Katkıcısı |
Blob tetikleyicisi dahili olarak Azure Kuyrukları kullanır ve blob makbuzları yazar. Tetikleyici için yapılandırılan bağlantıdan bağımsız olarak bu amaçlar için AzureWebJobsStorage bağlantısını kullanır. |
| Azure Event Hubs (yalnızca tetikleyici) | (varsayılan gereksinimden değişiklik yok) Depolama Blob Verileri Yöneticisi |
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 Yöneticisi |
Olay başına bir yürütme sağlamak için AzureWebJobsStorage bağlantısı kullanılarak bloblarla kilitler alınır. |
| Durable Functions | Tümü: Depolama Blob Verileri Katkıda Bulunanı, Depolama Kuyruğu Veri Katkıda Bulunanı, Depolama Tablosu Veri Katılımcısı |
Durable Functions etkinlik işlevlerini koordine etmek ve düzenleme durumunu korumak için blobları, kuyrukları ve tabloları kullanır. Varsayılan olarak AzureWebJobsStorage bağlantısını kullanır, ancak Durable Functions uzantı yapılandırmasında farklı bir bağlantı belirtebilirsiniz. |
1 Bazı sorun türleri için Azure Functions, sorun işlev uygulamasının başlatılmasını engellese bile sorun gidermeye yardımcı olabilecek bir tanılama olayı oluşturabilir. Depolama Tablosu Veri Katkıcısı atanmamışsa, günlüklerinizde bu olayları yazamamayla ilgili uyarılar görebilirsiniz.
Başka bir kiracıdaki bir kaynağa bağlanma
İşlevinizin farklı bir Microsoft Entra kiracıdaki bir kaynağa bağlanması gerekiyorsa bağlantınızın federated identity credential kullanması gerekir. Bunun için kullanıcı tarafından atanan yönetilen kimlik ve çok kiracılı Bir Entra Id uygulama kaydı gerekir. Kiracılar arası bağlantılar için sistem tarafından atanan yönetilen kimliği kullanamazsınız.
Önemli
Tüketim veya Esnek Tüketim planı türlerinde kiracılar arası bağlantı için bir tetikleyici yapılandırdığınızda, platform artık işlev uygulamasını bu tetikleyiciye göre ölçeklendirmez.
Kiracılar arası kimlik tabanlı bir bağlantı yapılandırmak için önce aşağıdaki adımları kullanarak altyapınızı ayarlamanız gerekir:
- İşlev uygulamanızın dağıtıldığı kiracıda, kullanıcı tarafından atanan yeni bir yönetilen kimlik oluşturun.
- Bu kimliği işlev uygulamasına atayın.
- Aynı kiracıda, erişmek istediğiniz kiracılar arası kaynağı temsil eden çok kiracılı bir Entra uygulama kaydı oluşturun .
- Yönetilen kimliği uygulama kaydı için federe kimlik bilgisi olarak ekleyin.
- Kaynağın dağıtıldığı kiracıda, uygulama kaydı için bir kurumsal uygulama oluşturun.
- Kurumsal uygulamanın kaynağa erişmesi için izinler atayın.
Kiracılar arası kimlik tabanlı bağlantı, tetikleyici veya bağlama tanımındaki <CONNECTION_NAME_PREFIX> özelliğinizin değeri olan connection aşağıdaki özellikleri kullanır:
| Özellik | Ortam değişkeni şablonu | Açıklama |
|---|---|---|
| Belirteç Kimlik Bilgileri | <CONNECTION_NAME_PREFIX>__credential |
Gerekli. Başka bir kiracıdaki bir kaynağa bağlanırken bu özelliği olarak managedidentityasfederatedidentityayarlayın. |
| bulutu Azure | <CONNECTION_NAME_PREFIX>__azureCloud |
Gerekli. Bu özellik, Azure bulut ortamını belirler. İzin verilen değerler Azure Genel Bulut için "genel", Azure US Government Bulut için "usgov" ve 21Vianet tarafından sağlanan Azure için "çin" değerleridir. |
| Müşteri Kimliği | <CONNECTION_NAME_PREFIX>__clientId |
Gerekli.
credential olarak ayarlandığındamanagedidentityasfederatedidentity, bu özelliği uygulama kaydının istemci kimliğine (uygulama kimliği) ayarlayın.Bu özellik, tek kiracılı kimlik tabanlı bağlantılarda farklı şekilde kullanılır. Ortak özellikler bölümüne bakın. Bu özellik, ayar edilmemesi gereken yerel geliştirme senaryolarında credentialfarklı şekilde kullanılır. |
| Kiracı kimliği | <CONNECTION_NAME_PREFIX>__tenantId |
Gerekli.
credential olarak ayarlandığındamanagedidentityasfederatedidentity, bu özelliği kaynak kiracının kiracı kimliğine ayarlayın.Bu özellik, ayar edilmemesi gereken yerel geliştirme senaryolarında credentialfarklı şekilde kullanılır. |
| Yönetilen Kimlik İstemci Kimliği | <CONNECTION_NAME_PREFIX>__managedIdentityClientId |
credential olarak ayarlandığındamanagedidentityasfederatedidentity, bu özellik federasyon kimlik bilgisi olarak yapılandırdığınız ve uygulamaya atadığınız kullanıcı tarafından atanan kimliği belirtir.1 Özelliği, kullanıcı tarafından atanan kimliğe karşılık gelen bir istemci kimliğini kabul eder. |
| Yönetilen Kimlik Nesne Kimliği | <CONNECTION_NAME_PREFIX>__managedIdentityObjectId |
credential olarak ayarlandığındamanagedidentityasfederatedidentity, bu özellik federasyon kimlik bilgisi olarak yapılandırdığınız ve uygulamaya atadığınız kullanıcı tarafından atanan kimliği belirtir.1 Özellik, kullanıcı tarafından atanan kimliğe karşılık gelen bir nesne kimliğini (asıl kimlik) kabul eder. |
| Yönetilen Kimlik Kaynak Kimliği | <CONNECTION_NAME_PREFIX>__managedIdentityResourceId |
credential olarak ayarlandığındamanagedidentityasfederatedidentity, bu özellik federasyon kimlik bilgisi olarak yapılandırdığınız ve uygulamaya atadığınız kullanıcı tarafından atanan kimliği belirtir.1 Özelliği, kullanıcı tarafından atanan kimliğe karşılık gelen bir kaynak tanımlayıcısını kabul eder. |
1credential olarak ayarlandığındamanagedidentityasfederatedidentity, bağlantınız tam olarak , managedIdentityClientIdveya managedIdentityObjectId'lerinden managedIdentityResourceIdbirini belirtmelidir.
Bu ayrıca Azure SDK tarafından JSON biçiminde
Raporlama Sorunları
| Öğe | Açıklama | Bağlantı |
|---|---|---|
| Çalışma Zamanı | Betik Konağı, Tetikleyiciler ve Bağlamalar, Dil Desteği | Dosyayı Dosyala |
| Şablonlar | Oluşturma Şablonuyla İlgili Kod Sorunları | Dosyayı Dosyala |
Açık kaynak depoları
Azure Functions kodu open source ve bu GitHub depolarında önemli bileşenleri bulabilirsiniz:
Sonraki adımlar
Daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın:
- Azure Functions senaryoları
- Azure Functions yerel olarak kodlayıp test edin
- Azure FunctionsBest Uygulamaları>