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.
OpenFaaS adalah kerangka kerja yang menggunakan kontainer untuk membangun fungsi tanpa server. Sebagai proyek sumber terbuka, ia telah mendapatkan adopsi skala besar dalam komunitas. Dokumen ini merinci penginstalan dan penggunaan OpenFaas pada kluster Azure Kubernetes Service (AKS).
Sebelum Anda mulai
- Artikel ini mengasumsikan pemahaman dasar tentang konsep Kube. Untuk informasi lebih, lihat konsep inti Kubernetes untuk Azure Kubernetes Service (AKS).
- Anda memerlukan langganan Azure aktif. Jika Anda tidak memilikinya, buat akun gratis sebelum memulai.
- Anda memerlukan kluster AKS. Jika Anda tidak memiliki kluster yang sudah ada, Anda dapat membuatnya menggunakan Azure CLI, Azure PowerShell, atau portal Azure.
- Anda perlu menginstal OpenFaaS CLI. Untuk opsi penginstalan, lihat dokumentasi OpenFaaS CLI.
Tambahkan repositori bagan helm OpenFaaS
Navigasi ke Azure Cloud Shell.
Tambahkan repositori bagan helm OpenFaaS dan perbarui ke versi terbaru menggunakan perintah berikut
helm.helm repo add openfaas https://openfaas.github.io/faas-netes/ helm repo update
Menyebarkan OpenFaaS
Sebagai praktik yang baik, OpenFaaS dan fungsi OpenFaaS harus disimpan di namespace Kubernetes mereka sendiri.
Buat namespace untuk sistem dan fungsi OpenFaaS menggunakan perintah
kubectl apply.kubectl apply -f https://raw.githubusercontent.com/openfaas/faas-netes/master/namespaces.ymlBuat kata sandi untuk Portal UI OpenFaaS dan REST API menggunakan perintah berikut. Bagan helm menggunakan kata sandi ini untuk mengaktifkan autentikasi dasar pada OpenFaaS Gateway, yang diekspos ke Internet melalui LoadBalancer cloud.
# generate a random password PASSWORD=$(head -c 12 /dev/urandom | shasum| cut -d' ' -f1) kubectl -n openfaas create secret generic basic-auth \ --from-literal=basic-auth-user=admin \ --from-literal=basic-auth-password="$PASSWORD"Penting
Menggunakan nama pengguna dan kata sandi untuk autentikasi adalah pola yang tidak aman. Jika Anda memiliki lisensi perusahaan OpenFaaS, sebaiknya gunakan Manajemen Identitas dan Akses (IAM) untuk OpenFaaS sebagai gantinya.
Dapatkan nilai untuk kata sandi Anda menggunakan perintah berikut
echo.echo $PASSWORDSebarkan OpenFaaS ke kluster AKS Anda menggunakan
helm upgradeperintah .helm upgrade openfaas --install openfaas/openfaas \ --namespace openfaas \ --set basic_auth=true \ --set functionNamespace=openfaas-fn \ --set serviceType=LoadBalancerOutput Anda akan terlihat mirip dengan contoh output ringkas berikut:
NAME: openfaas LAST DEPLOYED: Tue Aug 29 08:26:11 2023 NAMESPACE: openfaas STATUS: deployed ... NOTES: To verify that openfaas has started, run: kubectl --namespace=openfaas get deployments -l "release=openfaas, app=openfaas" ...Alamat IP publik dibuat untuk mengakses gateway OpenFaaS. Dapatkan alamat IP menggunakan
kubectl get serviceperintah .kubectl get service -l component=gateway --namespace openfaasOutput Anda akan terlihat mirip dengan contoh output berikut:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE gateway ClusterIP 10.0.156.194 <none> 8080/TCP 7m gateway-external LoadBalancer 10.0.28.18 52.186.64.52 8080:30800/TCP 7mUji sistem OpenFaaS dengan menelusuri ke alamat IP eksternal pada port 8080,
http://52.186.64.52:8080dalam contoh ini, tempat Anda diminta untuk masuk. Pengguna default adalahadmindan kata sandi Anda dapat diambil menggunakanecho $PASSWORD.
Atur
$OPENFAAS_URLke URL alamat IP eksternal pada port 8080 dan masuk dengan Azure CLI menggunakan perintah berikut.export OPENFAAS_URL=http://52.186.64.52:8080 echo -n $PASSWORD | ./faas-cli login -g $OPENFAAS_URL -u admin --password-stdin
Buat fungsi pertama
Navigasikan ke sistem OpenFaaS menggunakan URL OpenFaaS Anda.
Buat fungsi menggunakan portal OpenFaas dengan memilih Sebarkan Fungsi Baru dan cari Figlet.
Pilih fungsi Figlet, lalu pilih Sebarkan.
Panggil fungsi menggunakan perintah berikut
curl. Pastikan Anda mengganti alamat IP dalam contoh berikut dengan alamat gateway OpenFaaS Anda.curl -X POST http://52.186.64.52:8080/function/figlet -d "Hello Azure"Output Anda akan terlihat mirip dengan contoh output berikut:
_ _ _ _ _ | | | | ___| | | ___ / \ _____ _ _ __ ___ | |_| |/ _ \ | |/ _ \ / _ \ |_ / | | | '__/ _ \ | _ | __/ | | (_) | / ___ \ / /| |_| | | | __/ |_| |_|\___|_|_|\___/ /_/ \_\/___|\__,_|_| \___|
Buat fungsi kedua
Konfigurasikan instans Azure Cosmos DB Anda
Navigasi ke Azure Cloud Shell.
Buat grup sumber daya baru untuk instans Azure Cosmos DB menggunakan
az group createperintah .az group create --name serverless-backing --location eastusSebarkan instans Azure Cosmos DB dari jenis
MongoDBmenggunakan perintahaz cosmosdb create. Gantiopenfaas-cosmosdengan nama instans unik Anda sendiri.az cosmosdb create --resource-group serverless-backing --name openfaas-cosmos --kind MongoDBDapatkan koneksi string database Azure Cosmos DB dan simpan dalam variabel menggunakan perintah
az cosmosdb keys list. Pastikan Anda mengganti nilai untuk--resource-groupargumen dengan nama grup sumber daya Anda, dan--nameargumen dengan nama instans Azure Cosmos DB Anda.COSMOS=$(az cosmosdb keys list \ --type connection-strings \ --resource-group serverless-backing \ --name openfaas-cosmos \ --output tsv)Isi Azure Cosmos DB dengan data pengujian dengan membuat file bernama
plans.jsondan menyalin di json berikut.{ "name" : "two_person", "friendlyName" : "Two Person Plan", "portionSize" : "1-2 Person", "mealsPerWeek" : "3 Unique meals per week", "price" : 72, "description" : "Our basic plan, delivering 3 meals per week, which will feed 1-2 people.", "__v" : 0 }
Membuat fungsi
Instal alat MongoDB. Contoh perintah berikut menginstal alat-alat ini menggunakan brew. Untuk opsi penginstalan lainnya, lihat dokumentasi MongoDB.
brew install mongodbMemuat instans Azure Cosmos DB dengan data menggunakan alat "mongoimport".
mongoimport --uri=$COSMOS -c plans < plans.jsonOutput Anda akan terlihat mirip dengan contoh output berikut:
2018-02-19T14:42:14.313+0000 connected to: localhost 2018-02-19T14:42:14.918+0000 imported 1 documentBuat fungsi menggunakan
faas-cli deployperintah . Pastikan Anda memperbarui nilai-gargumen dengan alamat gateway OpenFaaS Anda.faas-cli deploy -g http://52.186.64.52:8080 --image=shanepeckham/openfaascosmos --name=cosmos-query --env=NODE_ENV=$COSMOSSetelah disebarkan, output Anda akan terlihat mirip dengan contoh output berikut:
Deployed. 202 Accepted. URL: http://52.186.64.52:8080/function/cosmos-queryUji fungsi menggunakan perintah berikut
curl. Pastikan Anda memperbarui alamat IP dengan alamat gateway OpenFaaS.curl -s http://52.186.64.52:8080/function/cosmos-queryOutput Anda akan terlihat mirip dengan contoh output berikut:
[{"ID":"","Name":"two_person","FriendlyName":"","PortionSize":"","MealsPerWeek":"","Price":72,"Description":"Our basic plan, delivering 3 meals per week, which will feed 1-2 people."}]Catatan
Anda juga dapat menguji fungsi dalam UI OpenFaaS:
Langkah berikutnya
Langkah berikutnya, lanjutkan belajar dengan lokakarya OpenFaaS, yang mencakup serangkaian latihan langsung yang membahas topik seperti cara membuat bot GitHub Anda sendiri, mengelola rahasia, melihat metrik, dan penskalaan otomatis.