Aracılığıyla paylaş


Azure Arc’da ilk işlevinizi oluşturma (önizleme)

Bu hızlı başlangıçta bir Azure İşlevleri projesi oluşturacak ve bunu Azure Arc özellikli Kubernetes kümesinde çalışan bir işlev uygulamasına dağıtacaksınız. Daha fazla bilgi edinmek için bkz . Azure Arc'ta App Service, İşlevler ve Logic Apps. Bu senaryo yalnızca Linux üzerinde çalışan işlev uygulamalarını destekler.

Not

Azure Arc özellikli Kubernetes kümesinde işlevleri çalıştırma desteği şu anda önizleme aşamasındadır.

PowerShell işlev projelerinin Azure Arc özellikli Kubernetes kümelerinde yayımlanması şu anda desteklenmemektedir. PowerShell işlevlerini Azure Arc özellikli Kubernetes kümelerine dağıtmanız gerekiyorsa, işlev uygulamanızı bir kapsayıcıda oluşturun.

İşlev uygulamanızın çalıştığı kapsayıcıyı özelleştirmeniz gerekiyorsa bkz . Azure Arc'ta ilk kapsayıcılı işlevlerinizi oluşturma (önizleme).

Önkoşullar

Yerel bilgisayarınızda:

Azure Functions Core Tools’u Yükleme

Çekirdek Araçları'nı yüklemenin önerilen yolu, yerel geliştirme bilgisayarınızın işletim sistemine bağlıdır.

Aşağıdaki adımlarda Core Tools v4.x'i yüklemek için bir Windows yükleyicisi (MSI) kullanılır. Diğer paket tabanlı yükleyiciler hakkında daha fazla bilgi için bkz . Çekirdek Araçları benioku.

Windows sürümünüz temelinde Core Tools yükleyicisini indirin ve çalıştırın:

Daha önce Windows'a Core Tools yüklemek için Windows installer (MSI) kullandıysanız, en son sürümü yüklemeden önce Program Ekle Kaldır'dan eski sürümü kaldırmanız gerekir.

App Service Kubernetes ortamı oluşturma

Başlamadan önce, Azure Arc özellikli Kubernetes kümesi için app service Kubernetes ortamı oluşturmanız gerekir.

Not

Ortamı oluştururken hem özel konum adını hem de özel konumu içeren kaynak grubunun adını not aldığınızdan emin olun. İşlev uygulamanızı ortamda oluştururken ihtiyacınız olacak özel konum kimliğini bulmak için bunları kullanabilirsiniz.

Ortamı siz oluşturmadıysanız küme yöneticinize başvurun.

Azure CLI uzantıları ekleme

Azure Cloud Shell'de Bash ortamını başlatın.

Bu CLI komutları henüz çekirdek CLI kümesinin parçası olmadığından, bunları aşağıdaki komutlarla ekleyin:

az extension add --upgrade --yes --name customlocation
az extension remove --name appservice-kube
az extension add --upgrade --yes --name appservice-kube

Yerel işlev projesini oluşturma

Azure İşlevleri'de işlev projesi, her birinin belirli bir tetikleyiciye yanıt verdiği bir veya daha fazla işlev için dağıtım ve yürütme birimidir. Projedeki tüm işlevler aynı yerel ve barındırma yapılandırmalarını paylaşır. Bu bölümde, tek bir işlev içeren bir işlev projesi oluşturacaksınız.

  1. Belirtilen çalışma zamanına func init sahip LocalFunctionProj adlı bir klasörde işlev projesi oluşturmak için komutunu aşağıdaki gibi çalıştırın:

    func init LocalFunctionProj --dotnet
    
  2. Proje klasörüne gidin:

    cd LocalFunctionProj
    

    Bu klasör, local.settings.json ve host.json adlı yapılandırma dosyaları da dahil olmak üzere proje için çeşitli dosyalar içerir. Varsayılan olarak, local.settings.json dosyası .gitignore dosyasındaki kaynak denetimin dışında tutulur. Bu dışlamanın nedeni, dosyanın Azure'dan indirilen gizli dizileri içermesidir.

  3. Aşağıdaki komutu kullanarak projenize bir işlev ekleyin; burada --name bağımsız değişken işlevinizin benzersiz adıdır (HttpExample) ve --template bağımsız değişken işlevin tetikleyicisini (HTTP) belirtir.

    func new --name HttpExample --template "HTTP trigger" --authlevel "anonymous"
    

İşlevi yerel olarak çalıştırma

  1. LocalFunctionProj klasöründen yerel Azure İşlevleri çalışma zamanı ana bilgisayarını başlatarak işlevinizi çalıştırın.

    func start
    

    Çıktının sonuna doğru aşağıdaki satırlar görünmelidir:

    İşlev yerel olarak çalıştırılırken terminal penceresi çıkışının ekran görüntüsü.

    Not

    HttpExample yukarıda gösterildiği gibi görünmüyorsa, konağı büyük olasılıkla projenin kök klasörünün dışından başlatmış olursunuz. Bu durumda, konağı durdurmak için Ctrl+C kullanın, projenin kök klasörüne gidin ve önceki komutu yeniden çalıştırın.

  2. Bu çıkıştan HTTP işlevinizin URL'sini bir tarayıcıya kopyalayın ve sorgu dizesini ?name=<YOUR_NAME>ekleyin ve tam URL'yi gibi yapın http://localhost:7071/api/HttpExample?name=Functions. Tarayıcı, sorgu dizesi değerinizi geri döndüren bir yanıt iletisi görüntülemelidir. Projenizi başlattığınız terminal, istekte bulunurken günlük çıkışını da gösterir.

  3. İşiniz bittiğinde, Ctrl + C tuşlarına basın ve işlevler konasını durdurmak için yazıny.

Özel konumu alma

Özel bir konumda işlev uygulaması oluşturabilmek için ortam hakkında bilgi almanız gerekir.

Küme yöneticinizden özel konum hakkında aşağıdaki bilgileri alın (bkz . Özel konum oluşturma).

customLocationGroup="<resource-group-containing-custom-location>"
customLocationName="<name-of-custom-location>"

Sonraki adım için özel konum kimliğini alın.

customLocationId=$(az customlocation show \
    --resource-group $customLocationGroup \
    --name $customLocationName \
    --query id \
    --output tsv)

Azure kaynakları oluşturma

İşlev kodunuzu yeni App Service Kubernetes ortamınıza dağıtmadan önce iki kaynak daha oluşturmanız gerekir:

  • Depolama hesabı. Bu makale bir depolama hesabı oluştururken, bazı durumlarda depolama hesabı gerekli olmayabilir. Daha fazla bilgi için depolama konusunda dikkat edilmesi gerekenler makalesindeki Azure Arc özellikli kümeler bölümüne bakın.
  • İşlev kodunuzu yürütmek için bağlam sağlayan bir işlev uygulaması. İşlev uygulaması App Service Kubernetes ortamında çalışır ve yerel işlev projenizle eşlenir. İşlev uygulaması, kaynakların daha kolay yönetilmesi, dağıtılması ve paylaşılması için işlevleri bir mantıksal birim olarak gruplandırmanıza olanak tanır.

Not

İşlev uygulamaları, Ayrılmış (App Service) planındaki bir App Service Kubernetes ortamında çalışır. İşlev uygulamanızı mevcut bir plan olmadan oluşturduğunuzda, sizin için doğru plan oluşturulur.

Depolama hesabı oluşturma

Kaynak grubunuz ve bölgenizde genel amaçlı bir depolama hesabı oluşturmak için az storage account create komutunu kullanın:

az storage account create --name <STORAGE_NAME> --location westeurope --resource-group myResourceGroup --sku Standard_LRS

Not

Bazı durumlarda depolama hesabı gerekli olmayabilir. Daha fazla bilgi için depolama konusunda dikkat edilmesi gerekenler makalesindeki Azure Arc özellikli kümeler bölümüne bakın.

Önceki örnekte değerini size uygun ve Azure Depolama'da benzersiz bir adla değiştirin <STORAGE_NAME> . Adlar yalnızca üç ile 24 karakter arasında sayı ve küçük harf içermelidir. Standard_LRSİşlevler tarafından desteklenen genel amaçlı bir hesap belirtir. Değer --location standart bir Azure bölgesidir.

İşlev uygulaması oluşturma

Ortamda yeni bir işlev uygulaması oluşturmak için az functionapp create komutunu çalıştırın.

az functionapp create --resource-group MyResourceGroup --name <APP_NAME> --custom-location <CUSTOM_LOCATION_ID> --storage-account <STORAGE_NAME> --functions-version 4 --runtime dotnet 

Bu örnekte değerini App Service Kubernetes ortamı için belirlediğiniz özel konumun kimliğiyle değiştirin <CUSTOM_LOCATION_ID> . Ayrıca değerini önceki <STORAGE_NAME> adımda kullandığınız hesabın adıyla değiştirin ve değerini size uygun genel olarak benzersiz bir adla değiştirin <APP_NAME> .

İşlev projesini Azure'a dağıtma

İşlev uygulamanızı Azure'da başarıyla oluşturduktan sonra, komutunu kullanarak yerel işlevler projenizi dağıtmaya func azure functionapp publish hazır olursunuz.

Kök proje klasörünüzde şu func azure functionapp publish komutu çalıştırın:

func azure functionapp publish <APP_NAME>

Bu örnekte değerini uygulamanızın adıyla değiştirin <APP_NAME> . Başarılı bir dağıtım, aşağıdaki çıkışa benzer sonuçlar gösterir (basitlik için kesilmiş):

...

Getting site publishing info...
Creating archive for current directory...
Performing remote build for functions project.

...

Deployment successful.
Remote build succeeded!
Syncing triggers...
Functions in msdocs-azurefunctions-qs:
    HttpExample - [httpTrigger]
        Invoke url: https://msdocs-azurefunctions-qs.azurewebsites.net/api/httpexample

Azure Arc özellikli Kubernetes kümesinde tam dağıtımın tamamlanması biraz zaman alabileceğinden, yayımlanan işlevlerinizi doğrulamak için aşağıdaki komutu yeniden çalıştırmak isteyebilirsiniz:

func azure functionapp list-functions

İşlevi Azure'da çağırma

İşleviniz bir HTTP tetikleyicisi kullandığından, tarayıcıda URL'sine http isteğinde bulunarak veya curl gibi bir araçla çağırabilirsiniz.

Yayımla komutunun çıkışında gösterilen tam Çağırma URL'sini tarayıcı adres çubuğuna kopyalayın ve sorgu parametresini ?name=Functionsekleyin. Tarayıcı, işlevi yerel olarak çalıştırdığınızda olduğu gibi benzer bir çıkış görüntülemelidir.

İşlevin çıkışı tarayıcıda Azure'da çalıştırılır

Sonraki adımlar

İşlev uygulamanızı Azure Arc özellikli bir App Service Kubernetes ortamında çalıştırdığınıza göre artık bir Kuyruk Depolama çıkış bağlaması ekleyerek bunu Azure Depolama'ya bağlayabilirsiniz.