Azure İşlevleri için depolama hakkında dikkat edilmesi gerekenler
İşlev uygulaması örneği oluştururken, Azure İşlevleri bir Azure Depolama hesabı gerektirir. aşağıdaki depolama hizmetleri işlev uygulamanız tarafından kullanılabilir:
Depolama birimi hizmeti | İşlev kullanımı |
---|---|
Azure Blob Depolama | Bağlamaların durumunu ve işlev anahtarlarını1 koruyun. Flex Consumption planında çalışan uygulamalar için dağıtım kaynağı. Dayanıklı İşlevler görev hub'ları için varsayılan olarak kullanılır. Linux Tüketimi uzak derlemesi için işlev uygulama kodunu depolamak veya dış paket URL dağıtımlarının bir parçası olarak kullanılabilir. |
Azure Dosyalar 2 | İşlev uygulama kodunuzu Tüketim Planı ve Premium Plan'da depolamak ve çalıştırmak için kullanılan dosya paylaşımı. |
Azure Kuyruk depolama | Dayanıklı İşlevler görev hub'ları için varsayılan olarak kullanılır. Belirli Azure İşlevleri tetikleyicilerinde hata ve yeniden işleme için kullanılır. Blob depolama tetikleyicisi tarafından nesne izleme için kullanılır. |
Azure Tablo Depolama | Dayanıklı İşlevler görev hub'ları için varsayılan olarak kullanılır. |
- Blob depolama, işlev anahtarları için varsayılan depodur, ancak alternatif bir depo yapılandırabilirsiniz.
- Azure Dosyalar varsayılan olarak ayarlanır, ancak belirli koşullar altında Azure Dosyalar olmadan bir uygulama oluşturabilirsiniz.
Dikkat edilmesi gereken önemli hususlar
İşlev uygulamalarınız tarafından kullanılan depolama hesaplarıyla ilgili olarak aşağıdaki olguları dikkate almanız gerekir:
İşlev uygulamanız Tüketim planında veya Premium planda barındırıldığında, işlev kodunuz ve yapılandırma dosyalarınız bağlı depolama hesabında Azure Dosyalar depolanır. Bu depolama hesabını sildiğinizde içerik silinir ve kurtarılamaz. Daha fazla bilgi için bkz . Depolama hesabı silindi
İşlev kodu, erişim anahtarları ve hizmetle ilgili diğer önemli veriler gibi önemli veriler depolama hesabında kalıcı hale gelebilir. İşlev uygulamaları tarafından kullanılan depolama hesaplarına erişimi aşağıdaki yollarla dikkatle yönetmeniz gerekir:
Uygulamaların ve kullanıcıların depolama hesabına erişimini en düşük ayrıcalıklı modele göre denetle ve sınırla. Depolama hesabına yönelik izinler, atanan roldeki veri eylemlerinden veya listKeys işlemini gerçekleştirme izni aracılığıyla gelebilir.
Depolama hesabınızda hem denetim düzlemi etkinliğini (anahtar alma gibi) hem de veri düzlemi işlemlerini (bloba yazma gibi) izleyin. Depolama günlüklerini Azure Depolama dışında bir konumda tutabilirsiniz. Daha fazla bilgi için bkz . Depolama günlükleri.
Depolama hesabı gereksinimleri
Azure portalında işlev uygulaması oluşturma akışının bir parçası olarak oluşturulan depolama hesaplarının yeni işlev uygulamasıyla çalışması garanti edilir. Mevcut bir depolama hesabını kullanmayı seçtiğinizde, sağlanan liste desteklenmeyen bazı depolama hesaplarını içermez. aşağıdaki kısıtlamalar işlev uygulamanız tarafından kullanılan depolama hesapları için geçerlidir, bu nedenle mevcut bir depolama hesabının bu gereksinimleri karşıladığından emin olmanız gerekir:
Hesap türünün Blob, Kuyruk ve Tablo depolamayı desteklemesi gerekir. Bazı depolama hesapları kuyruk ve tabloları desteklemez. Bu hesaplar yalnızca blob depolama hesapları ve Azure Premium Depolama'dır. Depolama hesabı türleri hakkında daha fazla bilgi edinmek için bkz . Depolama hesabına genel bakış.
İşlev uygulamanız Tüketim planında barındırıldığında ağ güvenlikli depolama hesabı kullanamazsınız.
Portalda işlev uygulamanızı oluştururken, yalnızca oluşturduğunuz işlev uygulamasıyla aynı bölgede bulunan mevcut bir depolama hesabını seçmenize izin verilir. Bu bir performans iyileştirmesidir ve katı bir sınırlama değildir. Daha fazla bilgi için bkz . Depolama hesabı konumu.
İşlev uygulamanızı kullanılabilirlik alanı desteği etkinleştirilmiş bir planda oluştururken yalnızca alanlar arası yedekli depolama hesapları desteklenir.
İşlev uygulamanızı ağ güvenliğine sahip bir depolama hesabıyla oluşturmak için dağıtım otomasyonunu kullanırken ARM şablonunuz veya Bicep dosyanıza belirli ağ yapılandırmaları eklemeniz gerekir. Bu ayarları ve kaynakları eklemediğinizde otomatik dağıtımınız doğrulamada başarısız olabilir. Daha ayrıntılı ARM ve Bicep kılavuzu için bkz . Güvenli dağıtımlar. Depolama hesaplarını ağ ile yapılandırmaya genel bakış için bkz. Azure İşlevleri ile güvenli depolama hesabı kullanma.
Depolama hesabı kılavuzu
Her işlev uygulamasının çalışması için bir depolama hesabı gerekir. Bu hesap silindiğinde işlev uygulamanız çalışmaz. Depolamayla ilgili sorunları gidermek için bkz . Depolamayla ilgili sorunları giderme. Aşağıdaki diğer önemli noktalar işlev uygulamaları tarafından kullanılan Depolama hesabı için geçerlidir.
Depolama hesabı konumu
En iyi performans için işlev uygulamanızın aynı bölgede bir depolama hesabı kullanması gerekir ve bu da gecikme süresini azaltır. Azure portalı bu en iyi yöntemi uygular. Bazı nedenlerden dolayı işlev uygulamanızdan farklı bir bölgede depolama hesabı kullanmanız gerekiyorsa, işlev uygulamanızı portalın dışında oluşturmanız gerekir.
Depolama hesabının işlev uygulaması tarafından erişilebilir olması gerekir. Güvenli bir depolama hesabı kullanmanız gerekiyorsa, depolama hesabınızı bir sanal ağ ile kısıtlamayı göz önünde bulundurun.
Depolama hesabı bağlantı ayarı
Varsayılan olarak, işlev uygulamaları bağlantıyı AzureWebJobsStorage uygulama ayarında depolanan bir bağlantı dizesi olarak yapılandırabilirAzureWebJobsStorage
, ancak AzureWebJobsStorage'ı gizli dizi olmadan kimlik tabanlı bir bağlantı kullanacak şekilde de yapılandırabilirsiniz.
Tüketim planında (yalnızca Windows) veya Elastik Premium planında (Windows veya Linux) çalışan işlev uygulamaları, dinamik ölçeklendirmeyi etkinleştirmek için gereken görüntüleri depolamak için Azure Dosyalar kullanabilir. Bu planlar için WEBSITE_CONTENTAZUREFILECONNECTIONSTRING ayarında depolama hesabının bağlantı dizesi ve WEBSITE_CONTENTSHARE ayarında dosya paylaşımının adını ayarlayın. Bu genellikle için AzureWebJobsStorage
kullanılan hesaptır. Azure Dosyalar kullanmayan bir işlev uygulaması da oluşturabilirsiniz, ancak ölçeklendirme sınırlı olabilir.
Not
Depolama anahtarlarını yeniden oluştururken depolama hesabı bağlantı dizesi güncelleştirilmelidir. Depolama anahtarı yönetimi hakkında daha fazla bilgiyi burada bulabilirsiniz.
Paylaşılan depolama hesapları
Birden çok işlev uygulamasının aynı depolama hesabını sorunsuz bir şekilde paylaşması mümkündür. Örneğin, Visual Studio'da Azurite depolama öykünücüsü kullanarak birden çok uygulama geliştirebilirsiniz. Bu durumda öykünücü tek bir depolama hesabı gibi davranır. İşlev uygulamanız tarafından kullanılan depolama hesabı, uygulama verilerinizi depolamak için de kullanılabilir. Ancak bu yaklaşım üretim ortamında her zaman iyi bir fikir değildir.
Konak kimliği çakışmalarını önlemek için ayrı depolama hesapları kullanmanız gerekebilir.
Yaşam döngüsü yönetimi ilkesiyle ilgili dikkat edilmesi gerekenler
İşlev uygulamanız tarafından kullanılan Blob Depolama hesabınıza yaşam döngüsü yönetimi ilkeleri uygulamamalısınız. İşlevler, işlev erişim anahtarları gibi önemli bilgileri kalıcı hale getirmek için Blob depolamayı kullanır ve ilkeler İşlevler konağı için gereken blobları (anahtarlar gibi) kaldırabilir. İlkeleri kullanmanız gerekiyorsa, veya scm
ön ekli azure-webjobs
İşlevler tarafından kullanılan kapsayıcıları hariç tutun.
Depolama günlükleri
depolama hesabında işlev kodu ve anahtarlar kalıcı olabileceğinden, etkinliğin depolama hesabında günlüğe kaydedilmesi yetkisiz erişimi izlemek için iyi bir yoldur. Azure İzleyici kaynak günlükleri, depolama veri düzleminde olayları izlemek için kullanılabilir. Bu günlükleri yapılandırma ve inceleme hakkında ayrıntılı bilgi için bkz . Azure Depolama'yı izleme.
Azure İzleyici etkinlik günlüğü, listKeys işlemi de dahil olmak üzere denetim düzlemi olaylarını gösterir. Ancak, anahtarların veya diğer kimlik tabanlı veri düzlemi işlemlerinin sonraki kullanımını izlemek için depolama hesabı için kaynak günlüklerini de yapılandırmanız gerekir. Normal İşlevler işlemlerinin dışındaki verilerde yapılan değişiklikleri belirleyebilmek için en azından StorageWrite günlük kategorisini etkinleştirmiş olmanız gerekir.
Geniş kapsamlı depolama izinlerinin olası etkisini sınırlamak için bu günlükler için Log Analytics gibi bir tarihsiz hedef kullanmayı göz önünde bulundurun. Daha fazla bilgi için bkz. İzleme Azure Blob Depolama.
Depolama performansını iyileştirme
Performansı en üst düzeye çıkarmak için her işlev uygulaması için ayrı bir depolama hesabı kullanın. Hem yüksek hacimli depolama işlemleri oluşturan Dayanıklı İşlevler veya Olay Hub'ı ile tetiklenen işlevleriniz olduğunda bu özellikle önemlidir. Uygulama mantığınız Azure Depolama ile doğrudan (Depolama SDK'sını kullanarak) veya depolama bağlamalarından biri aracılığıyla etkileşime geçtiğinde, ayrılmış bir depolama hesabı kullanmanız gerekir. Örneğin, blob depolamaya veri yazan Olay Hub'ı ile tetiklenen bir işleviniz varsa biri işlev uygulaması, diğeri de işlev tarafından depolanan bloblar için olmak üzere iki depolama hesabı kullanın.
Sanal ağlar üzerinden tutarlı yönlendirme
Aynı planda barındırılan birden çok işlev uygulaması, Azure Dosyalar içerik paylaşımı için aynı depolama hesabını da kullanabilir (tarafından WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
tanımlanır). Bu depolama hesabı da bir sanal ağ tarafından güvenli hale getirildiğinde, trafiğin hedeflenen sanal ağ üzerinden tutarlı bir şekilde yönlendirildiğinden emin olmak için bu uygulamaların tümü (eski adıylaWEBSITE_CONTENTOVERVNET
) için vnetContentShareEnabled
aynı değeri kullanmalıdır. Aynı Azure Dosyalar depolama hesabı kullanan uygulamalar arasındaki bu ayar uyuşmazlığı, trafiğin genel ağlar üzerinden yönlendirilmesine neden olabilir ve bu da depolama hesabı ağ kuralları tarafından erişimin engellenmesine neden olabilir.
Bloblarla çalışma
İşlevler için önemli bir senaryo, görüntü işleme veya yaklaşım analizi gibi blob kapsayıcılarındaki dosyaların dosya işlenmesidir. Daha fazla bilgi edinmek için bkz . Dosya yüklemelerini işleme.
Blob kapsayıcısı üzerinde tetikleme
Depolama kapsayıcısında bloblarda yapılan değişikliklere göre işlev kodunuzu yürütmenin çeşitli yolları vardır. Gereksinimlerinize en uygun işlev tetikleyicisini belirlemek için aşağıdaki tabloyu kullanın:
Strateji | Kapsayıcı (yoklama) | Kapsayıcı (olaylar) | Kuyruk tetikleyicisi | Event Grid |
---|---|---|---|---|
Gecikme süresi | Yüksek (10 dk'ya kadar) | Düşük | Orta | Düşük |
Depolama hesabı sınırlamaları | Yalnızca blob hesapları desteklenmiyor¹ | genel amaçlı v1 desteklenmiyor | yok | genel amaçlı v1 desteklenmiyor |
Tetikleyici türü | Blob depolama | Blob depolama | Kuyruk depolama | Event Grid |
Uzantı sürümü | Tümü | Depolama v5.x+ | Herhangi biri | Herhangi biri |
Mevcut blobları işler | Yes | Hayır | Hayır | Hayır |
Filtreler | Blob adı deseni | Olay filtreleri | yok | Olay filtreleri |
Olay aboneliği gerektirir | Hayır | Evet | Hayı | Evet |
Flex Tüketim planını destekler | Hayır | Evet | Evet | Yes |
Yüksek ölçekli²'i destekler | Hayır | Evet | Evet | Yes |
Açıklama | Varsayılan tetikleyici davranışı, kapsayıcıyı güncelleştirmeler için yoklamayı kullanır. Daha fazla bilgi için Blob depolama tetikleyicisi başvurusundaki örneklere bakın. | Bir olay aboneliğinden blob depolama olaylarını tüketir. Source parametresinin değerini EventGrid gerektirir. Daha fazla bilgi için bkz. Öğretici: Olay aboneliği kullanarak blob kapsayıcılarında Azure İşlevleri tetikleme. |
Blob adı dizesi, kapsayıcıya bir blob eklendiğinde depolama kuyruğuna el ile eklenir. Bu değer doğrudan bir Kuyruk depolama tetikleyicisi tarafından aynı işlevdeki blob depolama giriş bağlamasına geçirilir. | Depolama kapsayıcısından gelenlerin yanı sıra olaylar üzerinde tetikleme esnekliği sağlar. Ayrıca, işlev tetikleyen nonstorage olayları olması gerektiğinde kullanın. Daha fazla bilgi için bkz. Azure İşlevleri'da Event Grid tetikleyicileri ve bağlamalarıyla çalışma. |
- Blob depolama giriş ve çıkış bağlamaları yalnızca blob hesaplarını destekler.
- Yüksek ölçek, içinde 100.000'den fazla blob bulunan kapsayıcılar veya saniyede 100'den fazla blob güncelleştirmesi olan depolama hesapları olarak gevşek bir şekilde tanımlanabilir.
Depolama veri şifrelemesi
Azure Depolama bekleyen bir depolama hesabındaki tüm verileri şifreler. Daha fazla bilgi için Bekleyen veriler için Azure Depolama şifrelemesi başlıklı makaleye bakın.
Varsayılan olarak, veriler Microsoft tarafından yönetilen anahtarlarla şifrelenir. Şifreleme anahtarları üzerinde ek denetim için blob ve dosya verilerinin şifrelenmesini sağlamak için müşteri tarafından yönetilen anahtarlar sağlayabilirsiniz. Depolama hesabına erişebilmek için bu anahtarların İşlevler için Azure Key Vault'ta bulunması gerekir. Daha fazla bilgi edinmek için bkz . Müşteri tarafından yönetilen anahtarları kullanarak bekleyenleri şifreleme.
Bölge içi veri yerleşimi
Tüm müşteri verilerinin tek bir bölgede kalması gerektiğinde, işlev uygulamasıyla ilişkili depolama hesabı, bölge içi yedekliliğe sahip bir hesap olmalıdır. Azure Dayanıklı İşlevler ile bölge içi yedekli depolama hesabı da kullanılmalıdır.
Platform tarafından yönetilen diğer müşteri verileri yalnızca şirket içinde yük dengeli bir App Service Ortamı (ASE) barındırılırken bölgede depolanır. Daha fazla bilgi edinmek için bkz . ASE bölge yedekliliği.
Konak Kimliği ile ilgili dikkat edilmesi gerekenler
İşlevler, depolanan yapıtlarda belirli bir işlev uygulamasını benzersiz olarak tanımlamak için bir konak kimliği değeri kullanır. Varsayılan olarak, bu kimlik işlev uygulamasının adından otomatik olarak oluşturulur ve ilk 32 karaktere yuvarlanır. Bu kimlik daha sonra bağlı depolama hesabında uygulama başına bağıntı ve izleme bilgileri depolanırken kullanılır. Adları 32 karakterden uzun olan işlev uygulamalarınız varsa ve ilk 32 karakter aynı olduğunda, bu kesme işlemi konak kimliği değerlerinin yinelenmesine neden olabilir. Aynı konak kimliklerine sahip iki işlev uygulaması aynı depolama hesabını kullandığında, depolanan veriler doğru işlev uygulamasına benzersiz olarak bağlanamadığından konak kimliği çakışması elde edersiniz.
Not
Bu tür bir konak kimliği harmanlaması, her iki yuva da aynı depolama hesabını kullandığında üretim yuvasındaki bir işlev uygulaması ile hazırlama yuvasındaki aynı işlev uygulaması arasında oluşabilir.
İşlevler çalışma zamanının 3.x sürümünden itibaren konak kimliği çakışması algılanır ve bir uyarı günlüğe kaydedilir. 4.x sürümünde bir hata günlüğe kaydedilir ve konak durdurulur ve sabit bir hatayla sonuçlanır. Konak kimliği çakışması hakkında daha fazla ayrıntı bu sorunda bulunabilir.
Konak kimliği çakışmalarını önleme
Konak kimliği çakışmalarını önlemek için aşağıdaki stratejileri kullanabilirsiniz:
- Çakışmaya dahil olan her işlev uygulaması veya yuvası için ayrı bir depolama hesabı kullanın.
- İşlev uygulamalarınızdan birini 32 karakterden daha az bir değerle yeniden adlandırın. Bu değer uygulamanın hesaplanan ana bilgisayar kimliğini değiştirir ve çakışmayı kaldırır.
- Bir veya daha fazla çakışan uygulama için açık bir konak kimliği ayarlayın. Daha fazla bilgi edinmek için bkz . Konak Kimliğini geçersiz kılma.
Önemli
Mevcut bir işlev uygulamasıyla ilişkili depolama hesabını değiştirmek veya uygulamanın ana bilgisayar kimliğini değiştirmek, mevcut işlevlerin davranışını etkileyebilir. Örneğin Blob depolama tetikleyicisi, depolama alanındaki belirli bir konak kimliği yoluna makbuzlar yazarak blobların tek tek işlenip işlenmediğini izler. Konak kimliği değiştiğinde veya yeni bir depolama hesabına işaret ettiğinizde, önceden işlenen bloblar yeniden işlenebilir.
Konak kimliğini geçersiz kılma
bu ayarı kullanarak AzureFunctionsWebHost__hostid
uygulama ayarlarında işlev uygulamanız için belirli bir konak kimliğini açıkça ayarlayabilirsiniz. Daha fazla bilgi için bkz . AzureFunctionsWebHost__hostid.
Yuvalar arasında çakışma oluştuğunda, üretim yuvası dahil olmak üzere her yuva için belirli bir konak kimliği ayarlamanız gerekir. Ayrıca, değiştirilmemeleri için bu ayarları dağıtım ayarları olarak işaretlemeniz gerekir. Uygulama ayarları oluşturmayı öğrenmek için bkz . Uygulama ayarlarıyla çalışma.
Azure Arc özellikli kümeler
İşlev uygulamanız Azure Arc özellikli bir Kubernetes kümesine dağıtıldığında, işlev uygulamanız için bir depolama hesabı gerekli olmayabilir. Bu durumda, bir depolama hesabı yalnızca işlev uygulamanız depolama gerektiren bir tetikleyici kullandığında İşlevler tarafından gereklidir. Aşağıdaki tablo, hangi tetikleyicilerin depolama hesabı gerektirebileceğini ve hangilerinin gerektirmediğini gösterir.
Gerekli değil | depolama gerektirebilir |
---|---|
• Azure Cosmos DB • HTTP • Kafka • RabbitMQ • Service Bus |
• Azure SQL • Blob depolama • Event Grid • Event Hubs • IoT Hub • Kuyruk depolama • SendGrid • Sinyal • Tablo depolama • Süreölçer • Twilio |
Depolama alanı olmadan Azure Arc özellikli kubernetes kümesinde işlev uygulaması oluşturmak için az functionapp create Azure CLI komutunu kullanmanız gerekir. Azure CLI sürümü, appservice-kube uzantısının 0.1.7 veya sonraki bir sürümünü içermelidir. Uzantının az --version
yüklü olduğunu ve doğru sürüm olduğunu doğrulamak için komutunu kullanın.
İşlev uygulaması kaynaklarınızı Azure CLI dışındaki yöntemleri kullanarak oluşturmak için mevcut bir depolama hesabı gerekir. Depolama hesabı gerektiren tetikleyicileri kullanmayı planlıyorsanız, işlev uygulamasını oluşturmadan önce hesabı oluşturmanız gerekir.
Azure Dosyalar olmadan uygulama oluşturma
Azure Dosyalar hizmeti, yüksek ölçekli senaryoları destekleyen paylaşılan bir dosya sistemi sağlar. İşlev uygulamanız Bir Elastik Premium veya Tüketim planında Windows üzerinde çalıştığında, depolama hesabınızda varsayılan olarak bir Azure Dosyalar paylaşımı oluşturulur. Bu paylaşım İşlevler tarafından günlük akışı gibi belirli özellikleri etkinleştirmek için kullanılır. Ayrıca paylaşılan paket dağıtım konumu olarak da kullanılır. Bu konum, dağıtılan işlev kodunuzun tüm örneklerde tutarlılığını garanti eder.
Varsayılan olarak, Premium ve Tüketim planlarında barındırılan işlev uygulamaları, bu Azure dosya paylaşımında depolanan dağıtım paketleriyle birlikte zip dağıtımını kullanır. Bu bölüm yalnızca bu barındırma planları ile ilgilidir.
Azure Dosyalar kullanmak için, uygulama ayarlarınızda olarak WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
depolanan bir bağlantı dizesi kullanılması gerekir. Azure Dosyalar şu anda kimlik tabanlı bağlantıları desteklememektedir. Senaryonuz uygulama ayarlarında gizli dizi depolamamanızı gerektiriyorsa, uygulamanızın Azure Dosyalar bağımlılığını kaldırmanız gerekir. Bunu yapmak için uygulamanızı varsayılan Azure Dosyalar bağımlılığı olmadan oluşturabilirsiniz.
Not
İşlev uygulamanızda şu anda önizleme aşamasında olan Flex Consumption planında da çalıştırmayı göz önünde bulundurmalısınız. Flex Tüketim planı, yönetilen kimlik bağlantılarını kullanma özelliği de dahil olmak üzere dağıtım paketi üzerinde daha fazla denetim sağlar. Daha fazla bilgi için Flex Consumption makalesindeki Dağıtım ayarlarını yapılandırma bölümüne bakın.
Uygulamanızı Azure dosya paylaşımı olmadan çalıştırmak için aşağıdaki gereksinimleri karşılamanız gerekir:
- Paketinizi uzak bir Azure Blob depolama kapsayıcısına dağıtmanız ve ardından bu pakete erişim sağlayan URL'yi uygulama ayarı olarak
WEBSITE_RUN_FROM_PACKAGE
ayarlamanız gerekir. Bu seçenek, uygulama içeriğinizi yönetilen kimlikleri destekleyen Azure Dosyalar yerine Blob depolamada depolamanıza olanak tanır.
Dağıtım paketini el ile güncelleştirmek ve büyük olasılıkla paylaşılan erişim imzası (SAS) içeren dağıtım paketi URL'sini korumak sizin sorumluluğundadır.
- Uygulamanız paylaşılan bir yazılabilir dosya sistemine güvenemez.
- Uygulama İşlevler çalışma zamanının 1.x sürümünü kullanamaz.
- Azure portalı varsayılan olarak dosya sistemi günlükleri gibi istemcilerde günlük akışı deneyimleri. Bunun yerine Application Insights günlüklerine güvenmeniz gerekir.
Yukarıdaki gereksinimler senaryonuza uygunsa, Azure Dosyalar olmadan bir işlev uygulaması oluşturmaya devam edebilirsiniz. Ve uygulama ayarları olmadan WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
WEBSITE_CONTENTSHARE
bir uygulama oluşturarak bunu yapabilirsiniz. Başlamak için standart dağıtım için bir ARM şablonu oluşturun, iki ayarı kaldırın ve değiştirilen şablonu dağıtın.
Azure Dosyalar İşlevler için dinamik ölçeği genişletmeyi etkinleştirmek için kullanıldığından, uygulamanızı Windows üzerinde çalışan Elastik Premium planında ve Tüketim planlarında Azure Dosyalar olmadan çalıştırırken ölçeklendirme sınırlı olabilir.
Dosya paylaşımlarını bağlama
Bu işlev yalnızca Linux üzerinde çalışırken kullanılabilir.
Mevcut Azure Dosyalar paylaşımlarını Linux işlev uygulamalarınıza bağlayabilirsiniz. Linux işlev uygulamanıza bir paylaşım takarak mevcut makine öğrenmesi modellerini veya işlevlerinizdeki diğer verileri kullanabilirsiniz. Mevcut bir paylaşımı Linux işlev uygulamanıza bağlamak için aşağıdaki komutu kullanabilirsiniz.
az webapp config storage-account add
Bu komutta, share-name
mevcut Azure Dosyalar paylaşımının adıdır ve custom-id
işlev uygulamasına bağlandığında paylaşımı benzersiz olarak tanımlayan herhangi bir dize olabilir. Ayrıca, mount-path
işlev uygulamanızda paylaşıma erişilen yoldur. mount-path
biçiminde /dir-name
olmalıdır ve ile /home
başlayamaz.
Tam bir örnek için Python işlev uygulaması oluşturma ve Azure Dosyalar paylaşımı bağlama içindeki betiklere bakın.
Şu anda yalnızca bir storage-type
tane AzureFiles
desteklenir. Belirli bir işlev uygulamasına yalnızca beş paylaşım bağlayabilirsiniz. Dosya paylaşımını bağlamak, depolama hesabı farklı bir bölgede olduğunda soğuk başlangıç süresini en az 200-300 ms veya daha fazla artırabilir.
Bağlı paylaşım, belirtilen konumdaki mount-path
işlev kodunuz tarafından kullanılabilir. Örneğin, olduğunda mount-path
/path/to/mount
, aşağıdaki Python örneğinde olduğu gibi dosya sistemi API'lerine göre hedef dizine erişebilirsiniz:
import os
...
files_in_share = os.listdir("/path/to/mount")
Sonraki adımlar
Azure İşlevleri barındırma seçenekleri hakkında daha fazla bilgi edinin.