Alıştırma - Yoklama tabanlı bir web uygulamasının sınırlamalarını analiz etme
Prototipi değiştirmeden önce varsayımları doğrulamak için bunu çalıştırmanız gerekir. Prototip, GitHub'daki bir kaynak kodu deposunda yer alır.
Azure kaynakları oluşturma
Ayrı bir tarayıcı sekmesinde veya penceresinde aşağıdaki bağlantıyla GitHub'daki örnek deponun çatalını oluşturun: mslearn-advocates.azure-functions-and-signalr. Bu, değişikliklerinizi kaynak kodun kendi sürümüne göndermenizi sağlar. Bu, modülün ilerleyen bölümlerinde kaynak kodu Azure'a dağıtmak için gerekli bir adımdır.
Terminalde depoyu kopyalayın. Aşağıdaki komutta değerini hesabınızla değiştirin
MicrosoftDocs
:git clone https://github.com/MicrosoftDocs/mslearn-advocates.azure-functions-and-signalr stock-prototype
Bağımlılıkları setup-resources klasörüne yükleyin.
cd stock-prototype/setup-resources && npm install
hakkında
EBADENGINE
uyarı alırsanız bunları yoksayabilirsiniz.Azure CLI ile Azure'da oturum açın.
az login
Aboneliklerinizi görüntüleyin ve varsayılan Azure aboneliğinizi ayarlayın.
Abonelikleri görüntüleyin.
az account list --output json | jq -r '.[] | .name' | sort
Varsayılan aboneliği ayarlamak için değerini önceki Azure CLI çıkışından bir abonelik kimliğiyle değiştirin
YOUR-SUBSCRIPTION-ID
.az account set --subscription <YOUR-SUBSCRIPTION-ID>
Bu varsayılan abonelik, Azure kaynaklarını oluşturmak için kullanılır.
Azure kaynaklarını oluşturun ve örnek verileri veritabanına yükleyin. İşlemin tamamlanması birkaç dakika sürebilir.
bash create-start-resources.sh "<YOUR-SUBSCRIPTION-NAME>"
Adı çift tırnak içinde kaydırdığınızdan emin olun. Kullanılabilir kaynak bulunmayan konumla ilgili bir hatayla betik hataları olursa, konumu değiştirmek için betiği düzenleyin:
LOCATION=<NEW LOCATION>
.Gerekli bilgileri kopyalayın, prototipi çalıştırmak için bunlara ihtiyacınız olacak.
Kaynak Türü Ortam değişkeni Azure Cosmos DB COSMOSDB_CONNECTION_STRING olarak adlandırılır Azure Depolama STORAGE_CONNECTION_STRING olarak adlandırılır Kaynak Grubu RESOURCE_GROUP_NAME olarak adlandırılır. Aşağıdaki komutla veritabanına örnek verileri yüklemek için bir Node.js betiği kullanın.
npm start
Terminalde kök klasöre gidin.
cd ..
Bağımlılıkları yükleme ve prototipi çalıştırma
Bağımlılıkları yükleyin.
cd start/client && npm install && cd ../.. cd start/server && npm install && cd ../..
Bildirimde çalışma alanı için bir Azure işlevleri uygulaması seçmeniz istenirse öğesini seçin
start/server
. Bu, sunucu tarafı kodunu çalıştırmak için kullanacağınız işlev uygulamasıdır.En son Azure İşlevleri Core Araçları'nı yükleme hakkında bir bildirim alırsanız Yükle'yi seçin.
İstemci ve sunucu URL'lerini alma
Yerel olarak çalıştırılırken istemci ve sunucu uygulamalarının birbirlerini nerede bulacaklarını bilmesi gerekir. URL'ler şunlardır:
- İstemci: http://localhost:3000
- Sunucu: http://localhost:7071
Azure İşlevleri uygulaması için yerel ayarları güncelleştirme
prototipin Azure İşlevleri uygulamasına bağlantı dizesi ekleyin.
./start/server/local.settings.json dosyasını oluşturun ve aşağıdakileri yapıştırın. Bu dosya, yerel işlevler projesi için yapılandırma ayarlarına sahiptir.
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "<STORAGE_CONNECTION_STRING>", "FUNCTIONS_WORKER_RUNTIME": "node", "AzureWebJobsFeatureFlags": "EnableWorkerIndexing", "COSMOSDB_CONNECTION_STRING": "<COSMOSDB_CONNECTION_STRING>" }, "Host" : { "LocalHttpPort": 7071, "CORS": "http://localhost:3000", "CORSCredentials": true } }
Aşağıdaki değişkenleri yukarıdan kopyaladığınız değerlerle güncelleştirin.
Özellik Değer AzureWebJobsStorage değerini Depolama bağlantı dizesi ile değiştirin. COSMOSDB_CONNECTION_STRING değerini Cosmos DB bağlantı dizesi ile değiştirin. artık İşlevler uygulaması istemciden istek alabilir, ardından veritabanına bağlanabilir ve zamanlayıcı tetikleyicisini doğru şekilde yönetebilir.
İstemci uygulaması için yerel ayarlar ekleme
Sunucu URL'sini prototipin istemci uygulamasına ekleyin.
./start/client dosyasını açın ve aşağıdaki içeriklere sahip bir .env
dosya oluşturun.
BACKEND_URL=http://localhost:7071
Sunucu uygulamasını çalıştırma
Terminalde Azure İşlevleri uygulamasını başlatın.
cd start/server && npm start
Terminal API uç noktalarını görüntüleyene kadar bekleyin.
Functions: getStocks: [GET] http://localhost:7071/api/getStocks setPrice: timerTrigger
İstemci uygulamasını çalıştırma
Yeni bir terminalde istemci uygulamasını başlatın.
cd start/client && npm start
Bildirimde uygulamanın çalıştığı görüntülendiğinde prototipi kullanmak için Tarayıcıda Aç'ı seçin.
Terminali ve hisse senedi fiyatlarının prototipini aynı anda görebilmeniz için tarayıcı pencerelerinizi düzenleyin.
Prototip tarayıcı penceresinde tarayıcının geliştirici araçlarını açın. Veriler değişmemiş olsa bile tarayıcının tüm veriler için 5 saniyede bir API'ye istekte bulunu olduğuna dikkat edin.
Tarayıcı penceresinde Azure İşlevleri uygulamasının çıkışını izleyin. Dakikada bir hisse senedi fiyatı değişir. API'deki fiyat değiştiğinde, tüm verilerin bir sonraki istemci getirmesi bu değişikliği içerir.
Hem başlangıç istemcisi hem de başlangıç sunucusu terminallerinde uygulamaları Ctrl + C ile durdurun veya çöp kutusu simgesini seçerek terminali sonlandırın.
Bu ünitede prototipi çalıştırmıştınız. İstemci başarıyla çalışsa da verimli değildir. Her bir istemci, bu kadar az sayıda hisse senediyle bunu fark etmese de, hisse senedi sayısı arttıkça ve istemci sayısı sunucudan çektiğinde değişecektir. Prototip geliştirilebilir. Şimdi bir sonraki ünitede nasıl yapılacağını öğrenelim.