Bagikan melalui


Mulai cepat: Membuat aplikasi Python Durable Functions

Gunakan Durable Functions, fitur Azure Functions, untuk menulis fungsi stateful di lingkungan tanpa server. Anda menginstal Durable Functions dengan menginstal ekstensi Azure Functions di Visual Studio Code. Ekstensi mengelola status, titik pemeriksaan, dan memulai ulang di aplikasi Anda.

Dalam mulai cepat ini, Anda menggunakan ekstensi Durable Functions di Visual Studio Code untuk membuat dan menguji aplikasi Durable Functions "halo dunia" secara lokal di Azure Functions. Aplikasi Durable Functions mengatur dan menyatukan panggilan ke fungsi lain. Kemudian, Anda menerbitkan kode fungsi ke Azure. Alat yang Anda gunakan tersedia melalui ekstensi Visual Studio Code.

Cuplikan layar aplikasi Durable Functions yang berjalan di Azure.

Catatan

Panduan cepat ini menggunakan model pemrograman v2 berbasis dekorator untuk Python. Model ini memberikan struktur file yang lebih sederhana dan lebih sentris kode dibandingkan dengan v1.

Prasyarat

Untuk menyelesaikan mulai cepat ini, Anda memerlukan:

Jika Anda tidak memiliki akun Azure, buat akun gratis sebelum memulai.

Membuat proyek lokal Anda

Di bagian ini, gunakan Visual Studio Code untuk membuat proyek Azure Functions lokal.

  1. Di Visual Studio Code, pilih F1 (atau pilih Ctrl/Cmd+Shift+P) untuk membuka palet perintah. Pada perintah (>), masukkan lalu pilih Azure Functions: Buat Proyek Baru.

    Cuplikan layar jendela Membuat fungsi.

  2. Pilih Telusur. Dalam dialog Pilih Folder, buka folder yang akan digunakan untuk proyek Anda, lalu pilih Pilih.

  3. Pada perintah, berikan informasi berikut:

    Cepat Tindakan Deskripsi
    Pilih bahasa untuk proyek aplikasi fungsi Anda Pilih Python. Membuat proyek Python Functions lokal.
    Pilih versi Pilih Azure Functions v4. Anda hanya melihat opsi ini saat Core Tools belum diinstal. Dalam hal ini, Core Tools diinstal saat pertama kali Anda menjalankan aplikasi.
    Versi Python Pilih Python 3.7, Python 3.8, Python 3.9, atau Python 3.10. Visual Studio Code membuat lingkungan virtual dengan menggunakan versi yang Anda pilih.
    Pilih templat untuk fungsi pertama proyek Anda Pilih Lewati untuk saat ini.
    Pilih bagaimana Anda ingin membuka proyek Anda Pilih Buka di jendela saat ini. Membuka Visual Studio Code di folder yang Anda pilih.

Visual Studio Code menginstal Azure Functions Core Tools jika diperlukan untuk membuat proyek. Selain itu membuat proyek aplikasi fungsi dalam folder. Proyek ini berisi file konfigurasihost.jsondanlocal.settings.json.

File requirements.txt juga dibuat di folder akar. File ini menentukan paket Python yang diperlukan untuk menjalankan aplikasi fungsi Anda.

Pasang azure-functions-durable dari PyPI

Saat Anda membuat proyek, ekstensi Visual Studio Code Azure Functions secara otomatis membuat lingkungan virtual dengan versi Python yang Anda pilih. Anda kemudian harus mengaktifkan lingkungan virtual di terminal dan menginstal beberapa dependensi yang diperlukan oleh Azure Functions dan Durable Functions.

  1. Bukarequirements.txtdi editor dan ubah kontennya menjadi kode berikut:

    azure-functions
    azure-functions-durable
    
  2. Di folder saat ini, buka terminal terintegrasi editor (Ctrl+Shift+').

  3. Di terminal terintegrasi, aktifkan lingkungan virtual di folder saat ini, tergantung pada sistem operasi Anda.

    source .venv/bin/activate
    

Kemudian, di terminal terintegrasi tempat lingkungan virtual diaktifkan, gunakan pip untuk menginstal paket yang Anda tentukan.

python -m pip install -r requirements.txt

Catatan

Anda harus menginstal azure-functions-durable v1.2.4 atau lebih tinggi.

Membuat fungsi Anda

Aplikasi Durable Functions paling dasar memiliki tiga fungsi:

  • Fungsi orkestrator: Alur kerja yang mengatur fungsi lain.
  • Fungsi aktivitas: Fungsi yang dipanggil oleh fungsi orkestrator, melakukan pekerjaan, dan secara opsional mengembalikan nilai.
  • Fungsi klien: Fungsi reguler di Azure yang memulai fungsi orkestrator. Contoh ini menggunakan fungsi yang dipicu HTTP.

Contoh kode

Untuk membuat aplikasi Durable Functions dasar dengan menggunakan tiga jenis fungsi ini, ganti konten function_app.py dengan kode Python berikut:

import azure.functions as func
import azure.durable_functions as df

myApp = df.DFApp(http_auth_level=func.AuthLevel.ANONYMOUS)

# An HTTP-triggered function with a Durable Functions client binding
@myApp.route(route="orchestrators/hello_orchestrator")
@myApp.durable_client_input(client_name="client")
async def http_start(req: func.HttpRequest, client):
    function_name = req.route_params.get('functionName')
    instance_id = await client.start_new(function_name)
    response = client.create_check_status_response(req, instance_id)
    return response

# Orchestrator
@myApp.orchestration_trigger(context_name="context")
def hello_orchestrator(context):
    result1 = yield context.call_activity("hello", "Seattle")
    result2 = yield context.call_activity("hello", "Tokyo")
    result3 = yield context.call_activity("hello", "London")

    return [result1, result2, result3]

# Activity
@myApp.activity_trigger(input_name="city")
def hello(city: str):
    return f"Hello {city}"

Tinjau tabel berikut untuk penjelasan tentang setiap fungsi dan tujuannya dalam sampel:

Metode Deskripsi
hello_orchestrator Fungsi orkestrator, yang menjelaskan alur kerja. Dalam hal ini, orkestrasi dimulai, memanggil tiga fungsi secara berurutan, lalu mengembalikan hasil yang diurutkan dari ketiga fungsi dalam daftar.
hello Fungsi aktivitas, yang melakukan pekerjaan yang diorkestrasi. Fungsi mengembalikan salam sederhana ke kota yang diteruskan sebagai argumen.
http_start Fungsi yang dipicu HTTP yang memulai instans orkestrasi dan mengembalikan check status respons.

Catatan

Durable Functions juga mendukung cetak biru model pemrograman Python v2. Untuk menggunakan cetak biru, daftarkan fungsi cetak biru Anda dengan menggunakan Blueprint Anda dapat mendaftarkan cetak biru yang dihasilkan seperti biasa. Anda dapat menggunakan sampel kami sebagai contoh.

Mengonfigurasi emulator penyimpanan

Anda dapat menggunakan Azurite, emulator untuk Azure Storage, untuk menguji fungsi secara lokal. Di local.settings.json, atur nilai untuk AzureWebJobsStorageUseDevelopmentStorage=true disukai dalam contoh ini:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "python"
  }
}

Untuk menginstal dan mulai menjalankan ekstensi Azurite di Visual Studio Code, di palet perintah, masukkan Azurite: Mulai dan pilih Enter.

Anda dapat menggunakan opsi penyimpanan lain untuk aplikasi Durable Functions Anda. Untuk informasi selengkapnya tentang opsi dan manfaat penyimpanan, lihat Penyedia penyimpanan Durable Functions.

Uji fungsi secara lokal

Azure Functions Core Tools memberi Anda kemampuan untuk menjalankan proyek Azure Functions di komputer pengembangan lokal Anda. Jika tidak diinstal, Anda akan diminta untuk menginstal alat-alat ini saat pertama kali memulai fungsi di Visual Studio Code.

  1. Untuk menguji fungsi Anda, atur titik henti dalam hello kode fungsi aktivitas. Pilih F5 atau pilih Debug: Mulai Debugging di palet perintah untuk memulai proyek aplikasi fungsi. Output dari Core Tools muncul di panel terminal.

    Catatan

    Untuk informasi selengkapnya tentang penelusuran kesalahan, lihat Diagnostik Durable Functions.

  2. Di panel terminal, salin titik akhir URL fungsi yang dipicu HTTP Anda.

    Cuplikan layar output lokal Azure.

  3. Gunakan browser Anda atau alat uji HTTP untuk mengirim permintaan HTTP POST ke titik akhir URL.

    Ganti segmen terakhir dengan nama fungsi orkestrator (hello_orchestrator). URL-nya harus sama dengan http://localhost:7071/api/orchestrators/hello_orchestrator.

    Responsnya adalah hasil awal fungsi HTTP. Ini memungkinkan Anda tahu bahwa orkestrasi tahan lama telah berhasil dimulai. Ini belum menampilkan hasil akhir orkestrasi. Respons mencakup beberapa URL yang berguna. Untuk saat ini, kueri status orkestrasi.

  4. Salin nilai URL untuk statusQueryGetUri, tempelkan di bilah alamat browser Anda, dan jalankan permintaan. Anda juga dapat terus menggunakan alat uji HTTP Anda untuk mengeluarkan permintaan GET.

    Permintaan meminta instans orkestrasi untuk status tersebut. Anda akan melihat bahwa instans selesai dan mencakup output atau hasil fungsi tahan lama. Ini terlihat mirip dengan contoh ini:

    {
        "name": "hello_orchestrator",
        "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"
    }
    
  5. Untuk menghentikan penelusuran kesalahan, di Visual Studio Code, pilih Shift+F5.

Setelah Anda memverifikasi bahwa fungsi berjalan dengan benar di komputer lokal Anda, saatnya untuk menerbitkan proyek ke Azure.

Masuk ke Azure

Sebelum dapat membuat sumber daya Azure atau menerbitkan aplikasi, Anda harus masuk ke Azure.

  1. Jika Anda belum masuk, di bilah Aktivitas, pilih ikon Azure. Lalu di bawah Sumber Daya, pilih Masuk ke Azure.

    Cuplikan layar jendela masuk ke Azure di Visual Studio Code.

    Jika sudah masuk dan dapat melihat langganan Anda yang ada, buka bagian berikutnya. Jika Anda belum memiliki akun Azure, pilih Buat Akun Azure. Siswa dapat memilih Buat Akun Azure for Students.

  2. Saat Diminta di browser, pilih akun Azure Anda dan masuk dengan menggunakan kredensial akun Azure Anda. Jika membuat akun baru, Anda dapat masuk setelah akun berhasil dibuat.

  3. Setelah berhasil masuk, Anda dapat menutup jendela browser baru. Langganan milik akun Azure Anda ditampilkan di bilah samping.

Membuat aplikasi fungsi di Azure

Di bagian ini, Anda membuat aplikasi fungsi dalam paket Konsumsi Flex bersama dengan sumber daya terkait di langganan Azure Anda. Banyak keputusan pembuatan sumber daya dibuat untuk Anda berdasarkan perilaku default. Untuk kontrol lebih lanjut atas sumber daya yang dibuat, Anda harus membuat aplikasi fungsi dengan opsi tingkat lanjut.

  1. Di Visual Studio Code, pilih F1 untuk membuka palet perintah. Pada perintah (>), masukkan lalu pilih Azure Functions: Buat Aplikasi Fungsi di Azure.

  2. Pada perintah, berikan informasi berikut:

    Cepat Tindakan
    Pilih langganan Pilih langganan Azure yang akan digunakan. Perintah tidak muncul saat Anda hanya memiliki satu langganan yang terlihat di bawah Sumber Daya.
    Masukkan nama aplikasi fungsi baru Masukkan nama unik global yang valid di jalur URL. Nama yang Anda masukkan divalidasi untuk memastikan bahwa nama tersebut unik di Azure Functions.
    Pilih lokasi untuk sumber daya baru Pilih wilayah Azure. Untuk performa yang lebih baik, pilih wilayah di dekat Anda. Hanya wilayah yang didukung oleh paket Konsumsi Flex yang ditampilkan.
    Pilih tumpukan runtime Pilih versi bahasa yang saat ini Anda jalankan secara lokal.
    Pilih jenis autentikasi sumber daya Pilih Identitas terkelola, yang merupakan opsi paling aman untuk menyambungkan ke akun penyimpanan host default.

    Di panel Azure: Log Aktivitas, ekstensi Azure memperlihatkan status sumber daya individual saat dibuat di Azure.

    Cuplikan layar yang memperlihatkan log pembuatan sumber daya Azure.

  3. Saat aplikasi fungsi dibuat, sumber daya terkait berikut dibuat di langganan Azure Anda. Sumber daya dinamai berdasarkan nama yang Anda masukkan untuk aplikasi fungsi Anda.

    • Grup sumber daya, yang merupakan kontainer logis untuk sumber daya terkait.
    • Aplikasi fungsi, menyediakan lingkungan untuk menjalankan kode fungsi Anda. Aplikasi fungsi memungkinkan Anda mengelompokkan fungsi sebagai unit logis untuk memudahkan pengelolaan, penerapan, dan berbagi sumber daya dalam paket hosting yang sama.
    • Paket Azure App Service, yang menentukan host yang mendasar untuk aplikasi fungsi Anda.
    • Akun Azure Storage standar, yang digunakan oleh host Functions untuk mempertahankan status dan informasi lain tentang aplikasi fungsi Anda.
    • Instans Application Insights yang terhubung ke aplikasi fungsi, dan yang melacak penggunaan fungsi Anda di aplikasi.
    • Identitas terkelola yang ditetapkan oleh pengguna yang ditambahkan ke peran Kontributor Data Blob Penyimpanan di akun penyimpanan host default yang baru.

    Notifikasi ditampilkan setelah aplikasi fungsi Anda dibuat dan paket penyebaran diterapkan.

    Petunjuk / Saran

    Secara default, sumber daya Azure yang diperlukan oleh aplikasi fungsi Anda dibuat berdasarkan nama yang Anda masukkan untuk aplikasi fungsi Anda. Secara default, sumber daya dibuat dengan aplikasi fungsi dalam grup sumber daya baru yang sama. Jika Anda ingin menyesuaikan nama sumber daya terkait atau menggunakan kembali sumber daya yang ada, terbitkan proyek dengan opsi buat tingkat lanjut.

Menyebarkan proyek ke Azure

Penting

Penyebaran ke aplikasi fungsi yang ada selalu menimpa konten aplikasi tersebut di Azure.

  1. Di palet perintah, masukkan lalu pilih Azure Functions: Sebarkan ke Aplikasi Fungsi.

  2. Pilih aplikasi fungsi yang baru saja Anda buat. Saat diminta untuk menimpa penyebaran sebelumnya, pilih Sebarkan untuk menyebarkan kode fungsi Anda ke sumber daya aplikasi fungsi baru.

  3. Saat penyebaran selesai, pilih Tampilkan Output untuk melihat hasil pembuatan dan penyebaran, termasuk sumber daya Azure yang Anda buat. Jika Anda melewatkan pemberitahuan, pilih ikon bel di sudut kanan bawah untuk melihatnya lagi.

    Cuplikan layar jendela Tampilan Output.

Uji fungsi Anda di Azure

  1. Salin URL pemicu HTTP dari panel output. URL yang memanggil fungsi yang dipicu HTTP Anda harus dalam format ini:

    https://<functionappname>.azurewebsites.net/api/orchestrators/hello_orchestrator

  2. Tempelkan URL baru untuk permintaan HTTP di bilah alamat browser Anda. Saat menggunakan aplikasi yang diterbitkan, Anda dapat mengharapkan untuk mendapatkan respons status yang sama dengan yang Anda dapatkan saat diuji secara lokal.

Aplikasi Python Durable Functions yang Anda buat dan publikasikan dengan menggunakan Visual Studio Code siap digunakan.

Membersihkan sumber daya

Jika Anda tidak lagi memerlukan sumber daya yang Anda buat untuk menyelesaikan mulai cepat, untuk menghindari biaya terkait di langganan Azure Anda, hapus grup sumber daya dan semua sumber daya terkait.