Azure İşlevleri geliştirici kılavuzu

Azure İşlevleri'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 makale, Azure İşlevleri genel bakışını zaten okuduğunuz varsayar.

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 İşlevleri 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 İşlevleri 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.

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. Dil özel rehberlik için Go geliştiriciler rehberine bakınız.

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ğlamaları 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 yerel ve entegre geliştirme ve yayınlama deneyimi sağlar:

Bu araçlar Azure İşlevleri 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 İşlevleri yerel olarak.

Azure portalında kodunuzu ve function.json tanım dosyanızı doğrudan portalda güncellemek için kullanabileceğiniz bir editör de var. Bu düzenleyiciyi sadece küçük değişiklikler veya kavram kanıtı fonksiyonları oluşturmak için kullanın. Mümkün olduğunda her zaman fonksiyonlarınızı yerel olarak geliştirin. 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.

Bir fonksiyon uygulaması, yöneten, dağıttığı ve ölçeklendirdiğiniz bir veya daha fazla bireysel fonksiyondan 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.

Fonksiyon uygulaması ve diğer gerekli kaynaklar Azure'da zaten mevcut değilse, proje dosyalarınızı dağıtmadan ö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. deployment technologies in Azure İşlevleri.

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.

İster Functions tarafından sağlanan bağlama uzantılarını kullanın, ister doğrudan istemci SDK'larıyla çalışın, bağlantı verisini güvenli bir şekilde saklarsınız ve kodunuza dahil etmiyorsunuz.

Varsayılan ana depolama

İşlev uygulaması örneği oluştururken, Azure İşlevleri bir Azure Depolama hesabı gerektirir. Bu varsayılan depolama hesabı , Fonksiyonlar ana bilgisayarı ve bazı bağlama uzantıları tarafından dahili olarak kullanılır.

Varsayılan depolama hesabına bağlantıların güvenli şekilde tanımlanması hakkında bilgi edinmek için Bağlantıları tanımlamanız bölümünü inceleyebilirsiniz.

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 İşlevleri tetikleyicileri ve bağlamaları kavramları.

Bağlamalardan gelen hatalarla ilgili sorun yaşıyorsanız Azure İşlevleri Bağlama Hata Kodları belgelerine bakın. Bağlantıların uzaktan hizmetlere bağlanmalarda güvenli şekilde tanımlanması hakkında bilgi edinmek için Bağlantıları tanımla.

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

Azure İşlevleri için kimlik tabanlı bağlantılar kimlik doğrulama için yönetilen kimlikleri kullanır. Sistem tarafından atanan kimlik varsayılan olarak kullanılır, ancak ve clientId özellikleriyle kullanıcı tarafından atanan bir kimlik credential belirtebilirsiniz. Kimlik tabanlı bağlantıların yapılandırılmasıyla ilgili tam detaylar, gerekli uygulama ayarları ve RBAC izinleri için, Yönetilen kimlik bağlantılarını tanımla.

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

Yerel olarak çalışırken, kimlik tabanlı bağlantılar yönetilen kimlik yerine geliştirici kimliğinizi (örneğin Azure CLI girişiniz) kullanır. Yerel gelişim sırasında or clientId özelliklerini belirlemenize credential gerek yok. Daha fazla bilgi için bkz. Kimlik tabanlı bağlantılarla yerel geliştirme.

İstemci SDK'ları

Functions, fonksiyon kodunuzda veri erişimini kolaylaştırmak için bağlar sağlarken, projenizde bir istemci SDK'sını kullanarak belirli bir servise doğrudan erişebilirsiniz. Eğer fonksiyonlarınız bağlama uzantısı tarafından desteklenmeyen temel SDK'nın bir işlevselliğini gerektiriyorsa, doğrudan istemci SDK'ları kullanmanız gerekebilir. Fonksiyon kodunuz, bağlama uzantılarınızın kullandığı temel istemcilere erişemez. Fonksiyonlarınızda kullanmanız gereken istemci örneklerini bağımsız olarak oluşturup yönetmelisiniz.

Fonksiyon kodunuzda istemci SDK'ları oluştururken ve kullanırken şu sorunları göz önünde bulundurun:

  • Bağlantı dizileri depolama ve erişim için de aynı işlemi kullanın, bağlanma uzantılarının kullandığı yöntem. Daha fazla bilgi için bkz. Bağlantıları tanımla.

  • Uygulamanızı bir Tüketim planında barındırdığınızda, tüm örneklerde toplam giden bağlantı sayısında bir sınır vardır. Bu sınır, port tükenmesinden kaçınmak için dikkatli olmanız gerektiği anlamına gelir. Daha fazla bilgi için SDK istemci bağlantılarını yönet bölümüne bakınız.

  • Fonksiyonlarınızda bir istemci SDK örneği oluşturduğunuzda, istemcinin ihtiyaç duyduğu bağlantı bilgilerini Environment değişkenlerinden alın.
  • Fonksiyonlarınızda bir istemci SDK örneği oluşturduğunuzda, istemcinin ihtiyaç duyduğu bağlantı bilgilerini Environment değişkenlerinden alın.
  • Fonksiyonlarınızda bir istemci SDK örneği oluşturduğunuzda, istemcinin ihtiyaç duyduğu bağlantı bilgilerini Environment değişkenlerinden alın.
  • Fonksiyonlarınızda bir istemci SDK örneği oluşturduğunuzda, istemcinin ihtiyaç duyduğu bağlantı bilgilerini Environment değişkenlerinden alın.
  • Fonksiyonlarınızda bir istemci SDK örneği oluşturduğunuzda, istemcinin ihtiyaç duyduğu bağlantı bilgilerini Environment değişkenlerinden alın.

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 İşlevleri kodu açık kaynak'dır. Ana bileşenleri bu GitHub depolarında bulabilirsiniz:

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