Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Untuk memanggil item fungsi data Fabric User dari aplikasi konsol di Python, Anda dapat mengirim permintaan HTTP ke titik akhir fungsi yang perlu dijalankan. Dalam mulai cepat ini, Anda mempelajari cara menyiapkan aplikasi Python menggunakan Visual Studio Code.
Prasyarat
- Instal Visual Studio Code.
- Unduh Python 3.1 di komputer lokal Anda.
- Buat akun Microsoft Fabric secara gratis jika Anda tidak memilikinya.
- Membuat ruang kerja.
- Buat item fungsi data pengguna dan terbitkan. Periksa artikel ini tentang cara membuatnya di Visual Studio Code atau cara membuatnya di portal. Terbitkan perubahan sehingga item fungsi data pengguna siap untuk dipanggil.
Membuat aplikasi Microsoft Entra
Langkah-langkah berikut menjelaskan cara mengonfigurasi dukungan untuk aplikasi ReactJS di Microsoft Entra.
Daftarkan aplikasi menggunakan langkah-langkah yang dijelaskan pada Panduan Memulai Cepat : Daftarkan aplikasi dengan platform identitas Microsoft.
Nilai ID Aplikasi Microsoft Entra (klien) dan ID Direktori (penyewa) muncul di kotak Ringkasan. Rekam nilai-nilai ini karena diperlukan nanti.
Di bawah daftar Kelola
, pilih izin API , lalu Tambahkan izin .Tambahkan Layanan PowerBI, pilih Izin yang didelegasikan, dan pilih UserDataFunction.Execute.All atau item. Izin Execute.All . Konfirmasikan bahwa persetujuan admin tidak diperlukan.
Kembali ke pengaturan Kelola dan pilih Autentikasi> Tambahkanaplikasi satu halaman>.
Untuk tujuan pengembangan lokal, tambahkan
http://localhost:3000di bawah URI Pengalihan dan konfirmasikan bahwa aplikasi diaktifkan untuk alur kode otorisasi dengan Proof Key for Code Exchange (PKCE). Pilih tombol Konfigurasi untuk menyimpan perubahan Anda. Jika aplikasi mengalami kesalahan yang terkait dengan permintaan lintas asal, tambahkan platform Aplikasi seluler dan desktop di langkah sebelumnya dengan URI pengalihan yang sama.Kembali ke Autentikasi, gulir ke bawah ke Pengaturan Tingkat Lanjut dan, di bawah Izinkan alur klien publik, pilih Ya untuk Mengaktifkan alur seluler dan desktop berikut.
Membuat aplikasi konsol
Fungsi harus dapat diakses publik. Di penjelajah Fungsi, arahkan mouse ke atas nama fungsi dan pilih ikon elipsis (...) yang muncul, lalu pilih properti. Di panel properti yang terbuka, aktifkan Akses publik. Anda juga harus mencatat URL Publik untuk digunakan dalam aplikasi Python Anda.
Buat folder baru untuk aplikasi Python anda, misalnya my-data-app. Buka folder di Visual Studio Code.
Siapkan lingkungan virtual Python di Visual Studio Code. Untuk membuat lingkungan lokal di Visual Studio Code, buka palet Perintah dengan Ctrl+Shift+P, lalu cari dan pilih perintah Python: Create Environment.
- Perintah menyajikan daftar jenis lingkungan dan memilih venv.
- Pilih versi interpreter Python Python 3.11.
Jalankan perintah berikut untuk mengaktifkan lingkungan virtual di terminal Visual Studio Code.
venv\Scripts\activate.batSelanjutnya, jalankan perintah untuk menginstal pustaka Python yang diperlukan untuk contoh ini.
pip install azure-identity, requestsBuat
app.pyfile dan gunakan kode untuk memanggil item fungsi data pengguna.from azure.identity import InteractiveBrowserCredential import requests import json # Acquire a token # DO NOT USE IN PRODUCTION. # Below code to acquire token is to test the User data function endpoint and is for the purpose of development only. # For production, always register an application in a Microsoft Entra ID tenant and use the appropriate client_id and scopes. app = InteractiveBrowserCredential() scp = 'https://analysis.windows.net/powerbi/api/user_impersonation' result = app.get_token(scp) if not result.token: print('Error:', "Could not get access token") # Prepare headers headers = { 'Authorization': f'Bearer {result.token}', 'Content-Type': 'application/json' } FUNCTION_URL = '<REPLACE WITH USER DATA FUNCTION URL>' # Prepare the request data data = '{"name": "John"}' # JSON payload to send to the Azure Function headers = { # "Authorization": f"Bearer {access_token}", "Content-Type": "application/json" } try: # Call the user data function public URL response = requests.post(FUNCTION_URL, json=data, headers=headers) response.raise_for_status() print(json.dumps(response.json())) except Exception as e: print({"error": str(e)}, 500) if __name__ == "__main__": app.run(debug=True)Nota
Contohnya untuk tujuan pengembangan saja. Perbarui aplikasi untuk menggunakan autentikasi ID Microsoft Entra sebelum menggunakan aplikasi untuk kasus penggunaan produksi.
Memanggil fungsi dari aplikasi eksternal
Fungsi dapat dipanggil dengan mengeluarkan panggilan REST ke URL titik akhir. Pilih fungsi yang ingin Anda gunakan di penjelajah Fungsi dan pilih Salin URL Fungsi. Anda juga dapat mengaktifkan atau menonaktifkan penggunaan URL ini secara eksternal dari menu Properties.
Kemudian, gunakan URL ini di aplikasi Anda untuk memanggil fungsi . Lihat Memanggil fungsi data pengguna dari aplikasi
Skema keluaran
Saat memanggil Fungsi Data Pengguna dari aplikasi eksternal, skema output akan memiliki format berikut:
{
"functionName": "hello_fabric",
"invocationId": "1234567890",
"status": "Succeeded | BadRequest | Failed | Timeout | ResponseTooLarge",
"output": /*shows the result of the function dependeing on the output type*/,
"errors": [
{
"name": "Error name",
"message": "Error message",
"properties": {
/*Key value pairs custom to error*/
}
},
]
}
Properti berikut dikembalikan:
- functionName: Nama fungsi yang dijalankan.
- invocationId: ID pemanggilan untuk eksekusi fungsi.
-
status: Hasil eksekusi fungsi dan nilai yang didukung adalah
Succeeded, ,BadRequestFailed,TimeoutdanResponseTooLarge. - keluaran: Nilai keluaran yang dikembalikan oleh fungsi.
- kesalahan: Jika ada kesalahan yang tercatat, ini akan mengembalikan daftar setiap kesalahan dengan nama, pesan kesalahan, dan properti kesalahan mereka.
Kode respons
Fungsi ini akan mengembalikan kode HTTP berikut sebagai hasil dari eksekusi.
| Kode respons | Pesan | Deskripsi |
|---|---|---|
| 200 | Keberhasilan | Permintaan berhasil. |
| 400 | Permintaan Tidak Valid | Permintaan tidak valid. Respons ini bisa disebabkan oleh nilai parameter input, jenis data, atau nama yang hilang atau salah. Respons ini juga dapat disebabkan oleh akses publik yang dinonaktifkan untuk fungsi. |
| 403 | Dilarang | Respons terlalu besar dan pemanggilan gagal. |
| 408 | Batas Waktu Permintaan | Permintaan gagal karena eksekusi membutuhkan waktu lebih dari 200 detik. |
| 409 | Konflik | Permintaan tidak dapat diselesaikan karena status yang bertentangan. Ini dapat disebabkan oleh pengecualian yang tidak tertangani atau kesalahan dengan kredensial pengguna. |
| 422 | Permintaan Tidak Valid | Permintaan gagal karena UserThrownError yang dilemparkan dalam fungsi. |
| 500 | Kesalahan Server Internal | Permintaan gagal karena kesalahan internal dalam layanan. |
Penelusuran kesalahan dan pengujian
Debug aplikasi di Visual Studio Code menggunakan debugger python. Tambahkan titik henti jika diperlukan untuk men-debug jika ada masalah. Pelajari lebih lanjut
Langkah berikutnya
- Membuat fungsi data pengguna
- Contoh fungsi data pengguna