Bagikan melalui


Tutorial: Fungsi Python dengan Azure Blob Storage sebagai input

Dalam tutorial ini, Anda mempelajari cara mengonfigurasi fungsi Python dengan penyimpanan Azure Blob sebagai input dengan menyelesaikan tugas-tugas berikut:

  • Gunakan Visual Studio Code untuk membuat proyek fungsi Python.
  • Ubah kode untuk menambahkan pengikatan fungsi input blob penyimpanan.
  • Gunakan Visual Studio Code untuk menjalankan fungsi secara lokal.
  • Gunakan Azure CLI untuk membuat koneksi antara Azure Function dan Storage Blob 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 Azure Storage Blob
Pengikatan Fungsi Pemicu HTTP, Blob Penyimpanan sebagai Input
Jenis Autentikasi Proyek Lokal String Koneksi
Jenis Autentikasi Fungsi Cloud Identitas Terkelola yang Ditetapkan Sistem

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 BlobStorageInputFunc.
Tingkat otorisasi Pilih Anonymous, yang memungkinkan siapa saja memanggil titik akhir fungsi Anda. 

Anda telah membuat proyek fungsi Python dengan pemicu HTTP.

Menambahkan pengikatan input Blob Storage

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 in Pengikatan adalah pengikatan input.
Pilih pengikatan dengan arah... Azure Blob Storage Pengikatan adalah pengikatan blob Azure Storage.
Nama yang digunakan untuk mengidentifikasi pengikatan ini dalam kode Anda inputBlob Nama yang mengidentifikasi parameter pengikatan yang direferensikan dalam kode Anda.
Jalur dalam akun penyimpanan Anda tempat blob akan dibaca testcontainer/test.txt Jalur blob yang dibaca fungsi Anda sebagai input. Siapkan file bernama test.txt, dengan sebagai Hello, World! konten file. Buat kontainer bernama testcontainer , dan unggah file ke kontainer.
Pilih pengaturan dari "local.setting.json" Create new local app settings Pilih Akun Penyimpanan yang dibaca fungsi Anda sebagai input. Visual Studio Code mengambil string koneksi untuk koneksi proyek lokal.

Untuk memeriksa pengikatan berhasil ditambahkan,

  1. BlobStorageInputFunc/function.json Buka file, periksa apakah pengikatan baru dengan type: blob dan direction: in 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 BlobStorageInputFunc/__init__.py dengan file Python di sini.

import logging
import azure.functions as func

def main(req: func.HttpRequest, inputBlob: bytes) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')
    return func.HttpResponse('The triggered function executed successfully. And read blob content: {}'.format(inputBlob))

Jalankan fungsi secara lokal

Ikuti tutorial untuk menjalankan fungsi secara lokal dan memverifikasi input blob.

  1. Pilih akun penyimpanan yang Anda gunakan saat membuat sumber daya Azure Function jika Anda diminta untuk menyambungkan ke Storage. Ini untuk penggunaan internal runtime Azure Function, dan tidak selalu sama dengan yang Anda gunakan untuk input.
  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 membaca blob, klik Execute Function Now... kanan pada fungsi di VISUAL Studio Code WORKSPACE dan periksa respons fungsi. Pesan respons harus berisi konten dalam file blob Anda.

Membuat koneksi menggunakan Konektor Layanan

Anda baru saja menjalankan proyek dan memverifikasi fungsi secara lokal, dan proyek lokal Anda terhubung ke blob penyimpanan Anda menggunakan string koneksi.

Sekarang Anda akan mempelajari cara mengonfigurasi koneksi antara Azure Function dan Azure Blob Storage, sehingga fungsi Anda dapat membaca blob setelah disebarkan ke cloud. Di lingkungan cloud, kami menunjukkan cara mengautentikasi menggunakan identitas terkelola yang ditetapkan sistem.

  1. function.json Buka file di proyek lokal Anda, ubah nilai connection properti bindings menjadi MyBlobInputConnection.
  2. Jalankan perintah Azure CLI berikut untuk membuat koneksi antara Azure Function dan Azure Storage Anda.
az functionapp connection create storage-blob --source-id "<your-function-resource-id>" --target-id "<your-storage-blob-resource-id>" --system-identity --customized-keys AZURE_STORAGEBLOB_RESOURCEENDPOINT=MyBlobInputConnection__serviceUri
  • --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}/blobServices/default

Anda telah membuat koneksi antara Azure Function dan Azure Blob Storage menggunakan Konektor Layanan, dengan identitas terkelola yang ditetapkan sistem.

Konektor Layanan mengonfigurasi MyBlobInputConnection__serviceUri variabel dalam pengaturan aplikasi fungsi yang digunakan oleh runtime pengikatan fungsi untuk menyambungkan ke penyimpanan, sehingga fungsi dapat membaca data dari penyimpanan blob. 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 input blob penyimpanan.

  1. Ikuti tutorial untuk menyebarkan fungsi Anda ke Azure.
  2. Untuk memverifikasi fungsi dapat membaca blob, klik Execute Function Now... kanan pada fungsi dalam tampilan Sumber Daya Visual Studio Code dan periksa respons fungsi. Pesan respons harus berisi konten dalam file blob Anda.

Pecahkan masalah

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

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

Jika kesalahan 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.