Bagikan melalui


Tutorial: Mengonfigurasi fungsi Python dengan output Azure Table Storage

Dalam tutorial ini, Anda mempelajari cara mengonfigurasi fungsi Python untuk menggunakan Azure Table Storage sebagai pengikatan output dengan menyelesaikan tugas berikut.

  • Gunakan Visual Studio Code untuk membuat proyek fungsi Python.
  • Tambahkan pengikatan fungsi output Tabel Penyimpanan.
  • Gunakan Visual Studio Code untuk menjalankan fungsi secara lokal.
  • Gunakan Azure CLI untuk membuat koneksi antara Azure Function dan Storage Table dengan Konektor Layanan.
  • Gunakan Visual Studio untuk menyebarkan fungsi Anda.

Gambaran umum komponen proyek fungsi dalam tutorial ini:

Komponen Proyek Pilihan / Solusi
Layanan Sumber Fungsi Azure
Layanan Target Tabel Azure Storage
Pengikatan Fungsi Pemicu HTTP, Tabel Penyimpanan sebagai Output
Jenis Autentikasi Proyek Lokal String Koneksi
Jenis Autentikasi Fungsi Cloud String Koneksi

Peringatan

Microsoft menyarankan agar Anda menggunakan alur autentikasi paling aman yang tersedia. Alur autentikasi yang dijelaskan dalam prosedur ini membutuhkan tingkat kepercayaan yang sangat tinggi pada aplikasi, dan membawa risiko yang tidak ada dalam alur lain. Anda hanya boleh menggunakan alur ini ketika alur lain yang lebih aman, seperti identitas terkelola, tidak layak.

Prasyarat

Membuat proyek fungsi Python

Ikuti tutorial untuk membuat proyek Azure Functions lokal, dan berikan informasi berikut pada perintah:

Prompt Pilihan
Pilih Bahasa Pilih Python. (model bahasa pemrograman v1)
Pilih interpreter Python untuk membuat lingkungan virtual Pilih interpreter Python pilihan Anda. Jika opsi tidak ditampilkan, ketik jalur lengkap ke biner Python Anda.
Pilih templat untuk fungsi pertama proyek Anda Pilih HTTP trigger.
Berikan nama fungsi Memasuki TableStorageOutputFunc.
Tingkat otorisasi Pilih Anonymous, yang memungkinkan siapa saja memanggil titik akhir fungsi Anda. 

Anda telah membuat proyek fungsi Python dengan pemicu HTTP.

Menambahkan pengikatan output tabel penyimpanan

Atribut pengikatan didefinisikan dalam file function.json untuk fungsi tertentu. Untuk membuat pengikatan, klik kanan (Ctrl+klik pada macOS) function.json file di folder fungsi Anda dan pilih Tambahkan pengikatan... . Ikuti perintah untuk menentukan properti pengikatan berikut untuk pengikatan baru:

Prompt Nilai Deskripsi
Pilih arah pengikatan out Pengikatannya adalah pengikatan output.
Pilih pengikatan dengan arah... Azure Table Storage Pengikatan adalah pengikatan tabel Azure Storage.
Nama yang digunakan untuk mengidentifikasi pengikatan ini dalam kode Anda outMessage Nama yang mengidentifikasi parameter pengikatan yang direferensikan dalam kode Anda.
Nama tabel di akun penyimpanan tempat data akan ditulis testTable Nama tabel yang ditulis fungsi Anda sebagai output. Buat tabel bernama testTable di akun penyimpanan Anda jika tidak ada.
Pilih pengaturan dari "local.setting.json" Create new local app settings Pilih Akun Penyimpanan yang ditulis fungsi Anda sebagai output. Visual Studio Code mengambil string koneksi untuk koneksi proyek lokal.

Untuk memeriksa pengikatan berhasil ditambahkan:

  1. TableStorageOutputFunc/function.json Buka file, periksa apakah pengikatan baru dengan type: table dan direction: out ditambahkan ke dalam file ini.
  2. local.settings.json Buka file, periksa apakah pasangan <your-storage-account-name>_STORAGE: <your-storage-account-connection-string> kunci-nilai baru yang berisi akun penyimpanan Anda string koneksi ditambahkan ke dalam file ini.

Setelah pengikatan ditambahkan, perbarui kode fungsi Anda untuk menggunakan pengikatan dengan mengganti TableStorageOutputFunc/__init__.py dengan file Python di sini.

import logging
import uuid
import json
import azure.functions as func

def main(req: func.HttpRequest, outMessage: func.Out[str]) -> func.HttpResponse:

    rowKey = str(uuid.uuid4())
    data = {
        "Name": "Output binding message",
        "PartitionKey": "message",
        "RowKey": rowKey
    }

    outMessage.set(json.dumps(data))
    return func.HttpResponse(f"Message created with the rowKey: {rowKey}")

Jalankan fungsi secara lokal

Ikuti tutorial untuk menjalankan fungsi secara lokal dan memverifikasi output tabel.

  1. Pilih Akun Penyimpanan yang Anda pilih saat membuat sumber daya Azure Function jika Anda diminta untuk menyambungkan ke akun penyimpanan. Nilai ini digunakan untuk runtime Azure Function. Ini belum tentu akun penyimpanan yang sama dengan yang Anda gunakan untuk output.
  2. Untuk memulai fungsi secara lokal, tekan <kbd>F5 </kbd> atau pilih ikon Jalankan dan Debug di bilah Aktivitas sisi kiri.
  3. Untuk memverifikasi fungsi dapat menulis ke tabel Anda, klik Execute Function Now... kanan pada fungsi dalam tampilan VISUAL Studio Code WORKSPACE dan periksa respons fungsi. Pesan respons harus berisi rowKey yang ditulis ke tabel.

Membuat koneksi menggunakan Konektor Layanan

Pada langkah terakhir, Anda memverifikasi proyek fungsi secara lokal. Sekarang Anda akan mempelajari cara mengonfigurasi koneksi antara Azure Function dan Azure Storage Table di cloud, sehingga fungsi Anda dapat menulis ke blob penyimpanan Anda setelah disebarkan ke cloud.

  1. function.json Buka file di proyek lokal Anda, ubah nilai connection properti bindings menjadi AZURE_STORAGETABLE_CONNECTIONSTRING.
  2. Jalankan perintah Azure CLI berikut untuk membuat koneksi antara Azure Function dan Azure Storage Anda.
az functionapp connection create storage-table --source-id "<your-function-resource-id>" --target-id "<your-storage-table-resource-id>" --secret
  • --source-id format: /subscriptions/{subscription}/resourceGroups/{source_resource_group}/providers/Microsoft.Web/sites/{site}
  • --target-id format: /subscriptions/{subscription}/resourceGroups/{target_resource_group}/providers/Microsoft.Storage/storageAccounts/{account}/tableServices/default

Anda telah membuat sumber daya Konektor Layanan yang mengonfigurasi AZURE_STORAGETABLE_CONNECTIONSTRING variabel di Pengaturan Aplikasi fungsi. Pengaturan aplikasi ini kemudian akan digunakan oleh pengikatan fungsi untuk terhubung ke penyimpanan, sehingga fungsi dapat menulis ke tabel penyimpanan. Anda dapat mempelajari selengkapnya tentang bagaimana Konektor Layanan membantu Azure Functions tersambung ke layanan.

Menyebarkan fungsi Anda ke Azure

Sekarang Anda dapat menyebarkan fungsi Anda ke Azure dan memverifikasi pekerjaan pengikatan output tabel penyimpanan.

  1. Ikuti tutorial Azure Functions ini untuk menyebarkan fungsi Anda ke Azure.
  2. Untuk memverifikasi fungsi dapat menulis ke tabel, klik Execute Function Now... kanan pada fungsi dalam tampilan Sumber Daya Visual Studio Code, dan periksa respons fungsi. Pesan respons harus berisi fungsi yang rowKey baru saja ditulis ke tabel Anda.

Pecahkan masalah

Jika ada kesalahan yang terkait dengan host penyimpanan, seperti No such host is known (<account-name>.table.core.windows.net:443), Anda perlu memeriksa apakah string koneksi yang Anda gunakan untuk menyambungkan ke Azure Storage berisi titik akhir tabel atau tidak. Jika tidak, buka portal Microsoft Azure Storage, salin string koneksi dari bilahAccess keys, dan ganti nilai.

Jika kesalahan ini terjadi saat Anda memulai proyek secara lokal, periksa local.settings.json file.

Jika itu terjadi saat Anda menyebarkan fungsi Anda ke cloud (dalam hal ini, penyebaran Fungsi biasanya gagal ), Syncing triggers periksa Pengaturan Aplikasi Fungsi Anda.

Membersihkan sumber daya

Jika Anda tidak akan terus menggunakan proyek ini, hapus sumber daya Aplikasi Fungsi yang Anda buat sebelumnya.

  1. Di portal Azure, buka sumber daya Aplikasi Fungsi dan pilih Hapus.
  2. Masukkan nama aplikasi dan pilih Hapus untuk mengonfirmasi.

Langkah berikutnya

Baca artikel di bawah ini untuk mempelajari selengkapnya tentang konsep Konektor Layanan dan caranya membantu Azure Functions terhubung ke layanan cloud lainnya.