Aracılığıyla paylaş


Hızlı Başlangıç: Komut satırından Azure'da Python işlevi oluşturma

Bu makalede, KOMUT satırı araçlarını kullanarak HTTP isteklerine yanıt veren bir Python işlevi oluşturacaksınız. Kodu yerel olarak test ettikten sonra bunu Azure İşlevleri’nin sunucusuz ortamına dağıtacaksınız.

Bu makalede, işlev oluşturmaya yönelik dekoratör tabanlı bir yaklaşım sağlayan Azure İşlevleri için Python v2 programlama modeli kullanılır. Python v2 programlama modeli hakkında daha fazla bilgi edinmek için bkz . Geliştirici Başvuru Kılavuzu

Bu hızlı başlangıcı tamamladığınızda Azure hesabınıza birkaç sentlik (ABD doları cinsinden) veya daha düşük bir ücret yansıtılır.

Bu makalenin Visual Studio Code tabanlı bir sürümü de vardır.

Yerel ortamınızı yapılandırma

Başlamadan önce aşağıdaki gereksinimleri karşılamanız gerekir:

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.

func --version Core Tools sürümünüzün en azından 4.0.5530olduğundan emin olmak için komutunu kullanın.

Sanal ortam oluşturma ve etkinleştirme

Uygun bir klasörde aşağıdaki komutları çalıştırarak adlı .venvbir sanal ortam oluşturun ve etkinleştirin. Azure İşlevleri tarafından desteklenen bir Python sürümü kullandığınızdan emin olun.

python -m venv .venv
source .venv/bin/activate

Python venv paketini Linux dağıtımınıza yüklemediyse aşağıdaki komutu çalıştırın:

sudo apt-get install python3-venv

Bu etkinleştirilmiş sanal ortamda sonraki tüm komutları çalıştırırsınız.

Yerel işlev oluşturma

Azure İşlevleri işlev projesi, her birinin belirli bir tetikleyiciye yanıt verdiği bir veya daha fazla tek tek işlev için bir kapsayıcıdır. Projedeki tüm işlevler aynı yerel ve barındırma yapılandırmalarını paylaşır.

Bu bölümde, bir işlev projesi oluşturacak ve HTTP ile tetiklenen bir işlev ekleymelisiniz.

  1. func init Komutunu aşağıdaki gibi çalıştırarak sanal ortamda bir Python v2 işlevleri projesi oluşturun.

    func init --python
    

    Ortam artık proje için local.settings.json ve host.json adlı yapılandırma dosyaları da dahil olmak üzere çeşitli dosyalar içeriyor. local.settings.json Azure'dan indirilen gizli dizileri içerebileceğinden, dosya .gitignore dosyasında varsayılan olarak kaynak denetimin dışında tutulur.

  2. 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"
    

    İstenirse ANONIM seçeneğini belirleyin. func newdosyaya function_app.py adlı HttpExample bir HTTP tetikleyicisi uç noktası ekler ve bu uç nokta kimlik doğrulaması olmadan erişilebilir.

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

İşleviniz için destekleyici Azure kaynakları oluşturma

İşlev kodunuzu Azure'a dağıtabilmeniz için önce üç kaynak oluşturmanız gerekir:

  • İlgili kaynaklar için mantıksal bir kapsayıcı olan kaynak grubu.
  • Projeleriniz hakkındaki durumu ve diğer bilgileri koruyan bir depolama hesabı.
  • İşlev kodunuzu yürütmek için ortam sağlayan bir işlev uygulaması. İşlev uygulaması yerel işlev projenize eşler ve 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.

Bu öğeleri oluşturmak için aşağıdaki komutları kullanın. Hem Azure CLI hem de PowerShell desteklenir.

  1. Gerekirse Azure'da oturum açın.

    az login
    

    Komutu sizi az login Azure hesabınızda oturum açar.

  2. Seçtiğiniz bölgede adlı AzureFunctionsQuickstart-rg bir kaynak grubu oluşturun.

    az group create --name AzureFunctionsQuickstart-rg --location <REGION>
    

    az group create komutu bir kaynak grubu oluşturur. Yukarıdaki komutta, az account list-locations komutundan döndürülen kullanılabilir bir bölge kodunu kullanarak değerini yakınınızdaki bir bölgeyle değiştirin<REGION>.

    Not

    Linux ve Windows uygulamalarını aynı kaynak grubunda barındıramazsınız. Windows işlev uygulaması veya web uygulaması ile adlı AzureFunctionsQuickstart-rg mevcut bir kaynak grubunuz varsa, farklı bir kaynak grubu kullanmanız gerekir.

  3. Kaynak grubunuz ve bölgenizde genel amaçlı bir depolama hesabı oluşturun.

    az storage account create --name <STORAGE_NAME> --location <REGION> --resource-group AzureFunctionsQuickstart-rg --sku Standard_LRS
    

    az storage account create komutu depolama hesabını oluşturur.

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

    Bu hızlı başlangıç için depolama hesabına yalnızca birkaç sent (USD) uygulanır.

  4. Azure'da işlev uygulamasını oluşturun.

    az functionapp create --resource-group AzureFunctionsQuickstart-rg --consumption-plan-location westeurope --runtime python --runtime-version <PYTHON_VERSION> --functions-version 4 --name <APP_NAME> --os-type linux --storage-account <STORAGE_NAME>
    

    az functionapp create komutu, Azure'da işlev uygulamasını oluşturur. Python işlevleri yalnızca Linux üzerinde çalıştığından sağlamanız --os-type linux gerekir.

    Önceki örnekte değerini size uygun genel olarak benzersiz bir adla değiştirin <APP_NAME> . <APP_NAME> aynı zamanda işlev uygulamasının varsayılan alt etki alanıdır. ayarladığınız <PYTHON_VERSION> değerin İşlevler tarafından desteklenen bir sürüm olduğundan ve yerel geliştirme sırasında kullandığınız sürümle aynı olduğundan emin olun.

    Bu komut, Azure İşlevleri Tüketim Planı'nın altında belirtilen dil çalışma zamanınızda çalışan bir işlev uygulaması oluşturur ve bu uygulama burada tahakkuk ettiğiniz kullanım miktarı için ücretsizdir. Komut aynı kaynak grubunda, işlev uygulamanızı izleyip günlükleri görüntüleyebileceğiniz ilişkili bir Azure Uygulaması lication Insights örneği de oluşturur. Daha fazla bilgi için bkz. İzleme Azure İşlevleri. Örnek, siz etkinleştirene kadar ücret ödemez.

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

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

Komutun çıkışında gösterilen tam Çağırma URL'sini publish 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.

Kaynakları temizleme

Bir sonraki adıma devam edip bir Azure Depolama kuyruğu çıkış bağlaması eklerseniz, daha önce yaptıklarınızı derleyeceğiniz gibi tüm kaynaklarınızı yerinde tutun.

Aksi takdirde, daha fazla maliyet oluşmasını önlemek için kaynak grubunu ve içerdiği tüm kaynakları silmek için aşağıdaki komutu kullanın.

az group delete --name AzureFunctionsQuickstart-rg

Sonraki adımlar

Bu makalede sorun mu yaşıyorsunuz?