JavaScript'te ilk dayanıklı işlevinizi oluşturma
Dayanıklı İşlevler, sunucusuz bir ortamda durum bilgisi olan işlevler yazmanızı sağlayan bir Azure İşlevleri uzantısıdır. Uzantı sizin için durumu, denetim noktalarını ve yeniden başlatmaları yönetir.
Bu makalede, "hello world" dayanıklı işlevini yerel olarak oluşturmak ve test etmek için Visual Studio Code Azure İşlevleri uzantısını kullanmayı öğreneceksiniz. Bu işlev, diğer işlevlere çağrıları düzenler ve zincirler. Ardından işlev kodunu Azure’da yayımlayacaksınız.
Önemli
Bu makalenin içeriği, sayfanın üst kısmındaki seçicideki Node.js programlama modeli seçiminize göre değişir. Genel kullanıma sunulan v4 modeli, JavaScript ve TypeScript geliştiricileri için daha esnek ve sezgisel bir deneyime sahip olacak şekilde tasarlanmıştır. Geçiş kılavuzunda v3 ve v4 arasındaki farklar hakkında daha fazla bilgi edinin.
Önkoşullar
Bu öğreticiyi tamamlamak için:
- Visual Studio Code’u yükleyin.
- Azure İşlevleri VS Code uzantısını yükleme
- Azure İşlevleri VS Code uzantısı sürümünü
1.10.4
veya üzerini yükleyin.
- Azure İşlevleri Core Tools'un en son sürümüne sahip olduğunuzdan emin olun.
- Azure İşlevleri Core Tools sürümüne
v4.0.5382
veya üstüne sahip olduğunuzdan emin olun.
- Dayanıklı İşlevler bir Azure depolama hesabı gerektirir. Azure aboneliğine ihtiyacınız var.
- Node.js 16.x+ sürümünün yüklü olduğundan emin olun.
- Node.js 18.x+ sürümünün yüklü olduğundan emin olun.
Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.
Yerel projenizi oluşturma
Bu bölümde, yerel bir Azure İşlevleri projesi oluşturmak için Visual Studio Code'u kullanacaksınız.
Visual Studio Code'da komut paletini açmak için F1 (veya Ctrl/Cmd+Shift+P) tuşlarına basın. Komut paletinde araması yapın ve öğesini seçin
Azure Functions: Create New Project...
.Projeniz için boş bir klasör konumu seçin ve Seç'i seçin.
İstemleri izleyerek aşağıdaki bilgileri sağlayın:
İstem Value Açıklama İşlev uygulaması projeniz için bir dil seçin JavaScript Yerel Node.js İşlevleri projesi oluşturun. JavaScript programlama modeli seçme Model V3 V3 programlama modelini seçin. Bir sürüm seçin Azure İşlevleri v4 Bu seçeneği yalnızca Çekirdek Araçlar henüz yüklü olmadığında görürsünüz. Bu durumda, uygulamayı ilk kez çalıştırdığınızda Core Tools yüklenir. Projenizin ilk işlevi için bir şablon seçin Şimdilik atla Projenizi nasıl açmak istediğinizi seçin Geçerli pencerede aç Seçtiğiniz klasörde VS Code'un yeniden açılmasını sağlar.
İstemleri izleyerek aşağıdaki bilgileri sağlayın:
İstem Value Açıklama İşlev uygulaması projeniz için bir dil seçin JavaScript Yerel Node.js İşlevleri projesi oluşturun. JavaScript programlama modeli seçme Model V4 V4 programlama modelini seçin. Bir sürüm seçin Azure İşlevleri v4 Bu seçeneği yalnızca Çekirdek Araçlar henüz yüklü olmadığında görürsünüz. Bu durumda, uygulamayı ilk kez çalıştırdığınızda Core Tools yüklenir. Projenizin ilk işlevi için bir şablon seçin Şimdilik atla Projenizi nasıl açmak istediğinizi seçin Geçerli pencerede aç Seçtiğiniz klasörde VS Code'un yeniden açılmasını sağlar.
Visual Studio Code gerekirse Azure İşlevleri Temel Araçları'nı yükler. Ayrıca bir klasörde bir işlev uygulaması projesi oluşturur. Bu proje host.json ve local.settings.json yapılandırma dosyalarını içerir.
package.json
Kök klasörde bir dosya da oluşturulur.
Dayanıklı İşlevler npm paketini yükleme
Node.js işlev uygulamasında Dayanıklı İşlevler ile çalışmak için adlı durable-functions
bir kitaplık kullanırsınız.
V4 programlama modelini kullanmak için önizleme v3.x
sürümünü durable-functions
yüklemeniz gerekir.
- VS Code'da yeni bir terminal açmak için Görünüm menüsünü veya Ctrl + Shift + ' tuşlarını kullanın.
- İşlev uygulamasının
durable-functions
kök dizininde komutunu çalıştıraraknpm install durable-functions
npm paketini yükleyin.
- İşlev uygulamasının
durable-functions
kök dizininde çalıştıraraknpm install durable-functions@preview
npm paketi önizleme sürümünü yükleyin.
İşlevlerinizi oluşturma
En temel Dayanıklı İşlevler uygulaması üç işlev içerir:
- Orchestrator işlevi - diğer işlevleri düzenleyen bir iş akışını açıklar.
- Etkinlik işlevi - orchestrator işlevi tarafından çağrılır, iş gerçekleştirir ve isteğe bağlı olarak bir değer döndürür.
- İstemci işlevi - düzenleyici işlevi başlatan normal bir Azure İşlevi. Bu örnekte HTTP ile tetiklenen bir işlev kullanılır.
Orchestrator işlevi
Projenizde dayanıklı işlev kodunu oluşturmak için bir şablon kullanırsınız.
Komut paletinde araması yapın ve öğesini seçin
Azure Functions: Create Function...
.İstemleri izleyerek aşağıdaki bilgileri sağlayın:
İstem Value Açıklama İşleviniz için şablon seçme Dayanıklı İşlevler düzenleyici Dayanıklı İşlevler düzenlemesi oluşturma Dayanıklı bir depolama türü seçin. Azure Depolama (Varsayılan) Dayanıklı İşlevler için kullanılan depolama arka ucu seçin. İşlev adı belirtin HelloOrchestrator Dayanıklı işlevinizin adı
Etkinlik işlevlerini koordine etmek için bir düzenleyici eklediniz. Orchestrator işlevini görmek için HelloOrchestrator/index.js açın. Çağrısının context.df.callActivity
her birinde adlı Hello
bir etkinlik işlevi çağrılır.
Ardından başvuruda Hello
bulunan etkinlik işlevini ekleyeceksiniz.
Activity işlevi
Komut paletinde araması yapın ve öğesini seçin
Azure Functions: Create Function...
.İstemleri izleyerek aşağıdaki bilgileri sağlayın:
İstem Value Açıklama İşleviniz için şablon seçme Dayanıklı İşlevler etkinliği Etkinlik işlevi oluşturma İşlev adı belirtin Merhaba Etkinlik işlevinizin adı
Düzenleyici tarafından çağrılan etkinlik işlevini eklediniz Hello
. Giriş olarak bir ad alıp selamlama döndürdüğünü görmek için Hello/index.js açın. Etkinlik işlevi, iş akışınızda "gerçek işi" gerçekleştirdiğiniz yerdir: veritabanı çağrısı yapma veya belirleyici olmayan hesaplamalar gerçekleştirme gibi işlemler.
Son olarak, düzenlemeyi başlatan HTTP ile tetiklenen bir işlev ekleyeceksiniz.
İstemci işlevi (HTTP starter)
Komut paletinde araması yapın ve öğesini seçin
Azure Functions: Create Function...
.İstemleri izleyerek aşağıdaki bilgileri sağlayın:
İstem Value Açıklama İşleviniz için şablon seçme HTTP başlatıcıyı Dayanıklı İşlevler HTTP starter işlevi oluşturma İşlev adı belirtin DurableFunctionsHttpStart Etkinlik işlevinizin adı Yetkilendirme düzeyi Anonim Tanıtım amacıyla, işlevin kimlik doğrulaması olmadan çağrılmasına izin verin
Düzenlemeyi başlatan HTTP ile tetiklenen bir işlev eklediniz. Yeni bir düzenleme başlatmak için kullandığını client.startNew
görmek için DurableFunctionsHttpStart/index.js açın. Ardından, yeni düzenlemeyi izlemek ve yönetmek için kullanılabilecek URL'leri içeren bir HTTP yanıtı döndürmek için kullanır client.createCheckStatusResponse
.
Artık yerel olarak çalıştırılıp Azure'a dağıtılabilir bir Dayanıklı İşlevler uygulamanız var.
V4 Programlama Modeli'nin avantajlarından biri, işlevlerinizi nereye yazdığınızın esnekliğidir. V4 Modelinde, projenizdeki tek bir dosyada üç işlevi de oluşturmak için tek bir şablon kullanabilirsiniz.
Komut paletinde araması yapın ve öğesini seçin
Azure Functions: Create Function...
.İstemleri izleyerek aşağıdaki bilgileri sağlayın:
İstem Value Açıklama İşleviniz için şablon seçme Dayanıklı İşlevler düzenleyici Dayanıklı İşlevler düzenleme, Etkinlik işlevi ve Dayanıklı İstemci başlangıç işlevi içeren bir dosya oluşturun. Dayanıklı bir depolama türü seçin Azure Depolama (Varsayılan) Dayanıklı İşlevler için kullanılan depolama arka ucu seçin. İşlev adı belirtin merhaba Dayanıklı işlevleriniz için kullanılan ad
Oluşturduğunuz işlevleri görüntülemek için src/functions/hello.js açın.
Etkinlik işlevlerini koordine etmek için adlı helloOrchestrator
bir düzenleyici oluşturdunuz. Çağrısının context.df.callActivity
her birinde adlı hello
bir etkinlik işlevi çağrılır.
Düzenleyici tarafından çağrılan etkinlik işlevini de eklediniz hello
. Aynı dosyada, girdi olarak bir ad aldığını ve selamlama döndürdüğünü görebilirsiniz. Etkinlik işlevi, iş akışınızda "gerçek işi" gerçekleştirdiğiniz yerdir: veritabanı çağrısı yapma veya belirleyici olmayan hesaplamalar gerçekleştirme gibi işlemler.
Son olarak, düzenlemeyi başlatan HTTP ile tetiklenen bir işlev de eklediniz. Aynı dosyada, yeni bir düzenleme başlatmak için kullandığını client.startNew
görebilirsiniz. Ardından, yeni düzenlemeyi izlemek ve yönetmek için kullanılabilecek URL'leri içeren bir HTTP yanıtı döndürmek için kullanır client.createCheckStatusResponse
.
Artık yerel olarak çalıştırılıp Azure'a dağıtılabilir bir Dayanıklı İşlevler uygulamanız var.
İşlevi yerel olarak test etme
Azure İşlevleri Temel Araçları, Azure İşlevleri projenizi yerel geliştirme bilgisayarınızda çalıştırmanıza olanak sağlar. Visual Studio Code'da ilk kez bir işlev başlattığınızda bu araçları yüklemeniz istenir.
- İşlevinizi test etmek için etkinlik işlev kodunda
Hello
(Hello/index.js) bir kesme noktası ayarlayın. F5 tuşuna basın veya işlev uygulaması projesini başlatmak için komut paletinden öğesini seçinDebug: Start Debugging
. Temel Araçlar’daki çıktı, Terminal panelinde görüntülenir.
- İşlevinizi test etmek için etkinlik işlev kodunda
hello
(src/functions/hello.js) bir kesme noktası ayarlayın. F5 tuşuna basın veya işlev uygulaması projesini başlatmak için komut paletinden öğesini seçinDebug: Start Debugging
. Temel Araçlar’daki çıktı, Terminal panelinde görüntülenir.
Not
Hata ayıklama hakkında daha fazla bilgi için Dayanıklı İşlevler Tanılama bölümüne bakın.
Dayanıklı İşlevler çalıştırmak için bir Azure Depolama hesabı gerekir. VS Code bir depolama hesabı seçmenizi isterken Depolama hesabı seç'i seçin.
İstemlerin ardından, Azure'da yeni bir depolama hesabı oluşturmak için aşağıdaki bilgileri sağlayın.
İstem Value Açıklama Abonelik seçme aboneliğinizin adı Azure aboneliğinizi seçin Depolama hesabı seçin Yeni depolama hesabı oluşturma Yeni depolama hesabının adını girin benzersiz ad Oluşturulacak depolama hesabının adı Kaynak grubu seçme benzersiz ad Oluşturulacak kaynak grubunun adı Bir konum seçin Bölge Size yakın bir bölge seçin Terminal panelinde, HTTP ile tetiklenen işlevinizin URL uç noktasını kopyalayın.
Yanıt, HTTP işlevinin dayanıklı düzenlemenin başarıyla başladığını bildiren ilk sonucudur. Henüz düzenlemenin sonucu değildir. Yanıt birkaç yararlı URL içerir. Şimdilik düzenlemenin durumunu sorgulayalım.
url
statusQueryGetUri
değerini kopyalayıp tarayıcının adres çubuğuna yapıştırın ve isteği yürütür. Alternatif olarak, GET isteğini vermek için Postman'i kullanmaya devam edebilirsiniz.İstek, durum için düzenleme örneğini sorgular. Örneğin tamamlandığını gösteren ve dayanıklı işlevin çıkışlarını veya sonuçlarını içeren nihai bir yanıt almanız gerekir. Şuna benzer:
{ "name": "HelloOrchestrator", "instanceId": "9a528a9e926f4b46b7d3deaa134b7e8a", "runtimeStatus": "Completed", "input": null, "customStatus": null, "output": [ "Hello Tokyo!", "Hello Seattle!", "Hello London!" ], "createdTime": "2020-03-18T21:54:49Z", "lastUpdatedTime": "2020-03-18T21:54:54Z" }
{ "name": "helloOrchestrator", "instanceId": "6ba3f77933b1461ea1a3828c013c9d56", "runtimeStatus": "Completed", "input": "", "customStatus": null, "output": [ "Hello, Tokyo", "Hello, Seattle", "Hello, Cairo" ], "createdTime": "2023-02-13T23:02:21Z", "lastUpdatedTime": "2023-02-13T23:02:25Z" }
Hata ayıklamayı durdurmak için VS Code'da Shift + F5 tuşlarına basın.
İşlevin yerel bilgisayarınızda düzgün çalıştığını doğruladıktan sonra, projeyi Azure'da yayımlamanın zamanı gelmiştir.
Azure'da oturum açma
Azure kaynakları oluşturabilmeniz veya uygulamanızı yayımlayabilmeniz için önce Azure'da oturum açmanız gerekir.
Henüz oturum açmadıysanız Etkinlik çubuğunda Azure simgesini seçin. Ardından Kaynaklar alanında Azure'da oturum aç... seçeneğini belirleyin.
Zaten oturum açtıysanız ve mevcut aboneliklerinizi görebiliyorsanız sonraki bölüme gidin. Henüz bir Azure hesabınız yoksa Azure Hesabı Oluştur... seçeneğini belirleyin. Öğrenciler Öğrenciler için Azure Hesabı Oluştur'u seçebilir....
Tarayıcıda sorulduğunda Azure hesabınızı seçin ve Azure hesabı kimlik bilgilerinizi kullanarak oturum açın. Yeni bir hesap oluşturursanız, hesabınız oluşturulduktan sonra oturum açabilirsiniz.
Başarıyla oturum açtıktan sonra yeni tarayıcı penceresini kapatabilirsiniz. Azure hesabınıza ait abonelikler kenar çubuğunda görüntülenir.
Azure'da işlev uygulamasını oluşturma
Bu bölümde, Azure aboneliğinizde bir işlev uygulaması ve ilgili kaynaklar oluşturacaksınız.
Etkinlik çubuğunda Azure simgesini seçin. Ardından Kaynaklar alanında simgeyi + seçin ve Azure'da İşlev Uygulaması Oluştur seçeneğini belirleyin.
İstemlerde aşağıdaki bilgileri sağlayın:
İstem Seçim Aboneliği seçin Kullanılacak aboneliği seçin. Kaynaklar altında yalnızca bir aboneliğiniz olduğunda bu istemi görmezsiniz. İşlev uygulaması için genel olarak benzersiz bir ad girin URL yolunda geçerli bir ad yazın. Yazdığınız ad, Azure İşlevleri benzersiz olduğundan emin olmak için doğrulanır. Çalışma zamanı yığını seçme Yerel olarak çalıştırdığınız dil sürümünü seçin. Yeni kaynaklar için bir konum seçin Daha iyi performans için size yakın bir bölge seçin. Uzantı, Azure'da oluşturulan tek tek kaynakların durumunu Azure : Etkinlik Günlüğü panelinde gösterir.
Oluşturma işlemi tamamlandığında aboneliğinizde aşağıdaki Azure kaynakları oluşturulur. Kaynaklar, işlev uygulamanızın adına göre adlandırılır:
- İlgili kaynaklar için mantıksal bir kapsayıcı olan kaynak grubu.
- Projeleriniz hakkındaki durumu ve diğer bilgileri koruyan standart bir Azure Depolama hesabı.
- İşlev kodunuzu yürütmek için ortam sağlayan bir işlev uygulaması. İşlev uygulaması, aynı barındırma planı içindeki kaynakların daha kolay yönetilmesi, dağıtılması ve paylaşılması için işlevleri mantıksal birim olarak gruplandırmanıza olanak tanır.
- İşlev uygulamanız için temel konağı tanımlayan bir App Service planı.
- uygulamadaki işlevlerinizin kullanımını izleyen işlev uygulamasına bağlı bir Uygulama Analizler örneği.
İşlev uygulamanız oluşturulduktan sonra bir bildirim görüntülenir ve dağıtım paketi uygulanır.
İpucu
Varsayılan olarak, işlev uygulamanızın gerektirdiği Azure kaynakları, sağladığınız işlev uygulaması adına göre oluşturulur. Varsayılan olarak, bunlar işlev uygulamasıyla aynı yeni kaynak grubunda da oluşturulur. Bu kaynakların adlarını özelleştirmek veya mevcut kaynakları yeniden kullanmak istiyorsanız, bunun yerine projeyi gelişmiş oluşturma seçenekleriyle yayımlamanız gerekir.
Projeyi Azure’a dağıtma
Önemli
Mevcut bir işlev uygulamasına dağıtılması her zaman Azure'da bu uygulamanın içeriğinin üzerine yazılır.
Azure etkinliğinin Kaynaklar alanında, yeni oluşturduğunuz işlev uygulaması kaynağını bulun, kaynağa sağ tıklayın ve İşlev uygulamasına dağıt... öğesini seçin.
Önceki dağıtımların üzerine yazmanız istendiğinde, işlev kodunuzu yeni işlev uygulaması kaynağına dağıtmak için Dağıt'ı seçin.
Dağıtım tamamlandıktan sonra, oluşturduğunuz Azure kaynakları da dahil olmak üzere oluşturma ve dağıtım sonuçlarını görüntülemek için Çıkışı Görüntüle'yi seçin. Bildirimi kaçırırsanız, yeniden görmek için sağ alt köşedeki zil simgesini seçin.
Azure'da işlevinizi test etme
Not
V4 düğümü programlama modelini kullanmak için uygulamanızın Azure İşlevleri çalışma zamanının en az 4.25 sürümünde çalıştığından emin olun.
- Çıktı panelinden HTTP tetikleyicisinin URL’sini kopyalayın. HTTP ile tetiklenen işlevinizi çağıran URL şu biçimde olmalıdır:
https://<functionappname>.azurewebsites.net/api/orchestrators/HelloOrchestrator
- Çıktı panelinden HTTP tetikleyicisinin URL’sini kopyalayın. HTTP ile tetiklenen işlevinizi çağıran URL şu biçimde olmalıdır:
https://<functionappname>.azurewebsites.net/api/orchestrators/helloOrchestrator
- HTTP isteğinin yeni URL’sini tarayıcınızın adres çubuğuna yapıştırın. Yayımlanan uygulamayı kullanırken önceki durum yanıtıyla aynı durum yanıtını almanız gerekir.
Sonraki adımlar
Visual Studio Code kullanarak bir JavaScript dayanıklı işlev uygulaması oluşturup yayımladınız.