OpenFaaS használata Azure Kubernetes Service (AKS) esetén
Az OpenFaaS egy olyan keretrendszer, amely tárolókat használ kiszolgáló nélküli függvények létrehozásához. Nyílt forráskód projektként nagy léptékű bevezetést nyert a közösségen belül. Ez a dokumentum részletesen ismerteti az OpenFaas telepítését és használatát egy Azure Kubernetes Service (AKS-) fürtön.
Előkészületek
- Ez a cikk feltételezi a Kubernetes-fogalmak alapszintű megértését. További információt a Kubernetes alapfogalmai Azure Kubernetes Service (AKS) című témakörben talál.
- Aktív Azure-előfizetésre van szüksége. Ha még nem rendelkezik ilyen fiókkal, hozzon létre egy ingyenes fiókot a kezdés előtt.
- Szüksége van egy AKS-fürtre. Ha nem rendelkezik meglévő fürttel, létrehozhat egyet az Azure CLI, Azure PowerShell vagy Azure Portal használatával.
- Telepítenie kell az OpenFaaS parancssori felületét. A telepítési lehetőségekről az OpenFaaS CLI dokumentációjában olvashat.
Az OpenFaaS helm-diagram adattárának hozzáadása
Lépjen az Azure Cloud Shell.
Adja hozzá az OpenFaaS helm-diagram adattárát, és frissítsen a legújabb verzióra az alábbi
helm
parancsokkal.helm repo add openfaas https://openfaas.github.io/faas-netes/ helm repo update
OpenFaaS üzembe helyezése
Jó gyakorlat, hogy az OpenFaaS és az OpenFaaS függvényeket a saját Kubernetes-névterükben kell tárolni.
Hozzon létre egy névteret az OpenFaaS rendszerhez és a függvényekhez a
kubectl apply
paranccsal.kubectl apply -f https://raw.githubusercontent.com/openfaas/faas-netes/master/namespaces.yml
Hozzon létre egy jelszót az OpenFaaS felhasználói felületi portálhoz és a REST API-hoz az alábbi parancsokkal. A helm-diagram ezzel a jelszóval engedélyezi az alapszintű hitelesítést az OpenFaaS-átjárón, amely egy felhőbeli LoadBalanceren keresztül érhető el az interneten.
# 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"
Kérje le a jelszó értékét az alábbi
echo
paranccsal.echo $PASSWORD
Helyezze üzembe az OpenFaaS-t az AKS-fürtben az
helm upgrade
paranccsal.helm upgrade openfaas --install openfaas/openfaas \ --namespace openfaas \ --set basic_auth=true \ --set functionNamespace=openfaas-fn \ --set serviceType=LoadBalancer
A kimenetnek a következő kondenzált példakimenethez hasonlóan kell kinéznie:
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" ...
Létrejön egy nyilvános IP-cím az OpenFaaS-átjáró eléréséhez. Kérje le az IP-címet a
kubectl get service
paranccsal.kubectl get service -l component=gateway --namespace openfaas
A kimenetnek a következő példakimenethez hasonlóan kell kinéznie:
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 7m
Tesztelje az OpenFaaS-rendszert úgy, hogy a 8080-os porton található külső IP-címet böngészi,
http://52.186.64.52:8080
ebben a példában, ahol a rendszer kéri a bejelentkezést. Az alapértelmezett felhasználó,admin
és a jelszó lekérhető a használatávalecho $PASSWORD
.Állítsa be
$OPENFAAS_URL
a külső IP-cím URL-címét a 8080-s porton, és jelentkezzen be az Azure CLI-vel az alábbi parancsokkal.export OPENFAAS_URL=http://52.186.64.52:8080 echo -n $PASSWORD | ./faas-cli login -g $OPENFAAS_URL -u admin --password-stdin
Első függvény létrehozása
Nyissa meg az OpenFaaS-rendszert az OpenFaaS URL-címével.
Hozzon létre egy függvényt az OpenFaas portálon a Deploy A New Function (Új függvény üzembe helyezése ) lehetőség kiválasztásával, és keressen rá a Figlet kifejezésre.
Válassza a Figlet függvényt, majd válassza az Üzembe helyezés lehetőséget.
Hívja meg a függvényt az alábbi
curl
paranccsal. Győződjön meg arról, hogy az alábbi példában szereplő IP-címet az OpenFaaS-átjáró címére cseréli.curl -X POST http://52.186.64.52:8080/function/figlet -d "Hello Azure"
A kimenetnek a következő példakimenethez hasonlóan kell kinéznie:
_ _ _ _ _ | | | | ___| | | ___ / \ _____ _ _ __ ___ | |_| |/ _ \ | |/ _ \ / _ \ |_ / | | | '__/ _ \ | _ | __/ | | (_) | / ___ \ / /| |_| | | | __/ |_| |_|\___|_|_|\___/ /_/ \_\/___|\__,_|_| \___|
Második függvény létrehozása
Az Azure Cosmos DB-példány konfigurálása
Lépjen az Azure Cloud Shell.
Hozzon létre egy új erőforráscsoportot az Azure Cosmos DB-példányhoz a
az group create
paranccsal.az group create --name serverless-backing --location eastus
Helyezzen üzembe egy típusú
MongoDB
Azure Cosmos DB-példányt aaz cosmosdb create
paranccsal. Cserélje leopenfaas-cosmos
a elemet a saját egyedi példánynevére.az cosmosdb create --resource-group serverless-backing --name openfaas-cosmos --kind MongoDB
Kérje le az Azure Cosmos DB-adatbázist kapcsolati sztring, és tárolja azt egy változóban a
az cosmosdb list
paranccsal. Győződjön meg arról, hogy az argumentum értékét az--resource-group
erőforráscsoport nevére, az--name
argumentumot pedig az Azure Cosmos DB-példány nevére cseréli.COSMOS=$(az cosmosdb list-connection-strings \ --resource-group serverless-backing \ --name openfaas-cosmos \ --query connectionStrings[0].connectionString \ --output tsv)
Töltse ki az Azure Cosmos DB-t tesztadatokkal egy nevű
plans.json
fájl létrehozásával és másolásával az alábbi jsonban.{ "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 }
A függvény létrehozása
Telepítse a MongoDB-eszközöket. Az alábbi példaparancs telepíti ezeket az eszközöket a brew használatával. További telepítési lehetőségekért tekintse meg a MongoDB dokumentációját.
brew install mongodb
Töltse be az Azure Cosmos DB-példányt adatokkal a mongoimport eszközzel.
mongoimport --uri=$COSMOS -c plans < plans.json
A kimenetnek a következő példakimenethez hasonlóan kell kinéznie:
2018-02-19T14:42:14.313+0000 connected to: localhost 2018-02-19T14:42:14.918+0000 imported 1 document
Hozza létre a függvényt a
faas-cli deploy
paranccsal. Győződjön meg arról, hogy frissíti az argumentum értékét az-g
OpenFaaS-átjáró címével.faas-cli deploy -g http://52.186.64.52:8080 --image=shanepeckham/openfaascosmos --name=cosmos-query --env=NODE_ENV=$COSMOS
Az üzembe helyezés után a kimenetnek a következő példakimenethez hasonlóan kell kinéznie:
Deployed. 202 Accepted. URL: http://52.186.64.52:8080/function/cosmos-query
Tesztelje a függvényt az alábbi
curl
paranccsal. Győződjön meg arról, hogy az IP-címet az OpenFaaS-átjáró címével frissíti.curl -s http://52.186.64.52:8080/function/cosmos-query
A kimenetnek a következő példakimenethez hasonlóan kell kinéznie:
[{"ID":"","Name":"two_person","FriendlyName":"","PortionSize":"","MealsPerWeek":"","Price":72,"Description":"Our basic plan, delivering 3 meals per week, which will feed 1-2 people."}]
Megjegyzés
A függvényt az OpenFaaS felhasználói felületén is tesztelheti:
Következő lépések
Folytassa a tanulást az OpenFaaS workshoptal, amely gyakorlati tesztkörnyezeteket tartalmaz, amelyek olyan témaköröket tartalmaznak, mint a saját GitHub-robot létrehozása, a titkos kódok felhasználása, a metrikák megtekintése és az automatikus skálázás.