Arsitektur serverless menyembunyikan instance server dari pengembang dan biasanya memaparkan API yang memungkinkan pengembang untuk menjalankan aplikasi mereka di cloud. Pendekatan ini membantu pengembang menyebarkan aplikasi dengan cepat, karena mereka dapat meninggalkan penyediaan dan mempertahankan instance ke tim DevOps yang sesuai. Ini juga mengurangi biaya infrastruktur, karena dengan perkakas yang tepat Anda dapat menskalakan instance Anda per permintaan. Aplikasi yang berjalan di platform tanpa server disebut fungsi tanpa server . Fungsi adalah kemas, kode yang dapat dieksekusi yang digunakan untuk melakukan operasi tertentu. Aplikasi pemaketan memastikan bahwa Anda dapat mereproduksi lingkungan yang konsisten pada banyak mesin, memungkinkan pembaruan dan penskalaan.
OpenFaaS
adalah framework gratis dan open-source
untuk membangun dan menjalankan fungsi serverless. Dengan dukungan resmi untuk
kedua Docker Swarm dan Kubernetes, Anda dapat menerapkan aplikasi menggunakan API yang kuat, antarmuka baris
perintah, atau UI Web. Muncul dengan metrik built-in yang disediakan oleh Prometheus dan mendukung penskalaan otomatis sesuai permintaan, serta penskalaan dari nol.
Dalam tutorial ini, Anda akan mengatur dan menggunakan OpenFaaS dengan Docker
Swarm berjalan di Ubuntu 16.04, dan mengamankan UI Web dan API dengan mengatur Traefik dengan Let's Encypt. Ini memastikan komunikasi yang
aman antara node di dalam cluster, serta antara OpenFaaS dan operatornya.
Sumber : (https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-openfaas-using-docker-swarm-on-ubuntu-16-04)
Langkah 1 - Mengunduh OpenFaaS dan Menginstal OpenFaaS CLI
manifes tidak akan berfungsi jika file salah di format.
Untuk menerapkan OpenFaaS ke Docker Swarm Anda, Anda
harus mengunduh manifes penyebaran dan skrip. Cara termudah untuk
mendapatkannya adalah dengan menggandakan repositori resmi OpenFaas dan
memeriksa tag yang sesuai, yang mewakili rilis OpenFaaS.
Untuk tutorial ini, Anda akan menggunakan OpenFaaS v 0.8.9
. Meskipun langkah-langkah untuk menerapkan versi lain harus
serupa, pastikan untuk memeriksa perubahan aturan proyek untuk memastikan tidak ada perubahan yang terjadi.
Pertama, arahkan ke direktori home Anda dan jalankan perintah
berikut untuk mengkloning repositori ke direktori
~/faas
:
Arahkan ke direktori
~/faas
baru dibuat:
Ketika Anda mengkloning repositori, Anda akan mendapatkan file
dari cabang master yang berisi perubahan terbaru. Karena perubahan melanggar bisa masuk ke cabang master, itu
tidak disarankan untuk digunakan dalam produksi. Sebagai gantinya, mari kita periksa tag 0.8.9
:
Output berisi pesan tentang checkout yang berhasil dan peringatan
tentang melakukan perubahan ke cabang ini:
Jika Anda melihat kesalahan apa pun, pastikan untuk
menyelesaikannya dengan mengikuti petunjuk di layar sebelum melanjutkan.
Dengan repositori OpenFaaS yang diunduh, lengkap dengan file
manifes yang diperlukan, mari kita lanjutkan untuk menginstal CLI FaaS.
Cara termudah untuk menginstal FaaS CLI adalah dengan menggunakan
skrip resmi. Di terminal Anda, arahkan ke direktori
home Anda dan unduh skrip menggunakan perintah berikut:
Ini akan mengunduh skrip
faas-cli.sh
ke direktori home Anda. Sebelum mengeksekusi skrip, ada baiknya
untuk memeriksa isinya:
Anda dapat keluar dari pratinjau dengan menekan
q
. Setelah Anda memverifikasi konten skrip, Anda dapat
melanjutkan dengan pemasangan dengan memberikan izin yang dapat dijalankan ke
skrip dan menjalankannya. Jalankan skrip sebagai
root sehingga secara otomatis akan menyalin ke PATH
Anda:
Output berisi informasi tentang kemajuan instalasi dan versi CLI
yang telah Anda instal:
Jika Anda melihat kesalahan, pastikan untuk menyelesaikannya
dengan mengikuti petunjuk di layar sebelum melanjutkan dengan tutorial.
Pada titik ini, Anda telah menginstal CLI FaaS. Untuk mempelajari lebih lanjut tentang perintah yang dapat
Anda gunakan, jalankan CLI tanpa argumen:
Output menunjukkan perintah dan bendera yang tersedia:
Anda sekarang telah berhasil memperoleh manifes OpenFaaS dan
menginstal FaaS CLI, yang dapat Anda gunakan untuk mengelola instance OpenFaaS
dari terminal Anda.
Direktori
~/faas
berisi file dari rilis 0.8.9 , yang berarti Anda
sekarang dapat menggunakan OpenFaaS ke Docker Swarm Anda. Sebelum melakukannya, mari kita memodifikasi file manifest
penyebaran untuk memasukkan Traefik, yang akan mengamankan pengaturan OpenFaaS
Anda dengan mengatur Let's Encrypt.
Langkah 2 - Mengkonfigurasi Traefik
Traefik adalah proksi balik sadar Docker-sadar yang datang dengan
dukungan SSL yang disediakan oleh Let's Encrypt. Protokol SSL memastikan bahwa Anda berkomunikasi dengan
cluster Swarm secara aman dengan mengenkripsi data yang Anda kirim dan terima
di antara node.
Untuk menggunakan Traefik dengan OpenFaaS, Anda perlu memodifikasi
manifestasi penerapan OpenFaaS untuk menyertakan Traefik dan memberi tahu
OpenFaaS untuk menggunakan Traefik daripada langsung membuka layanannya ke
internet.
Navigasi kembali ke direktori
~/faas
dan buka manifes penyebaran OpenFaaS di editor teks:
Catatan : Docker Tulis file manifes menggunakan format YAML yang secara ketat melarang tab dan membutuhkan dua spasi untuk indentasi
Penyebaran OpenFaaS terdiri dari beberapa layanan, yang didefinisikan di bawah arahan services, yang menyediakan dependensi yang dibutuhkan untuk menjalankan OpenFaaS, OpenFaaS API dan Web UI, dan Prometheus dan AlertManager (untuk menangani metrik).
Di
bagian awal
services
, tambahkan layanan
baru bernama traefik
, yang menggunakan traefik:v1.6
gambar untuk penyebaran:
Gambar
Traefik berasal dari repositori trafik docker hub, di mana Anda dapat menemukan daftar semua gambar yang tersedia.
Selanjutnya,
mari instruksikan Docker untuk menjalankan Traefik menggunakan
command
perintah. Ini akan menjalankan Traefik,
mengkonfigurasinya untuk bekerja dengan Docker Swarm, dan menyediakan SSL
menggunakan Let's Encrypt. Bendera berikut akan
mengkonfigurasi Traefik:- --
docker.*
: Bendera ini memberitahu Traefik untuk menggunakan Docker dan menentukan bahwa itu berjalan di cluster Docker Swarm. --web=true
: Bendera ini memungkinkan Web UI Traefik.--defaultEntryPoints
dan--entryPoints
: Flag-flag ini mendefinisikan entry point dan protokol yang digunakan. Dalam kasus kami ini termasuk HTTP pada port80
dan HTTPS pada port443
.--acme.*
: Bendera ini memberi tahu Traefik agar menggunakan ACME untuk membuat sertifikat Let's Encrypt untuk mengamankan cluster OpenFaaS Anda dengan SSL.
Pastikan untuk mengganti
placeholder domain example.com di
--acme.domains
dan --acme.email
dengan domain yang akan Anda gunakan untuk mengakses
OpenFaaS. Anda dapat menentukan
beberapa domain dengan memisahkannya dengan koma dan spasi. Alamat email untuk pemberitahuan dan pemberitahuan SSL,
termasuk peringatan kedaluwarsa sertifikat. Dalam
hal ini, Traefik akan menangani pembaruan sertifikat secara otomatis, sehingga
Anda dapat mengabaikan peringatan kedaluwarsa.
Tambahkan blok kode berikut
di bawah petunjuk
image
, dan di atas gateway
:
Dengan
command
perintah di tempat, mari kita ceritakan pada Traefik
port apa yang akan diekspos ke internet. Traefik
menggunakan port 8080
untuk operasinya, sementara OpenFaaS akan menggunakan
port 80
untuk komunikasi tidak aman dan port 443
untuk komunikasi yang aman.
Tambahkan perintah berikut
di bawah arahan
command
. port-internet :
port-docker
notasi port-internet :
port-docker memastikan bahwa port di
sisi kiri diekspos oleh Traefik ke internet dan memetakan ke port kontainer di
sisi kanan:
Selanjutnya, dengan
menggunakan direktif
volumes
, pasang file socket Docker dari host yang
menjalankan Docker ke Traefik. File
soket Docker berkomunikasi dengan API Docker untuk mengelola penampung Anda dan
mendapatkan detail tentangnya, seperti jumlah kontainer dan alamat IP mereka.
Anda juga akan memasang volume yang disebut acme
, yang akan kita definisikan nanti dalam langkah ini.
Arahan
networks
menginstruksikan Traefik untuk menggunakan jaringan functions
, yang digunakan bersama dengan OpenFaaS. Jaringan ini memastikan bahwa fungsi dapat berkomunikasi
dengan bagian lain dari sistem, termasuk API.
Arahan
deploy
menginstruksikan Docker untuk menjalankan Traefik
hanya pada node manajer Docker Swarm.
Tambahkan arahan berikut di
bawah direktif
ports
:
Pada titik ini, blok
layanan
traefik
akan terlihat seperti ini:
Sementara konfigurasi ini
memastikan bahwa Traefik akan digunakan dengan OpenFaaS, Anda juga perlu
mengkonfigurasi OpenFaaS untuk bekerja dengan Traefik. Secara default, layanan
gateway
dikonfigurasi untuk berjalan pada port 8080
, yang tumpang tindih dengan Traefik.
Layanan
gateway
menyediakan gateway API yang dapat Anda gunakan untuk
menyebarkan, menjalankan, dan mengelola fungsi Anda. Ini menangani metrik (melalui Prometheus) dan penskalaan
otomatis, dan menghosting UI Web.
Tujuan kami adalah untuk
mengekspos layanan
gateway
menggunakan Traefik daripada mengeksposnya langsung
ke internet.
Cari layanan
gateway
, yang seharusnya terlihat seperti ini:
Hapus petunjuk
ports
dari layanan untuk menghindari memaparkan layanan gateway
secara langsung.
Selanjutnya, tambahkan
petunjuk
lables
berikut ke bagian deploy
dari layanan gateway
. Arahan
ini mengekspos /ui
, /system
, dan /function
titik akhir pada port 8080
melalui Traefik:
Endpoint
/ui
mengekspos OpenFaaS Web UI, yang tercakup dalam langkah 6 dari tutorial ini. Endpoint /system
adalah titik akhir API yang digunakan untuk mengelola
OpenFaaS, sedangkan endpoint /function
mengekspos titik akhir API untuk mengelola dan
menjalankan fungsi. Langkah 5 dari tutorial ini mencakup API OpenFaaS secara detail.
Setelah modifikasi, layanan
gateway
Anda akan terlihat seperti ini:
Terakhir, mari kita
tentukan volume
acme
digunakan untuk menyimpan sertifikat Let's Encrypt. Kami dapat menentukan volume kosong, artinya data tidak akan
bertahan jika Anda menghancurkan penampung. Jika
Anda menghancurkan kontainer, sertifikat akan diregenerasi saat Anda memulai
Traefik berikutnya.
Tambahkan arahan
volumes
berikut pada baris terakhir file:
Setelah selesai, simpan
file dan tutup editor teks Anda. Pada
titik ini, Anda telah mengkonfigurasi Traefik untuk melindungi penyebaran
OpenFaaS Anda dan Docker Swarm. Sekarang Anda
siap untuk menerapkannya bersama dengan OpenFaaS di cluster Swarm Anda.
Langkah 3 - Menyebarkan OpenFaaS
Sekarang setelah Anda
menyiapkan manifestasi penerapan OpenFaaS, Anda siap untuk menerapkannya dan
mulai menggunakan OpenFaaS. Untuk
menerapkan, Anda akan menggunakan skrip
deploy_stack.sh
. Skrip
ini dimaksudkan untuk digunakan pada sistem operasi Linux dan macOS, tetapi di
direktori OpenFaaS Anda juga dapat menemukan skrip yang sesuai untuk sistem windows dan ARM.
Sebelum menggunakan
OpenFaaS, Anda perlu menginstruksikan
docker-machine
untuk menjalankan perintah Docker dari skrip pada
salah satu mesin di Swarm. Untuk
tutorial ini, mari gunakan manager swarm.
Jika
Anda memiliki perintah
docker-machine use
dikonfigurasi, Anda dapat menggunakannya:
Jika
tidak, gunakan perintah berikut:
Skrip
deploy_stack.sh
menyebarkan semua sumber daya yang diperlukan untuk
OpenFaaS agar berfungsi seperti yang diharapkan, termasuk file konfigurasi,
pengaturan jaringan, layanan, dan kredensial untuk otorisasi dengan server
OpenFaaS.
Mari jalankan skrip, yang
akan memakan waktu beberapa menit untuk menyelesaikan penerapan:
Output menunjukkan daftar
sumber daya yang dibuat dalam proses penyebaran, serta kredensial yang akan
Anda gunakan untuk mengakses server OpenFaaS dan perintah FaaS CLI.
Tulis
kredensial ini, karena Anda akan membutuhkannya sepanjang tutorial untuk
mengakses UI Web dan API:
Jika
Anda melihat kesalahan apa pun, ikuti petunjuk di layar untuk mengatasinya
sebelum melanjutkan tutorial.
Sebelum
melanjutkan, mari mengautentikasi CLI FaaS dengan server OpenFaaS menggunakan
perintah yang disediakan oleh skrip penerapan.
Skrip
mengeluarkan bendera yang perlu Anda berikan kepada perintah, tetapi Anda perlu
menambahkan bendera tambahan,
--gateway
, dengan alamat server OpenFaaS Anda, karena CLI FaaS mengasumsikan server
gateway berjalan di localhost
:
Output
berisi pesan tentang otorisasi yang sukses:
Pada
titik ini, Anda memiliki server OpenFaaS yang berfungsi penuh yang ditempatkan
di cluster Docker Swarm Anda, serta FaaS CLI yang dikonfigurasi untuk
menggunakan server yang baru Anda terapkan. Sebelum menguji cara menggunakan OpenFaaS, mari gunakan
beberapa fungsi sampel untuk memulai.
Langkah 4 - Menyebarkan Fungsi Sampel OpenFaaS
Awalnya,
OpenFaaS hadir tanpa fungsi yang digunakan. Untuk memulai pengujian dan menggunakannya, Anda memerlukan
beberapa fungsi.
Proyek
OpenFaaS menjadi tuan rumah beberapa fungsi sampel, dan Anda dapat menemukan
daftar fungsi yang tersedia bersama dengan manifes penyebarannya di repositori OpenFaaS. Beberapa fungsi contoh termasuk
nodeinfo
, untuk menampilkan informasi tentang node di mana fungsi sedang berjalan,
penghitungan wordcount
, untuk menghitung jumlah kata dalam permintaan yang diteruskan, dan markdown
, untuk mengonversi masukan markdown yang diteruskan ke keluaran HTML.
Manifestasi
stack.yml
di direktori ~/faas
menyebarkan beberapa fungsi sampel bersama dengan fungsi-fungsi yang disebutkan
di atas. Anda dapat menerapkannya menggunakan CLI
FaaS.
Jalankan
perintah
faas-cli
berikut, yang
mengambil jalur ke manifes tumpukan dan alamat server OpenFaaS Anda:
Output
berisi kode status dan pesan yang mengindikasikan berhasil atau tidaknya
penempatan:
Jika
Anda melihat kesalahan apa pun, pastikan untuk menyelesaikannya dengan
mengikuti petunjuk di layar.
Setelah
penyebaran tumpukan selesai, buat daftar semua fungsi untuk memastikan
penyebarannya dan siap digunakan:
Output
berisi daftar fungsi, bersama dengan nomor replika dan jumlah panggilan:
Jika
Anda tidak melihat fungsi Anda di sini, pastikan perintah
faas-cli
deploy
berhasil dijalankan.
Anda
sekarang dapat menggunakan contoh fungsi OpenFaaS untuk menguji dan menunjukkan
cara menggunakan API, UI Web, dan CLI. Pada langkah
berikutnya, Anda akan mulai dengan menggunakan API OpenFaaS untuk daftar dan
menjalankan fungsi.
Langkah 5 - Menggunakan API OpenFaaS
OpenFaaS
dilengkapi dengan API yang kuat yang dapat Anda gunakan untuk mengelola dan
menjalankan fungsi serverless Anda. Mari kita gunakan Swagger,
alat untuk membuat, menguji, dan mendokumentasikan API, untuk menelusuri
dokumentasi API, dan kemudian menggunakan API untuk daftar dan menjalankan fungsi.
Dengan
kesombongan, Anda dapat memeriksa dokumentasi API untuk mencari tahu apa
endpoint yang tersedia dan bagaimana Anda dapat menggunakannya. Di repositori OpenFaaS, Anda dapat menemukan spesifikasi swagger API, yang dapat digunakan dengan editor Swagger untuk mengubah
spesifikasi menjadi bentuk yang dapat dibaca manusia.
Navigasikan
browser web Anda ke
http://editor.swagger.io/
. Anda harus disambut dengan layar berikut:
Di
sini Anda akan menemukan editor teks yang berisi kode sumber untuk contoh
spesifikasi angkuh, dan dokumentasi API yang dapat dibaca manusia di sebelah
kanan.
Mari
impor spesifikasi OpenFaaS Swagger. Di menu atas, klik tombol File , lalu di URL Impor :
Anda
akan melihat pop-up, di mana Anda perlu memasukkan alamat spesifikasi Swagger
API.
Jika Anda tidak melihat munculan, pastikan munculan
diaktifkan untuk browser web Anda.
Di
lapangan, masukkan tautan ke spesifikasi API Swagger OpenFaaS: https://raw.githubusercontent.com/openfaas/faas/master/api-docs/swagger.yml
Setelah
mengklik tombol OK
, editor Swagger akan menunjukkan referensi API untuk OpenFaaS, yang seharusnya
terlihat seperti ini:
Di
sisi kiri Anda dapat melihat sumber file referensi API, sementara di sisi kanan
Anda dapat melihat daftar titik akhir, bersama dengan deskripsi singkat. Mengeklik titik akhir menunjukkan lebih banyak detail
tentangnya, termasuk parameter apa yang diperlukan, metode apa yang digunakan,
dan kemungkinan tanggapannya:
Setelah
Anda tahu apa endpoint yang tersedia dan parameter apa yang mereka harapkan,
Anda dapat menggunakannya untuk mengelola fungsi Anda.
Selanjutnya,
Anda akan menggunakan perintah
curl
untuk berkomunikasi dengan API, jadi arahkan kembali ke terminal Anda. Dengan tanda -u
, Anda akan dapat meneruskan admin:your_openfaas_password
pasangan admin:your_openfaas_password
yang Anda dapatkan di Langkah 3, sementara tanda -X
akan menentukan metode permintaan. Anda juga akan melewati URL titik akhir
Anda, https://
example.com /system/functions
:
Anda
dapat melihat metode yang diperlukan untuk setiap titik akhir di dokumen API.
Di
Langkah 4, Anda menerapkan beberapa fungsi contoh, yang seharusnya muncul di
output:
Jika
Anda tidak melihat keluaran yang tampak seperti ini, atau jika Anda melihat
kesalahan, ikuti petunjuk di layar untuk menyelesaikan masalah sebelum
melanjutkan dengan tutorial. Pastikan Anda mengirim permintaan ke
titik akhir yang benar menggunakan metode yang disarankan dan kredensial yang
tepat. Anda juga dapat memeriksa log untuk
layanan
gateway
menggunakan perintah
berikut:
Secara
default, respons API ke panggilan
curl
mengembalikan JSON mentah tanpa baris baru, yang tidak dapat dibaca manusia. Untuk menguraikannya, respons pipe curl
terhadap utilitas jq
, yang akan mengonversi JSON menjadi bentuk yang dapat dibaca manusia:
Hasilnya
sekarang dalam bentuk yang dapat dibaca manusia. Anda dapat melihat nama fungsi, yang dapat Anda gunakan untuk
mengelola dan menjalankan fungsi dengan API, jumlah panggilan, serta informasi
seperti label dan jumlah replika, yang relevan dengan Docker:
Mari
kita ambil salah satu fungsi ini dan jalankan, menggunakan titik akhir API
/function/
function-name
. Titik akhir ini tersedia melalui metode POST, di mana tanda -d
memungkinkan Anda untuk mengirim data ke fungsi.
Sebagai
contoh, mari jalankan perintah
curl
berikut untuk menjalankan fungsi echoit
, yang datang dengan OpenFaaS di luar kotak dan menghasilkan string yang Anda
kirim sebagai permintaan. Anda dapat menggunakan string "Sammy
The Shark"
untuk menunjukkan:
Outputnya
akan menunjukkan Anda
Sammy The Shark
:
Jika
Anda melihat kesalahan, ikuti log di layar untuk menyelesaikan masalah sebelum
melanjutkan dengan tutorial. Anda juga dapat memeriksa log layanan
gateway
.
Pada
titik ini, Anda telah menggunakan API OpenFaaS untuk mengelola dan menjalankan
fungsi Anda. Sekarang mari kita lihat UI Web OpenFaaS.
Langkah 6 - Menggunakan UI Web OpenFaaS
OpenFaaS
dilengkapi dengan UI Web yang dapat Anda gunakan untuk menambah fungsi baru dan
menjalankan yang terinstal. Pada langkah ini, Anda akan menginstal
fungsi untuk menghasilkan QR Codes dari FaaS Store dan menghasilkan kode
contoh.
Untuk
memulai, arahkan browser web Anda ke
https://
example.com
/ui/
. Perhatikan bahwa trailing slash
diperlukan untuk menghindari kesalahan "tidak ditemukan".
Di
kotak dialog otentikasi HTTP, masukkan nama pengguna dan kata sandi yang Anda
dapatkan saat menerapkan OpenFaaS di Langkah 3.
Setelah
masuk, Anda akan melihat fungsi yang tersedia di sisi kiri layar, bersama
dengan tombol Deploy New
Functions yang digunakan untuk menginstal fungsi baru.
Klik
pada Menyebarkan Fungsi Baru
untuk menyebarkan fungsi baru. Anda akan melihat jendela FaaS Store,
yang menyediakan fungsi-fungsi yang telah teruji oleh komunitas yang dapat Anda
instal dengan satu klik:
Selain
fungsi-fungsi ini, Anda juga dapat menerapkan fungsi secara manual dari gambar
Docker.
Untuk
tutorial ini, Anda akan menerapkan fungsi Generator Kode QR dari FaaS Store. Cari Penghasil Kode QR - Buka item dalam daftar, klik di atasnya, lalu klik tombol Terapkan di bagian bawah jendela:
Setelah
mengklik Deploy
, jendela Deploy A New Function
akan menutup dan fungsi akan digunakan. Dalam daftar di
sisi kiri jendela Anda akan melihat daftar fungsi
qrcode-go
. Klik pada entri ini untuk memilihnya. Jendela fungsi utama akan menampilkan nama fungsi, jumlah
replika, jumlah panggilan, dan gambar, bersama dengan opsi untuk menjalankan
fungsi:
Mari
hasilkan kode QR yang berisi URL dengan domain Anda. Di bidang isi permintaan , ketik konten kode QR yang ingin Anda buat; dalam kasus kami, ini akan menjadi "example.com" . Setelah selesai, klik
tombol Invoke .
Saat
Anda memilih opsi output Teks
atau JSON
, fungsi tersebut akan menampilkan konten file, yang tidak dapat digunakan atau
dapat dibaca manusia:
Anda
dapat mengunduh tanggapan. yang dalam kasus kami adalah file PNG dengan
kode QR. Untuk melakukan ini, pilih opsi Unduh , lalu klik Panggil sekali lagi. Tak lama setelah
itu, Anda harus mengunduh kode QR, yang dapat Anda buka dengan penampil gambar
pilihan Anda:
Selain
menyebarkan fungsi dari penyimpanan FaaS atau dari gambar Docker, Anda juga
dapat membuat fungsi Anda sendiri. Pada langkah berikutnya, Anda akan
membuat fungsi Python menggunakan antarmuka baris perintah FaaS.
Langkah 7 - Membuat Fungsi Dengan CLI FaaS
Di
langkah sebelumnya, Anda mengonfigurasi FaaS CLI untuk bekerja dengan server
OpenFaaS Anda. The FaaS CLI adalah antarmuka baris perintah yang dapat Anda
gunakan untuk mengelola OpenFaaS dan menginstal dan menjalankan fungsi, seperti
Anda akan melalui API atau menggunakan UI Web.
Dibandingkan
dengan UI Web atau API, CLI FaaS memiliki templat untuk banyak bahasa
pemrograman yang dapat Anda gunakan untuk membuat fungsi Anda sendiri. Ini
juga dapat membangun gambar kontainer berdasarkan kode fungsi Anda dan
mendorong gambar ke registri gambar, seperti Docker Hub.
Pada
langkah ini, Anda akan membuat fungsi, mempublikasikannya ke Docker Hub, dan
kemudian jalankan di server OpenFaaS Anda. Fungsi ini akan mirip
dengan
echoit
fungsi default , yang mengembalikan
input yang dikirimkan sebagai permintaan.
Kami
akan menggunakan Python untuk menulis fungsi kami. Jika Anda ingin
mempelajari lebih lanjut tentang Python, Anda dapat melihat Bagaimana Kode Kami dalam seri tutorial Python 3 dan Kode Carakami dalam e-book Python .
Sebelum
membuat fungsi baru, mari buat direktori untuk menyimpan fungsi FaaS dan
menavigasi ke sana:
Jalankan
perintah berikut untuk membuat fungsi Python baru yang disebut
echo-input
. Pastikan
untuk mengganti your-docker-hub-usernamedengan
nama pengguna Docker Hub Anda, karena Anda akan mendorong fungsi ke Docker Hub
nanti:
Output
berisi konfirmasi tentang penciptaan fungsi yang sukses. Jika Anda tidak
memiliki template yang diunduh, CLI akan mengunduh templat di direktori Anda
saat ini:
Hasil
dari
faas-cli new
perintah adalah ~/faas-fucntions/echo-input
direktori
yang baru dibuat yang berisi kode fungsi dan echo-input.yml
file. File
ini berisi informasi tentang fungsi Anda: bahasa apa yang ada di dalamnya,
namanya, dan server tempat Anda akan menggunakannya.
Arahkan
ke
~/faas-fucntions/echo-input
direktori:
Untuk
melihat isi direktori, jalankan:
Direktori
berisi dua file
handler.py
:,
yang berisi kode untuk fungsi Anda, dan requirements.txt
, yang
berisi modul Python yang diperlukan oleh fungsi.
Karena
saat ini kami tidak memerlukan modul Python non-default,
requirements.txt
file
tersebut kosong. Anda dapat memeriksanya dengan menggunakan cat
perintah:
Selanjutnya,
mari tulis fungsi yang akan mengembalikan permintaan sebagai string.
The
handler.py
file
sudah memiliki kode handler sampel, yang mengembalikan respon yang diterima
sebagai string. Mari kita lihat kode:
Fungsi
default dipanggil
handle
dan
mengambil satu parameter req
,,
yang berisi permintaan yang diteruskan ke fungsi saat dipanggil. Fungsi
hanya melakukan satu hal, mengembalikan permintaan yang dilewatkan sebagai
tanggapan:
Mari
kita memodifikasinya untuk menyertakan teks tambahan, mengganti string
dalam
return
direktif sebagai berikut:
Setelah
selesai, simpan file dan tutup editor teks Anda.
Selanjutnya,
mari kita membangun gambar Docker dari kode sumber fungsi. Arahkan
ke
faas-functions
direktori tempat echo-input.yml
file
berada:
Perintah
berikut ini membangun gambar Docker untuk fungsi Anda:
Output
berisi informasi tentang perkembangan kemajuan:
Jika
Anda mendapatkan kesalahan, pastikan untuk menyelesaikannya dengan mengikuti
petunjuk di layar sebelum menerapkan fungsi.
Anda
perlu mem-kontainer fungsi OpenFaaS Anda untuk menerapkannya. Aplikasi
pemaketan memastikan bahwa lingkungan yang diperlukan untuk menjalankan aplikasi
Anda dapat dengan mudah direproduksi, dan aplikasi Anda dapat dengan mudah
digunakan, diskalakan, dan diperbarui.
Untuk
tutorial ini, kami akan menggunakan Docker Hub, karena ini adalah solusi
gratis, tetapi Anda dapat menggunakan registri kontainer apa pun, termasuk registri
pribadi Anda sendiri.
Jalankan
perintah berikut untuk mendorong gambar yang Anda buat ke repositori yang Anda
tentukan di Docker Hub:
Menekan
akan memakan waktu beberapa menit, tergantung pada kecepatan koneksi internet
Anda.Output berisi kemajuan unggah gambar:
Akhirnya,
dengan gambar Anda didorong ke Docker Hub, Anda dapat menggunakannya untuk
menyebarkan fungsi ke server OpenFaaS Anda.
Untuk
menerapkan fungsi Anda, jalankan
deploy
perintah,
yang mengambil jalur ke manifes yang menjelaskan fungsi Anda, serta alamat
server OpenFaaS Anda:
Output
menunjukkan status penerapan, bersama dengan nama fungsi yang Anda terapkan dan
kode status penerapan:
Jika
pemasangan berhasil, Anda akan melihat
200
kode
status. Dalam kasus kesalahan, ikuti petunjuk yang diberikan untuk
memperbaiki masalah sebelum melanjutkan.
Pada
titik ini fungsi Anda digunakan dan siap digunakan. Anda dapat menguji
apakah itu bekerja seperti yang diharapkan dengan memohonnya.
Untuk
menjalankan fungsi dengan KLI FaaS, gunakan
invoke
perintah
dengan meneruskan nama fungsi dan alamat OpenFaaS ke situ. Setelah
menjalankan perintah, Anda akan diminta untuk memasukkan permintaan yang ingin
Anda kirim ke fungsi tersebut.
Jalankan
perintah berikut untuk menjalankan
echo-input
fungsi:
Anda
akan diminta untuk memasukkan permintaan yang ingin Anda kirim ke fungsi:
Masukkan
teks yang ingin Anda kirim ke fungsi, seperti:
Setelah
selesai, tekan
ENTER
lalu CTRL
+ D
untuk menyelesaikan permintaan. The CTRL
+ D
shortcut di terminal digunakan untuk mendaftar Akhir-of-File
(EOF). The OpenFaaS CLI berhenti membaca dari terminal setelah EOF
diterima.
Setelah
beberapa detik, perintah akan menampilkan respon fungsi:
Jika
Anda tidak melihat output atau Anda mendapatkan kesalahan, retrace
langkah-langkah sebelumnya untuk memastikan Anda telah menyebarkan fungsi
seperti yang dijelaskan dan ikuti petunjuk di layar untuk menyelesaikan
masalah.
Pada
titik ini, Anda telah berinteraksi dengan fungsi Anda menggunakan tiga metode:
UI Web, API, dan CLI. Mampu menjalankan fungsi Anda dengan salah satu
metode ini menawarkan Anda fleksibilitas memutuskan bagaimana Anda ingin
mengintegrasikan fungsi ke dalam alur kerja yang ada.
Kesimpulan
Dalam
tutorial ini, Anda telah menggunakan arsitektur tanpa server dan OpenFaaS untuk
menerapkan dan mengelola aplikasi Anda menggunakan API OpenFaaS, UI Web, dan
CLI. Anda juga mengamankan infrastruktur Anda dengan memanfaatkan Traefik
untuk menyediakan SSL menggunakan Let's Encrypt.
Sumber : (https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-openfaas-using-docker-swarm-on-ubuntu-16-04)
openfaas itu fungsinya buat apa gan ?
BalasHapus