Bagikan melalui


Mengkustomisasi titik akhir HTTP di Azure Functions

Dalam artikel ini, Anda mempelajari cara membuat API yang sangat dapat diskalakan dengan Azure Functions dengan menyesuaikan pemicu HTTP untuk menangani tindakan tertentu dalam desain API Anda. Azure Functions menyertakan kumpulan pemicu dan pengikatan HTTP bawaan, yang memudahkan penulisan titik akhir dalam berbagai bahasa, termasuk Node.js, C#, dan banyak lagi. Anda juga bersiap untuk menumbuhkan API Anda dengan mengintegrasikannya dengan proksi Azure Functions dan menyiapkan API tiruan. Karena tugas-tugas ini dicapai di atas lingkungan komputasi tanpa server Functions, Anda tidak perlu khawatir tentang penskalaan sumber daya. Sebagai gantinya, Anda hanya dapat fokus pada logika API Anda.

Penting

Proksi Azure Functions adalah fitur warisan untuk versi 1.x hingga 3.x dari runtime Azure Functions. Dukungan untuk proksi dapat diaktifkan kembali di versi 4.x agar Anda berhasil meningkatkan aplikasi fungsi ke versi runtime terbaru. Sesegera mungkin, Anda harus beralih untuk mengintegrasikan aplikasi fungsi Anda dengan Azure API Management. Azure API Management memungkinkan Anda memanfaatkan serangkaian fitur yang lebih lengkap untuk menentukan, mengamankan, mengelola, dan memonetisasi API berbasis Functions Anda. Untuk informasi selengkapnya, lihat Integrasi API Management.

Untuk mempelajari cara mengaktifkan kembali dukungan proksi di Functions versi 4.x, lihat Mengaktifkan kembali proksi di Functions v4.x.

Prasyarat

  • Alat uji HTTP yang menjaga keamanan data Anda. Untuk informasi selengkapnya, lihat Alat pengujian HTTP.

Artikel ini menggunakan sebagai titik awal sumber daya yang dibuat di Membuat fungsi pertama Anda di portal Azure. Jika Anda belum melakukannya, selesaikan langkah-langkah ini sekarang untuk membuat aplikasi fungsi Anda.

Setelah membuat aplikasi fungsi ini, Anda dapat mengikuti prosedur dalam artikel ini.

Masuk ke Azure

Masuk ke portal Azure dengan akun Azure Anda.

Kustomisasi fungsi HTTP Anda

Secara default, Anda mengonfigurasi fungsi pemicu HTTP untuk menerima metode HTTP apa pun. Di bagian ini, Anda mengubah fungsi untuk menanggapi permintaan GET dengan /api/hello saja. Anda dapat menggunakan URL default, https://<yourapp>.azurewebsites.net/api/<funcname>?code=<functionkey>:

  1. Navigasi ke fungsi Anda di portal Microsoft Azure. Pilih Integrasi di menu sebelah kiri, lalu pilih HTTP (req) di bawah Pemicu.

    Cuplikan layar yang memperlihatkan cara mengedit pengaturan pemicu HTTP fungsi.

  2. Gunakan pengaturan pemicu HTTP seperti yang ditentukan dalam tabel berikut.

    Bidang Sampel nilai Deskripsi
    Templat rute halo Menentukan rute apa yang digunakan untuk memanggil fungsi ini
    Tingkat otorisasi Anonim Opsional: Membuat fungsi Anda terakses tanpa kunci API
    Metode HTTP yang dipilih GET Hanya mengizinkan metode HTTP terpilih yang digunakan untuk memanggil fungsi ini

    Karena pengaturan global menangani /api awalan jalur dasar dalam templat rute, Anda tidak perlu mengaturnya di sini.

  3. Pilih Simpan.

Untuk informasi selengkapnya tentang menyesuaikan fungsi HTTP, lihat Gambaran umum pemicu dan pengikatan HTTP Azure Functions.

Uji API Anda

Selanjutnya, uji fungsi Anda untuk melihat cara kerjanya dengan permukaan API baru:

  1. Pada halaman Fungsi , pilih Kode + Uji dari menu sebelah kiri.

  2. Pilih Dapatkan URL fungsi dari menu atas dan salin URL. Konfirmasikan bahwa fungsi Anda sekarang menggunakan /api/hello jalur .

  3. Salin URL ke tab browser baru atau klien REST pilihan Anda. Browser menggunakan GET secara default.

  4. Tambahkan parameter ke untai (karakter) kueri di URL Anda. Contohnya,/api/hello/?name=John.

  5. Tekan Enter untuk mengonfirmasi bahwa fungsi Anda berfungsi. Anda harus melihat tanggapan, "Hello John."

  6. Anda juga dapat memanggil titik akhir dengan metode HTTP lain untuk mengonfirmasi bahwa fungsi tidak dijalankan. Untuk metode HTTP selain GET, Anda perlu menggunakan alat uji HTTP yang aman.

Ikhtisar proksi

Di bagian berikutnya, Anda memunculkan API melalui proksi. Proksi Azure Functions memungkinkan Anda meneruskan permintaan ke sumber daya lain. Anda menentukan titik akhir HTTP seperti yang Anda lakukan dengan pemicu HTTP. Namun, alih-alih menulis kode untuk dieksekusi saat titik akhir itu dipanggil, Anda memberikan URL ke implementasi jarak jauh. Melakukannya memungkinkan Anda menyusun beberapa sumber API ke dalam satu permukaan API, yang lebih mudah dikonsumsi klien, dan berguna jika Anda ingin membangun API Anda sebagai layanan mikro.

Proksi dapat menunjuk ke sumber daya HTTP mana pun, seperti:

Untuk mempelajari selengkapnya tentang proksi Azure Functions, lihat [Bekerja dengan proksi warisan].

Catatan

Proksi Azure Functions tersedia di Azure Functions versi 1.x hingga 3.x.

Buat proksi pertama Anda

Pada bagian ini, Anda membuat proxy baru yang berfungsi sebagai frontend ke API Anda secara keseluruhan.

Menyiapkan lingkungan frontend

Ulangi langkah-langkah dalam Membuat aplikasi fungsi untuk membuat aplikasi fungsi baru tempat Anda membuat proksi. URL aplikasi baru ini berfungsi sebagai frontend untuk API kami, dan aplikasi fungsi yang sebelumnya Anda edit berfungsi sebagai backend:

  1. Navigasi ke aplikasi fungsi frontend baru Anda di portal.

  2. Perluas Pengaturan, lalu pilih Variabel lingkungan.

  3. Pilih tab Pengaturan aplikasi, tempat pasangan kunci/nilai disimpan.

  4. Pilih + Tambahkan untuk membuat pengaturan baru. Masukkan HELLO_HOST untuk Namanya dan atur Nilainya ke host aplikasi fungsi backend Anda, seperti <YourBackendApp>.azurewebsites.net.

    Nilai ini adalah bagian dari URL yang Anda salin sebelumnya ketika Anda menguji fungsi HTTP Anda. Anda kemudian mereferensikan pengaturan ini dalam konfigurasi.

    Catatan

    Disarankan agar Anda menggunakan pengaturan aplikasi untuk konfigurasi host untuk mencegah dependensi lingkungan yang dikodekan secara permanen untuk proksi. Menggunakan pengaturan aplikasi berarti Anda dapat memindahkan konfigurasi proksi antar lingkungan, dan pengaturan aplikasi khusus lingkungan akan diterapkan.

  5. Pilih Terapkan untuk menyimpan pengaturan baru. Pada tab Pengaturan aplikasi, pilih Terapkan, lalu pilih Konfirmasi untuk memulai ulang aplikasi fungsi.

Membuat proksi di frontend

  1. Navigasi kembali ke aplikasi fungsi front-end Anda di portal.

  2. Di menu sebelah kiri, perluas Fungsi, pilih Proksi, lalu pilih Tambahkan.

  3. Pada halaman Proksi baru, gunakan pengaturan dalam tabel berikut ini, lalu pilih Buat.

    Bidang Sampel nilai Deskripsi
    Nama HelloProxy Nama bersahabat yang hanya digunakan untuk manajemen
    Templat rute /api/remotehello Menentukan rute mana yang digunakan untuk memanggil fungsi ini
    URL backend https://%HELLO_HOST%/api/hello Menentukan titik akhir tempat permintaan harus diproksi

    Cuplikan layar yang memperlihatkan pengaturan di halaman Proksi baru.

    Karena proksi Azure Functions tidak menyediakan awalan /api jalur dasar, Anda harus menyertakannya dalam templat rute. Sintaks %HELLO_HOST% mereferensikan pengaturan aplikasi yang Anda buat sebelumnya. URL yang diselesaikan menunjuk ke fungsi asli Anda.

  4. Anda dapat mencoba proksi baru Anda dengan menyalin URL Proksi dan mengujinya di browser atau dengan klien HTTP favorit Anda:

    • Untuk fungsi anonim, gunakan: https://YOURPROXYAPP.azurewebsites.net/api/remotehello?name="Proxies".
    • Untuk fungsi dengan otorisasi, gunakan: https://YOURPROXYAPP.azurewebsites.net/api/remotehello?code=YOURCODE&name="Proxies".

Membuat API tiruan

Selanjutnya, Anda menggunakan proksi untuk membuat API tiruan untuk solusi Anda. Proksi ini memungkinkan pengembangan klien untuk maju, tanpa perlu mengimplementasikan backend sepenuhnya. Nantinya dalam pengembangan, Anda dapat membuat aplikasi fungsi baru yang mendukung logika ini, dan mengalihkan proksi Anda ke aplikasi tersebut:

  1. Untuk membuat API tiruan ini, buat proksi baru, kali ini menggunakan Editor App Service. Untuk memulai, navigasikan ke aplikasi fungsi Anda di portal Azure. Pilih Fitur platform, lalu pilih Editor App Service di bawah Alat Pengembangan.

    Editor App Service terbuka di tab baru.

  2. Pilih proxies.json di panel kiri. File ini menyimpan konfigurasi untuk semua proksi Anda. Jika Anda menggunakan salah satu Metode penyebaran Functions, Anda mempertahankan file ini dalam kontrol sumber. Untuk informasi selengkapnya tentang file ini, lihat Konfigurasi tingkat lanjut Proksi.

    File proxies.json Anda akan muncul sebagai berikut:

    {
        "$schema": "http://json.schemastore.org/proxies",
        "proxies": {
            "HelloProxy": {
                "matchCondition": {
                    "route": "/api/remotehello"
                },
                "backendUri": "https://%HELLO_HOST%/api/hello"
            }
        }
    }
    
  3. Tambahkan API tiruan Anda. Ganti file proxies.json Anda dengan kode berikut:

    {
        "$schema": "http://json.schemastore.org/proxies",
        "proxies": {
            "HelloProxy": {
                "matchCondition": {
                    "route": "/api/remotehello"
                },
                "backendUri": "https://%HELLO_HOST%/api/hello"
            },
            "GetUserByName" : {
                "matchCondition": {
                    "methods": [ "GET" ],
                    "route": "/api/users/{username}"
                },
                "responseOverrides": {
                    "response.statusCode": "200",
                    "response.headers.Content-Type" : "application/json",
                    "response.body": {
                        "name": "{username}",
                        "description": "Awesome developer and master of serverless APIs",
                        "skills": [
                            "Serverless",
                            "APIs",
                            "Azure",
                            "Cloud"
                        ]
                    }
                }
            }
        }
    }
    

    Kode ini menambahkan proksi baru, GetUserByName, yang menghilangkan backendUri properti . Alih-alih memanggil sumber daya lain, sumber daya tersebut memodifikasi respons default dari proksi Azure Functions dengan menggunakan penimpaan respons. Anda juga dapat menggunakan penimpaan permintaan dan respons dengan URL backend. Teknik ini berguna saat Anda melakukan proksi ke sistem warisan, di mana Anda mungkin perlu memodifikasi header, parameter kueri, dan sebagainya. Untuk informasi selengkapnya tentang penimpaan permintaan dan respons, lihat Mengubah permintaan dan respons.

  4. Uji API tiruan Anda dengan memanggil <YourProxyApp>.azurewebsites.net/api/users/{username} titik akhir dengan browser atau klien REST favorit Anda. Ganti {username} dengan nilai string yang mewakili nama pengguna.

Dalam artikel ini, Anda mempelajari cara membangun dan mengkustomisasi API dengan Azure Functions. Anda juga mempelajari cara membawa beberapa API, termasuk API tiruan, bersama-sama sebagai permukaan API terpadu. Anda dapat menggunakan teknik dalam tutorial ini untuk membangun API dari kompleksitas apa pun sambil berjalan pada model komputasi tanpa server yang disediakan oleh Azure Functions.

Untuk informasi selengkapnya tentang mengembangkan API Anda: