Azure İşlevleri geliştirici kılavuzu
Azure Işlevlerinde belirli işlevler, kullandığınız dil veya bağlama ne olursa olsun, birkaç temel teknik kavram ve bileşeni paylaşır. Belirli bir dile veya bağlamaya özgü öğrenme ayrıntılarına geçmeden önce, tüm bunlar için geçerli olan bu genel bakışı okuduğunuzdan emin olun.
Bu makalede, Azure işlevlerine genel bakış ' ıokuduğunuzu varsaymış olursunuz.
İşlev kodu
Bir işlev , Azure işlevlerinde birincil kavramdır. Bir işlev, çeşitli dillerde yazılmış ve bazı config, function. JSON dosyası olmak üzere iki önemli parça içerir. Derlenen diller için, bu yapılandırma dosyası kodunuzdaki ek açıklamalardan otomatik olarak oluşturulur. Komut dosyası dilleri için yapılandırma dosyasını kendiniz sağlamanız gerekir.
Function. JSON dosyası işlevin tetikleyicisini, bağlamalarını ve diğer yapılandırma ayarlarını tanımlar. Her işlevde tek bir tane tetikleyici olması gerekir. Çalışma zamanı, izlenecek olayları ve bir işlev yürütmesindeki verilerin içine nasıl geçirileceğini ve geri döneceğini öğrenmek için bu yapılandırma dosyasını kullanır. Aşağıda örnek bir Function. JSON dosyası verilmiştir.
{
"disabled":false,
"bindings":[
// ... bindings here
{
"type": "bindingType",
"direction": "in",
"name": "myParamName",
// ... more depending on binding
}
]
}
Daha fazla bilgi için bkz. Azure işlevleri Tetikleyicileri ve bağlamaları kavramları.
bindingsÖzelliği, hem Tetikleyicileri hem de bağlamaları yapılandırdığınız yerdir. Her bağlama birkaç ortak ayarı ve belirli bir bağlama türüne özgü bazı ayarları paylaşır. Her bağlama için aşağıdaki ayarlar gereklidir:
| Özellik | Değerler | Tür | Yorumlar |
|---|---|---|---|
| tür | Bağlamanın adı. Örneğin, queueTrigger. |
string | |
| yön | in, out |
string | Bağlamanın işleve veri almak veya işlevden veri göndermek için olup olmadığını gösterir. |
| name | İşlev tanımlayıcısı. Örneğin, myQueue. |
string | İşlevdeki bağlantılı veriler için kullanılan ad. C# için bu bir bağımsız değişken adıdır; JavaScript için anahtar/değer listesindeki anahtardır. |
İşlev uygulaması
Bir işlev uygulaması, Azure 'da işlevlerinizin çalıştırıldığı bir yürütme bağlamı sağlar. Bu nedenle, işlevleriniz için dağıtım ve yönetim birimidir. İşlev uygulaması, yönetilen, dağıtılan ve birlikte ölçeklenen bir veya daha fazla bağımsız işlevden oluşur. Bir işlev uygulamasındaki tüm işlevler aynı fiyatlandırma planı, dağıtım yöntemi ve çalışma zamanı sürümünü paylaşır. İşlev uygulamasını, işlevlerinizi düzenlemek ve topluca yönetmek için bir yol olarak düşünün. Daha fazla bilgi için bkz. bir işlev uygulamasını yönetme.
Not
Bir işlev uygulamasındaki tüm işlevlerin aynı dilde yazılması gerekir. Azure Işlevleri çalışma zamanının önceki sürümlerinde bu gerekli değildir.
Klasör yapısı
Belirli bir işlev uygulamasındaki tüm işlevlerin kodu, konak yapılandırma dosyası içeren bir kök proje klasöründe bulunur. Dosya host.jsçalışma zamanının yapılandırmalarını içerir ve işlev uygulamasının kök klasöründedir. Bir bin klasörü, işlev uygulamasının gerektirdiği paketleri ve diğer kitaplık dosyalarını içerir. İşlev uygulaması için gereken belirli klasör yapıları dile bağlıdır:
İşlevler çalışma zamanının 2.x ve üst sürümünde, işlev uygulamasındaki tüm işlevlerin aynı dil yığınını paylaşması gerekir.
Yukarıdaki, bir Işlev uygulaması için varsayılan (ve önerilen) klasör yapısıdır. Bir işlevin kodunun dosya konumunu değiştirmek istiyorsanız, scriptFile function. JSON dosyasının bölümünü değiştirin. Ayrıca, Azure 'daki işlev uygulamanıza projenizi dağıtmak için paket dağıtımı kullanmanızı öneririz. Ayrıca, sürekli tümleştirme ve dağıtım ve Azure DevOps gibi mevcut araçları da kullanabilirsiniz.
Not
Bir paketi el ile dağıtıyorsanız, Host. JSON dosyanızı ve işlev klasörlerinizi doğrudan klasörüne dağıttığınızdan emin olun wwwroot . wwwrootDağıtımlarınıza klasörü eklemeyin. Aksi takdirde, klasörler ile biter wwwroot\wwwroot .
Yerel araçları ve yayımlamayı kullanma
işlev uygulamaları Visual Studio, Visual Studio Code, ıntellij, tutulmave Azure Functions Core Toolsgibi çeşitli araçlar kullanılarak yazılabilir ve yayımlanabilir. Daha fazla bilgi için bkz. Azure işlevlerini yerel olarak kod ve testetme.
Azure portal işlevleri düzenleme
Azure portal yerleşik Işlevler Düzenleyicisi kodunuzu ve function. JSON dosyanızı doğrudan satır içinde güncelleştirmenize olanak tanır. Bu yalnızca küçük değişiklikler veya kavram provaları için önerilir-en iyi yöntem, VS Code gibi bir yerel geliştirme aracı kullanmaktır.
Paralel yürütme
Çoklu iş parçacıklı bir işlev çalışma zamanının daha hızlı bir şekilde tetiklenmesi durumunda, çalışma zamanı işlevi paralel olarak birden çok kez çağırabilir. Bir işlev uygulaması Tüketim barındırma planınıkullanıyorsa, işlev uygulaması otomatik olarak ölçeklendirebilir. İşlev uygulamasının her örneği, uygulamanın tüketim barındırma planı üzerinde mi yoksa düzenli bir App Service barındırma planıüzerinde mi çalıştığı, birden çok iş parçacığı kullanarak eşzamanlı işlev çağrılarını paralel olarak işleyebilir. Her işlev uygulama örneğindeki maksimum eşzamanlı işlev çağırma sayısı, kullanılan tetikleyici türüne ve işlev uygulamasındaki diğer işlevler tarafından kullanılan kaynaklara göre değişir.
İşlevler çalışma zamanı sürümü oluşturma
Uygulama ayarını kullanarak Işlevler çalışma zamanının sürümünü yapılandırabilirsiniz FUNCTIONS_EXTENSION_VERSION . Örneğin, "~ 3" değeri, işlev uygulamanızın ana sürümü olarak 3. x kullanacağını gösterir. İşlev uygulamaları, yayımlandıklarında her yeni küçük sürüme yükseltilir. İşlev uygulamanızın tam sürümünün nasıl görüntüleneceği dahil olmak üzere daha fazla bilgi için bkz. Azure işlevleri çalışma zamanı sürümlerini hedefleme.
Depolar
Azure işlevleri için kod açık kaynaktır ve GitHub depolarda depolanır:
- Azure İşlevleri
- Azure Işlevleri ana bilgisayarı
- Azure Işlevleri portalı
- Azure Işlevleri şablonları
- Azure Web İşleri SDK'sı
- Azure Web İşleri SDK'sı Uzantıları
Bağlamalar
Desteklenen tüm bağlamaların bir tablosu aşağıda verilmiştir.
Bu tabloda, çalışma zamanının ana sürümlerinde desteklenen bağlamalar Azure İşlevleri gösterir:
| Tür | 1.x | 2.x ve daha yüksek1 | Tetikleyici | Girdi | Çıktı |
|---|---|---|---|---|---|
| Blob depolama | ✔ | ✔ | ✔ | ✔ | ✔ |
| Azure Cosmos DB | ✔ | ✔ | ✔ | ✔ | ✔ |
| Azure SQL (önizleme) | ✔ | ✔ | ✔ | ||
| Dapr3 | ✔ | ✔ | ✔ | ✔ | |
| Event Grid | ✔ | ✔ | ✔ | ✔ | |
| Event Hubs | ✔ | ✔ | ✔ | ✔ | |
| HTTP & web kancaları | ✔ | ✔ | ✔ | ✔ | |
| IoT Hub’ı | ✔ | ✔ | ✔ | ✔ | |
| Kafka2 | ✔ | ✔ | ✔ | ||
| Mobile Apps | ✔ | ✔ | ✔ | ||
| Notification Hubs | ✔ | ✔ | |||
| Kuyruk depolama | ✔ | ✔ | ✔ | ✔ | |
| RabbitMQ2 | ✔ | ✔ | ✔ | ||
| SendGrid | ✔ | ✔ | ✔ | ||
| Service Bus | ✔ | ✔ | ✔ | ✔ | |
| SignalR | ✔ | ✔ | ✔ | ||
| Tablo depolama | ✔ | ✔ | ✔ | ✔ | |
| Zamanlayıcı | ✔ | ✔ | ✔ | ||
| Twilio | ✔ | ✔ | ✔ |
1 Sürüm 2.x çalışma zamanından başlayarak HTTP ve Zamanlayıcı dışındaki tüm bağlamaların kayıtlı olması gerekir. Bkz. Bağlama uzantılarını kaydetme.
2 Tetikleyiciler Tüketim planında desteklenmiyor. Çalışma zamanı odaklı tetikleyiciler gerektirir.
3 Yalnızca Kubernetes, IoT Edge ve diğer kendi kendine barındırılan modlarda destekler.
Bağlamalardan gelen hatalarla ilgili sorun mu yaşıyorsunuz? Azure Işlevleri bağlama hata kodları belgelerini gözden geçirin.
Bağlantılar
İşlev projeniz, bağlantı bilgilerine yapılandırma sağlayıcısından ada göre başvurur. Bağlantı ayrıntılarını doğrudan kabul etmez ve bunların ortamlar genelinde değiştirilmesine izin verir. Örneğin, bir tetikleyici tanımı bir connection özelliği içerebilir. Bu bir bağlantı dizesine başvurabilir, ancak bağlantı dizesini doğrudan bir içinde ayarlayamazsınız function.json . Bunun yerine, connection bağlantı dizesini içeren bir ortam değişkeninin adına ayarlanır.
Varsayılan yapılandırma sağlayıcısı ortam değişkenlerini kullanır. bunlar, Azure işlevleri hizmetinde çalışırken veya yerel olarak geliştirilirken yerel ayarlar dosyasından uygulama Ayarlar göre ayarlanabilir.
Bağlantı değerleri
Bağlantı adı tek bir tam değere çözümlenirse, çalışma zamanı, genellikle bir gizli dizi içeren bağlantı dizesi olarak değeri tanımlar. Bağlantı dizesinin ayrıntıları, bağlanmak istediğiniz hizmet tarafından tanımlanır.
Ancak, bir bağlantı adı aynı zamanda birden fazla yapılandırma öğesi koleksiyonuna başvurabilir, kimlik tabanlı bağlantılarıyapılandırmaya yarar vardır. Ortam değişkenleri, Çift alt çizgi ile biten paylaşılan bir ön ek kullanılarak bir koleksiyon olarak değerlendirilir __ . Bu gruba, bu önek için bağlantı adı ayarlanarak izin verebilirsiniz.
Örneğin, connection bir Azure Blob tetikleyici tanımının özelliği "Storage1" olabilir. "Storage1" adlı bir ortam değişkeni tarafından yapılandırılan tek bir dize değeri olmadığı sürece, Storage1__blobServiceUri bağlantı özelliğini bilgilendirmek için adlı bir ortam değişkeni kullanılabilir blobServiceUri . Bağlantı özellikleri her hizmet için farklıdır. Bağlantıyı kullanan bileşen için belgelere bakın.
Kimlik tabanlı bağlantı yapılandırma
Bir Azure İşlevleri gizli bilgi yerine kimlik kullanmak üzere yalıtabilirsiniz. Destek, bağlantıyı kullanan uzantıya bağlıdır. Bazı durumlarda, bağlanmakta olduğu hizmet kimlik tabanlı bağlantıları desteklese de İşlevler'de bağlantı dizesi hala gerekli olabilir. İşlev uygulamalarınızı yönetilen kimliklerle yapılandırma öğreticisi için kimlik tabanlı bağlantılar ile işlev uygulaması oluşturma öğreticisi'ne bakın.
Kimlik tabanlı bağlantılar aşağıdaki bileşenler tarafından de desteklemektedir:
| Bağlantı kaynağı | Desteklenen planlar | Daha fazla bilgi edinin |
|---|---|---|
| Azure Blob tetikleyicileri ve bağlamaları | Tümü | Uzantı sürümü 5.0.0 veya sonraki sürümler |
| Azure Kuyruğu tetikleyicileri ve bağlamaları | Tümü | Uzantı sürümü 5.0.0 veya sonraki sürümler |
| Azure Event Hubs tetikleyicileri ve bağlamaları | Tümü | Uzantı sürümü 5.0.0 veya sonraki sürümler |
| Azure Service Bus tetikleyicileri ve bağlamaları | Tümü | Uzantı sürümü 5.0.0 veya sonraki sürümler |
| Azure Cosmos DB tetikleyicileri ve bağlamaları - Önizleme | Elastik Premium | Uzantı sürümü 4.0.0-preview1 veya sonraki sürümler |
| Konak için gerekli depolama ("AzureWebJobsStorage") - Önizleme | Tümü | Kimlikle konak depolamaya bağlanma |
Not
Kimlik tabanlı bağlantılar, kimlik tabanlı Dayanıklı İşlevler.
Azure Işlevleri hizmetinde barındırıldığında, kimlik tabanlı bağlantılar yönetilen bir kimlikkullanır. Sistem tarafından atanan kimlik, ve özellikleriyle kullanıcı tarafından atanan bir kimlik belirtibilse de varsayılan olarak kullanılır credential clientID . Yerel geliştirme gibi diğer bağlamlarda çalıştırıldığında geliştirici kimliğiniz bunun yerine özelleştirilebilir. Bkz. kimlik tabanlı bağlantılarla yerel geliştirme.
Kimliğe izin ver
Kullanılan kimliğin istenen eylemleri gerçekleştirmek için izinleri olması gerekir. Azure RBAC 'de, bu izinleri sağlayan yerleşik veya özel roller kullanarak bir rol atamanızgerekir.
Önemli
Bazı izinler, tüm bağlamlarda gerekli olmayan hedef hizmet tarafından açığa çıkabilir. Mümkün olduğunda, en az ayrıcalık ilkesine bağlı olarak yalnızca kimlik gerekli ayrıcalıkları veriliyor. Örneğin, uygulamanın yalnızca bir veri kaynağından okuyabilmesi gerekiyorsa, yalnızca okuma iznine sahip olan bir rol kullanın. Bu hizmetin yazılmasına izin veren bir rol atamak uygun değildir, çünkü bu, okuma işlemi için aşırı izindir. Benzer şekilde, rol atamasının yalnızca okunması gereken kaynaklar üzerinde kapsam olmasını sağlamak isteyeceksiniz.
Her bileşenin izinleri hakkında bilgi edinmek için aşağıdaki sekmeyi seçin:
- Azure Bloblar uzantısı
- Azure Kuyrukları uzantısı
- Event Hubs uzantısı
- Service Bus uzantısı
- Azure Cosmos DB uzantısı (önizleme)
- İşlevler konak depolama alanı (önizleme)
Ç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 blob depolama uzantısı normal çalışma sırasında kullanırken önerilen Depolama rolleri gösterir. Uygulamanıza, yazmakta olduğu koda göre ek izinler gerekli olabilir.
| Bağlama türü | Örnek yerleşik roller |
|---|---|
| Tetikleyici | [Depolama Blob Verileri Sahibi ve] Depolama [Kuyruk Verileri Katkıda Bulunanı]1 |
| Giriş bağlaması | Depolama Blob Verileri Okuyucusu |
| Çıkış bağlaması | Depolama Blob Verileri Sahibi |
1 Blob tetikleyicisi varsayılan olarak azure kuyruklarını dahili olarak kullanır. Bu nedenle, iletileri [Depolama almak için Kuyruk Verileri Katkıda Bulunanı] izinlerini de gerektirir.
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 tetikleyici veya bağlama tanımında <CONNECTION_NAME_PREFIX> connection özelliğinizin değeridir:
| Özellik | Ortam değişkeni şablonu | Description |
|---|---|---|
| Belirteç Kimlik Bilgisi | <CONNECTION_NAME_PREFIX>__credential |
Bağlantı için bir belirteci nasıl elde etmek gerektiğini tanımlar. Yalnızca kullanıcı tarafından atanan bir kimlik belirtirken, kimliğin "managedidentity" olarak ayarlanmış olması gerekir. Bu yalnızca hizmette barındırılan Azure İşlevleri geçerlidir. |
| İstemci Kimliği | <CONNECTION_NAME_PREFIX>__clientId |
"Managedidentity" olarak ayarlanırsa, bu özellik belirteç elde edilirken credential kullanılacak kullanıcı tarafından atanan kimliği belirtir. özelliği, uygulamaya atanan kullanıcı tarafından atanan kimliğe karşılık gelen bir istemci kimliğini kabul eder. Belirtilmezse, sistem tarafından atanan kimlik kullanılır. Bu özellik, ayarlanmazken yerel geliştirme senaryolarında credential farklı şekilde kullanılır. |
Verilen bağlantı türü için ek seçenekler destek olabilir. Lütfen bağlantıyı yapan bileşene ilişkin belgelere bakın.
Kimlik tabanlı bağlantılar ile yerel geliştirme
Not
Kimlik tabanlı bağlantılarla yerel geliştirme, uygulamanın güncelleştirilmiş Azure Functions Core Tools. şu anda yüklü olan sürümü çalıştırarak kontrol func -v edin. İşlevler v3 için sürümü veya 3.0.3904 sonraki bir sürümü kullanın. İşlevler v4 için sürümü veya 4.0.3904 sonraki bir sürümü kullanın.
Yukarıdaki yapılandırma, yerel olarak çalıştırarak çalışma zamanının yerel geliştirici kimliğinizi kullanmalarını söyler. Bağlantı, sırasıyla aşağıdaki konumlardan bir belirteç almaya çalışacak:
- Microsoft uygulamaları arasında paylaşılan yerel önbellek
- Visual Studio'de 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ı olursa bir hata oluşur.
Bu, geliştirici kimliğinizi kullanıyor olduğundan, geliştirme kaynaklarına karşı zaten bazı rolleriniz olabilir, ancak bunlar veri erişimi sağlamayabilirsiniz. Sahip gibi yönetim rolleri yeterli değildir. Her bileşen için bağlantılar için hangi izinlerin gerekli olduğunu bir kez daha denetleyin ve bunları kendinize atayın.
Bazı durumlarda, farklı bir kimliğin kullanımını belirtmek istediğiniz durumlar olabilir. Bir hizmet sorumlusu için istemci kimliğine ve gizli anahtarına göre alternatif kimliğe işaret Azure Active Directory yapılandırma özellikleri ebilirsiniz. Bu yapılandırma seçeneği, hizmette barındırılan Azure İşlevleri desteklanmaz. Yerel makineniz üzerinde bir kimlik ve gizli kod kullanmak için bağlantıyı aşağıdaki ek özelliklerle tanımlayın:
| Özellik | Ortam değişkeni şablonu | Description |
|---|---|---|
| Kiracı Kimliği | <CONNECTION_NAME_PREFIX>__tenantId |
Kiracı Azure Active Directory (dizin) kimliği. |
| İstemci Kimliği | <CONNECTION_NAME_PREFIX>__clientId |
Kiracıda uygulama kaydının istemci (uygulama) kimliği. |
| Gizli anahtar | <CONNECTION_NAME_PREFIX>__clientSecret |
Uygulama kaydı için oluşturulan bir istemci gizli kodu. |
Azure Bloblarına kimlik local.settings.json tabanlı bağlantı için gereken özelliklere bir örnek:
{
"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 (Önizleme)
Azure İşlevleri, zamanlayıcı tetikleyicilerinin tekil olarak yürütülmesi ve varsayılan uygulama anahtarı depolaması gibi temel davranışlar için varsayılan olarak "AzureWebJobsStorage" bağlantısını kullanır. Bu, kimliklerden de yararlanan bir şekilde yalıtıldığında.
Dikkat
İşlevler'in diğer bileşenleri varsayılan davranışlar için "AzureWebJobsStorage" kullanır. Azure Blobları ve azure blobları için tetikleyiciler ve bağlamalar da dahil olmak üzere bu tür bağlantıları desteklemeen eski uzantı sürümlerini kullanıyorsanız bu bağlantıyı kimlik tabanlı bir Event Hubs. Benzer şekilde, Linux Tüketimi'de sunucu tarafı derlemesi kullanılırken dağıtım yapıtları için kullanılır ve bunu etkinleştirirsanız, bir dış dağıtım paketi AzureWebJobsStorage aracılığıyla dağıtmanız gerekir.
Ayrıca, bazı uygulamalar tetikleyicileri, bağlamaları ve/veya işlev kodundaki diğer depolama bağlantıları için "AzureWebJobsStorage" işlevini yeniden kullanır. "AzureWebJobsStorage" ifadesinin tüm kullanımlarının bu bağlantıyı bir bağlantı dizesinden değiştirmeden önce kimlik tabanlı bağlantı biçimini kullana olduğundan emin olun.
"AzureWebJobsStorage" için kimlik tabanlı bir bağlantı kullanmak üzere aşağıdaki uygulama ayarlarını yapılandırabilirsiniz:
| 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 |
Kimlik tabanlı bağlantıların ortak özellikleri de ayarlanmış olabilir.
Genel Azure için varsayılan DNS soneki ve hizmet adını kullanan bir depolama hesabı kullanıyorsanız, biçimi takip ediyorsanız, bunun yerine depolama hesabınıza https://<accountName>.blob/queue/file/table.core.windows.net AzureWebJobsStorage__accountName göre ayarlayın. Bu hesap için blob ve kuyruk uç noktaları gönderilir. Depolama hesabı bağımsız bir bulutta veya özel bir DNS'ye sahipse bu işlem çalışmaz.
| Ayar | Açıklama | Örnek değer |
|---|---|---|
AzureWebJobsStorage__accountName |
Bir depolama hesabının hesap adı, yalnızca hesap bir sogeign bulutu içinde değilse ve özel bir DNS 'e sahip değilse geçerlidir. | <storage_account_name> |
Çalışma zamanında "AzureWebJobsStorage" için depolama hesabına erişim sağlayan bir rol ataması oluşturmanız gerekecektir. Sahip gibi yönetim rolleri yeterli değildir. [Depolama Blob veri sahibi] rolü, işlevlerin temel gereksinimlerini içerir konak depolama-çalışma zamanı, bloblara hem okuma hem de yazma erişimi ve kapsayıcı oluşturma yeteneği gerektirir. blob tetikleyicisi 'nin kullanımıyla ilgili olarak bazı durumlar vardır; burada [Depolama kuyruğu verilerinin katkıda] bulunanı de gereklidir. Başka amaçlar için "AzureWebJobsStorage" kullanırsanız ek izinlere ihtiyacınız olabilir.
Raporlama sorunları
| Öğe | Açıklama | Bağlantı |
|---|---|---|
| Çalışma Zamanı | Betik Konağı, Tetikleyiciler & bağlamaları, dil desteği | Sorun dosya |
| Şablonlar | Oluşturma şablonuyla Ilgili kod sorunları | Sorun dosya |
| Portal | Kullanıcı arabirimi veya deneyim sorunu | Sorun dosya |
Sonraki adımlar
Daha fazla bilgi için aşağıdaki kaynaklara bakın: