Latihan - Membuat proyek Azure Functions
Aplikasi web daftar belanja Anda memerlukan API. Dalam latihan ini, Anda membuat dan menjalankan API menggunakan proyek Azure Functions. Dari sana, Anda memperluas API dengan fungsi baru menggunakan ekstensi Azure Functions untuk Visual Studio Code.
Dalam latihan ini, Anda menyelesaikan langkah-langkah berikut:
- Buat cabang saat Anda bersiap untuk membuat perubahan pada aplikasi web Anda.
- Jelajahi proyek Azure Function.
- Buat fungsi HTTP GET.
- Gantikan kode awal fungsi dengan logika untuk mendapatkan produk.
- Konfigurasikan aplikasi web untuk mem-proksi permintaan HTTP ke API.
- Jalankan API dan aplikasi web.
Dapatkan aplikasi fungsi
Sekarang, tambahkan API dan sambungkan ke aplikasi front-end Anda. Folder api-starter mencakup proyek Azure Functions yang tidak lengkap. Jadi, mari kita lengkapi itu sekarang.
Membuat cabang API
Sebelum membuat perubahan pada aplikasi, ada baiknya membuat cabang baru untuk perubahan. Anda akan menyelesaikan API untuk aplikasi Anda, jadi sekarang saat yang tepat untuk membuat cabang.
Di Visual Studio Code, buka palet perintah dengan menekan F1.
Masukkan dan pilih Git: Checkout ke....
Pilih Buat cabang baru.
Masukkan api untuk nama cabang baru, dan tekan Enter.
Anda baru saja membuat cabang git api.
Menyelesaikan API Azure Functions
Untuk menyelesaikan API, mulailah dengan memindahkan kode API pemula ke folder bernama api. Anda memasukkan nama folder ini untuk api_location saat membuat instans Static Web Apps.
Di Visual Studio Code, buka palet perintah dengan menekan F1.
Masukkan dan pilih Terminal : Buat Terminal Baru (Di Ruang Kerja Aktif).
Pastikan Anda berada di folder akar proyek.
Jalankan perintah git berikut untuk mengganti nama folder api-starter menjadi api .
git mv api-starter api
Buka palet perintah dengan menekan F1.
Masukkan dan pilih Git: Terapkan Semua.
Masukkan pesan komit api dan tekan Enter.
Sekarang, Anda akan melihat folder api di penjelajah Visual Studio Code. Folder api berisi proyek Azure Functions Anda, bersama dengan tiga fungsi.
Folder dan file | Metode | Rute |
---|---|---|
api/products-post | TIANG | products |
api/products-put | MELETAKKAN | products/:id |
api/products-delete | MENGHAPUS | products/:id |
Membuat fungsi HTTP GET
API Anda memiliki rute untuk memanipulasi produk untuk daftar belanja, tetapi tidak memiliki rute untuk mendapatkan produk. Mari kita tambahkan itu sekarang.
Menginstal ekstensi Azure Functions untuk Visual Studio Code
Anda dapat membuat dan mengelola aplikasi Azure Functions dengan menggunakan ekstensi Azure Functions untuk Visual Studio Code.
Buka Visual Studio Marketplace, dan instal ekstensi Azure Functions untuk Visual Studio Code.
Saat tab ekstensi dimuat di Visual Studio Code, pilih Instal.
Setelah penginstalan selesai, pilih Muat Ulang.
Nota
Pastikan untuk menginstal Azure Functions Core Tools, yang memungkinkan Anda menjalankan Azure Functions secara lokal.
Membuat fungsi
Sekarang Anda memperluas aplikasi Azure Function dengan fungsi untuk mendapatkan produk Anda.
Di Visual Studio Code, buka palet perintah dengan menekan F1.
Masukkan dan pilih Azure Functions: Buat Fungsi.
Ketika diminta untuk membuat fungsi, pilih Pemicu HTTP.
Masukkan products-get sebagai nama fungsi.
Pilih Anonim sebagai tingkat autentikasi.
Nota
Aplikasi Functions berada di folder api, yang memisahkannya dari proyek aplikasi web individual. Semua aplikasi web yang menggunakan kerangka kerja front-end melakukan panggilan ke API yang sama. Anda dapat memutuskan cara menyusun aplikasi Anda, tetapi untuk sampel ini akan membantu jika melihatnya terpisah.
Mengonfigurasi Metode HTTP dan titik akhir rute
Perhatikan folder api/products-get berisi file function.json. File ini berisi konfigurasi untuk fungsi Anda.
Titik akhir rute memiliki nama yang sama dengan folder yang berisi fungsi, menurut konvensi. Karena fungsi dibuat di folder products-get, titik akhir rute dihasilkan sebagai products-get, secara default. Namun, Anda ingin titik akhir menjadi produk.
Konfigurasikan fungsi Anda:
Buka file api/products-get/function.json.
Perhatikan bahwa metode tersebut memungkinkan
GET
danPOST
.Ubah array metode untuk hanya mengizinkan permintaan
GET
.Tambahkan entri
"route": "products"
setelah array metode.
Sekarang fungsi Anda dipicu pada permintaan HTTP GET
untuk produk.
function.json Anda akan terlihat seperti kode berikut:
{
"bindings": [
{
"authLevel": "anonymous",
"type": "httpTrigger",
"direction": "in",
"name": "req",
"methods": ["get"],
"route": "products"
},
{
"type": "http",
"direction": "out",
"name": "res"
}
]
}
Memperbarui logika fungsi
File index.js di folder api/products-get berisi logika yang berjalan saat Anda membuat permintaan HTTP ke rute.
Anda perlu memperbarui logika untuk mendapatkan produk Anda. Ada logika akses data dalam modul JavaScript /shared/product-data.js. Modul product-data
mengekspos fungsi getProducts
untuk mendapatkan produk untuk daftar belanja.
Sekarang, ubah titik akhir fungsi untuk mengembalikan produk:
Buka file api/products-get/index.js.
Ganti kontennya dengan kode berikut:
const data = require('../shared/product-data'); module.exports = async function (context, req) { try { const products = data.getProducts(); context.res.status(200).json(products); } catch (error) { context.res.status(500).send(error); } };
Fungsi Anda mendapatkan produk dan mengembalikannya dengan kode status 200, jika berhasil.
Konfigurasi Berbagi Sumber Daya Lintas Asal (CORS) secara lokal
Anda tidak perlu khawatir tentang CORS saat menerbitkan ke Azure Static Web Apps. Azure Static Web Apps secara otomatis mengonfigurasi aplikasi Anda sehingga dapat berkomunikasi dengan API Anda di Azure menggunakan proksi terbalik. Tetapi saat berjalan secara lokal, Anda perlu mengonfigurasi CORS untuk memungkinkan aplikasi web dan API Anda berkomunikasi.
Sekarang, beri tahu Azure Functions untuk mengizinkan aplikasi web Anda membuat permintaan HTTP ke API, di komputer Anda.
Buat file bernama api/local.settings.json.
Tambahkan konten berikut ke file:
{ "Host": { "CORS": "http://localhost:4200" } }
{ "Host": { "CORS": "http://localhost:3000" } }
{ "Host": { "CORS": "http://localhost:5000" } }
{ "Host": { "CORS": "http://localhost:8080" } }
Nota
File local.settings.json tercantum dalam file .gitignore, yang mencegah file ini didorong ke GitHub. Ini karena Anda dapat menyimpan rahasia dalam file ini yang tidak Anda inginkan di GitHub. Inilah sebabnya mengapa Anda harus membuat file saat membuat repositori dari templat.
Menjalankan API
Sekarang saatnya untuk menonton aplikasi web anda dan proyek Azure Functions bekerja sama. Mulailah dengan menjalankan proyek Azure Functions Anda secara lokal dengan mengikuti langkah-langkah berikut:
Nota
Pastikan untuk menginstal Azure Functions Core Tools, yang memungkinkan Anda menjalankan Azure Functions secara lokal.
Buka terminal git dan buka folder api:
cd api
Jalankan aplikasi Azure Functions secara lokal:
npm install
npm start
Menjalankan aplikasi web
API Anda sedang berjalan. Sekarang Anda perlu mengonfigurasi aplikasi front-end Anda untuk membuat permintaan HTTP-nya ke API Anda. Aplikasi front-end berjalan pada satu port, dan API berjalan pada port yang berbeda (7071). Setiap kerangka kerja front-end dapat dikonfigurasi untuk memproksi permintaan HTTP ke port dengan aman.
Konfigurasikan port proksi Anda
Konfigurasikan proksi untuk aplikasi front-end Anda dengan langkah-langkah berikut:
Buka file angular-app/proxy.conf.json.
Temukan pengaturan
target: 'http://localhost:7071'
.Perhatikan bahwa port target menunjuk ke 7071.
Buka file react-app/package.json.
Temukan pengaturan
"proxy": "http://localhost:7071/",
.Perhatikan bahwa port proksi mengarah ke 7071.
Buka file svelte-app/rollup.config.js.
Temukan baris kode
const api = 'http://localhost:7071/api';
.Perhatikan bahwa port API menunjuk ke 7071.
Buka file vue-app/vue.config.js.
Temukan pengaturan
target: 'http://localhost:7071',
.Perhatikan bahwa port target mengarah ke 7071.
Menjalankan aplikasi web front-end Anda
API Anda sudah berjalan pada port 7071. Sekarang, saat Anda menjalankan aplikasi web, aplikasi web tersebut membuat permintaan HTTP-nya ke API Anda. Jalankan aplikasi web Anda dengan mengikuti langkah-langkah berikut:
Buka instans terminal git kedua.
Selanjutnya, masukkan perintah ini untuk masuk ke folder kerangka kerja front-end pilihan Anda:
cd angular-app
cd react-app
cd svelte-app
cd vue-app
Jalankan aplikasi klien front-end:
npm start
npm start
npm run dev
npm run serve
Telusuri ke aplikasi Anda
Saatnya untuk melihat aplikasi Anda berjalan secara lokal terhadap Azure Functions API.
- Telusuri ke
http://localhost:4200
.
- Telusuri ke
http://localhost:3000
.
- Telusuri ke
http://localhost:5000
.
- Telusuri ke
http://localhost:8080
.
- Anda membuat aplikasi, dan sekarang aplikasi berjalan secara lokal membuat permintaan HTTP GET ke API Anda. Sekarang, hentikan aplikasi dan API yang sedang berjalan dengan menekan Ctrl-C di terminal.
Langkah berikutnya
Aplikasi Anda berfungsi secara lokal, dan langkah Anda selanjutnya adalah menerbitkan aplikasi dengan API.