Alıştırma - Çekirdek Araçları kullanarak Azure'da işlev yayımlama

Tamamlandı

Bu alıştırmada Azure'da bir işlev uygulaması oluşturacak ve projemizi yayımlayacaksınız.

İşlev uygulaması oluşturma

Önemli

Bu ünitedeki yordamlar, Ünite 3'te tamamlanan çalışmaya bağlıdır. Bu modülün korumalı alanı etkin olmalıdır. Korumalı alan, Azure'a ve Azure CLI'ya ücretsiz ve geçici erişim sağlar.

Azure Cloud Shell hesabınızda zaten oturum açmış ve yapılandırılmış olmalıdır. Korumalı alan etkin değilse, ihtiyacınız olan erişimi, kaynakları ve çıkışı kaybettiniz. Geri dönün ve 3. Üniteyi tamamlayın.

Kodunuzu Core Tools kullanarak bir işlev uygulamasına yayımlamadan önce Cloud Shell'den Azure CLI kullanarak uygulamayı Azure'da oluşturmanız gerekir.

Azure'da işlev uygulaması oluşturmak için Azure Cloud Shell'de aşağıdaki komutları çalıştırın.

RESOURCEGROUP="<rgn>[sandbox resource group]</rgn>"
STORAGEACCT=learnstorage$(openssl rand -hex 5)
FUNCTIONAPP=learnfunctions$(openssl rand -hex 5)

az storage account create \
  --resource-group "$RESOURCEGROUP" \
  --name "$STORAGEACCT" \
  --kind StorageV2 \
  --location centralus

az functionapp create \
  --resource-group "$RESOURCEGROUP" \
  --name "$FUNCTIONAPP" \
  --storage-account "$STORAGEACCT" \
  --runtime node \
  --consumption-plan-location centralus \
  --functions-version 4

Bu komutlar şunları yapmanıza olanak tanır:

  • Üstteki ilk üç satır, aşağıdaki komutlarda tekrar tekrar kullandığımız değerlerle kabuk değişkenleri oluşturur.

    • Kaynak grubu için korumalı alan tarafından sizin için oluşturulan grubu belirtin. Bu, geçerli korumalı alanınıza göre doğru değer olmalıdır.
    • Depolama hesabı ve işlev uygulaması adları, adların genel olarak benzersiz olma gereksinimini ve diğer hizmet adlandırma gereksinimlerini karşıladığından emin olmak için rastgele beş karakterlik bir dize oluşturan öğesini içerir $(openssl rand -hex 5).
  • az storage account create işlev uygulamasının kullandığı bir Azure depolama hesabı oluşturur. Depolama hesabı, işlev uygulamasının oluşturulabilmesi için önce oluşturulması gereken ayrı bir Azure kaynağıdır.

  • az functionapp create işlev uygulamasını oluşturur. Yeni uygulamanız, Tüketim barındırma planında node sunucusuz çalışan (JavaScript) çalışma zamanını kullanır.

Not

Komut ayrıca az functionapp create işlev uygulamanızda yürütmeleri izlemek için otomatik olarak bir Uygulama Analizler örneği oluşturmaya çalışır. Çalışma alanı tabanlı Uygulama Analizler kaynakları şu anda korumalı alanda barındırılamadığından, işlevleriniz çalışır ancak yürütme günlükleri Uygulama Analizler'ne gönderilmez.

Azure'a Yayımlama

Artık işlev uygulamanızı Azure'da oluşturduğunuza göre, projeyi Core Tools ile bu uygulamada yayımlayabilirsiniz.

Yayımlamak için Cloud Shell'de aşağıdaki komutları çalıştırın. Yayımlamadan önce işlevler proje klasöründe olduğunuzdan emin olmak için önce komutunu çalıştırın cd .

cd ~/loan-wizard
func azure functionapp publish "$FUNCTIONAPP" --force

Not

Bu komut uygulamanızı bulamadığını belirten bir hata görüntülerse iki dakika bekleyin ve yeniden deneyin. Yeni işlev uygulamalarının Core Tools tarafından keşfedilebilmesi için birkaç saniye geçmesi gerekir.

Ayrıca, işlev uygulaması sürüm uyuşmazlığını güncelleştirmek için komutuna eklisiniz --force .

İşlevinizi Core Tools'tan geçici olarak yerel olarak barındırdığınız önceki alıştırmadan farklı olarak işleviniz artık web'de canlı olarak kullanılabilir. Bu öğretici için korumalı alanın süresi dolana kadar genel olarak kullanılabilir durumda kalır. HTTP uç noktası bir anonymous yetkilendirme düzeyiyle tanımlandığından, web'de herkes tarafından erişilebilir.

İşlevi çalıştırma

İşleviniz artık Azure'da yayımlanır ve her yerden çağrılabilir. GET isteklerine yanıt veren HTTP ile tetiklenen bir işlev olarak, herhangi bir tarayıcıdan çalıştırılabilir.

  1. İstek URL'sini almak için aşağıdaki komutu çalıştırın:

    func azure functionapp list-functions "$FUNCTIONAPP" --show-keys
    
  2. Çıktıdaki URL'yi yeni bir tarayıcı sekmesine yapıştırın. İşlevi doğru sorgu dizesi parametrelerini sağlamadan yerel olarak çalıştırdığınızda gözlemlediğiniz çıktıyı görürsünüz. Yetkilendirme düzeyi kullandığınızda anonymous çıkışa anahtar eklenmez.

  3. URL'nin sonuna ekleyin ?principal=5000&rate=.035&term=36 ve Enter tuşuna basın. Varsa parametresini code koruduğundan emin olun. Döndürülen sonuç, beklendiği gibi olur 6300.000000000001.