Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
OpenFaaS je architektura, která používá kontejnery k vytváření bezserverových funkcí. Jako opensourcový projekt získal v rámci komunity rozsáhlé přijetí. Tento dokument podrobně popisuje instalaci a použití OpenFaas v clusteru Azure Kubernetes Service (AKS).
Než začnete
- Tento článek předpokládá základní znalosti konceptů Kubernetes. Další informace najdete v tématu Základní koncepty Kubernetes pro Službu Azure Kubernetes Service (AKS).
- Potřebujete aktivní předplatné Azure. Pokud ho nemáte, vytvořte si bezplatný účet před tím, než začnete.
- Potřebujete cluster AKS. Pokud nemáte existující cluster, můžete ho vytvořit pomocí Azure CLI, Azure PowerShellu nebo webu Azure Portal.
- Musíte nainstalovat Rozhraní příkazového řádku OpenFaaS. Možnosti instalace najdete v dokumentaci k rozhraní příkazového řádku OpenFaaS.
Přidání úložiště chartu OpenFaaS Helm
Přejděte do Azure Cloud Shellu.
Přidejte úložiště chartu OpenFaaS Helm a aktualizujte na nejnovější verzi pomocí následujících
helmpříkazů.helm repo add openfaas https://openfaas.github.io/faas-netes/ helm repo update
Nasazení OpenFaaS
Jako osvědčený postup by měly být funkce OpenFaaS a OpenFaaS uložené ve vlastním oboru názvů Kubernetes.
Pomocí příkazu vytvořte obor názvů pro systém OpenFaaS a funkce
kubectl apply.kubectl apply -f https://raw.githubusercontent.com/openfaas/faas-netes/master/namespaces.ymlPomocí následujících příkazů vygenerujte heslo pro portál uživatelského rozhraní OpenFaaS a rozhraní REST API. Chart Helm používá toto heslo k povolení základního ověřování ve službě OpenFaaS Gateway, která je přístupná k internetu prostřednictvím cloudového loadbalanceru.
# 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"Důležité
Použití uživatelského jména a hesla pro ověřování je nezabezpečený vzor. Pokud máte licenci OpenFaaS Enterprise, doporučujeme místo toho použít Správu identit a přístupu (IAM) pro OpenFaaS .
Pomocí následujícího
echopříkazu získejte hodnotu hesla.echo $PASSWORDPomocí příkazu nasaďte OpenFaaS do clusteru
helm upgradeAKS.helm upgrade openfaas --install openfaas/openfaas \ --namespace openfaas \ --set basic_auth=true \ --set functionNamespace=openfaas-fn \ --set serviceType=LoadBalancerVýstup by měl vypadat podobně jako v následujícím zhuštěném příkladu výstupu:
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" ...Vytvoří se veřejná IP adresa pro přístup k bráně OpenFaaS. Pomocí příkazu získejte IP adresu
kubectl get service.kubectl get service -l component=gateway --namespace openfaasVýstup by měl vypadat podobně jako v následujícím příkladu výstupu:
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 7mOtestujte systém OpenFaaS tak,
http://52.186.64.52:8080že v tomto příkladu přejdete na externí IP adresu na portu 8080, kde se zobrazí výzva k přihlášení. Výchozí uživatel jeadmina heslo lze načíst pomocíecho $PASSWORD.
Nastavte
$OPENFAAS_URLadresu URL externí IP adresy na portu 8080 a přihlaste se pomocí Azure CLI pomocí následujících příkazů.export OPENFAAS_URL=http://52.186.64.52:8080 echo -n $PASSWORD | ./faas-cli login -g $OPENFAAS_URL -u admin --password-stdin
Vytvoření první funkce
Pomocí adresy URL OpenFaaS přejděte do systému OpenFaaS.
Vytvořte funkci pomocí portálu OpenFaas tak, že vyberete Nasadit novou funkci a vyhledáte Figlet.
Vyberte funkci Figlet a pak vyberte Nasadit.
Funkci vyvoláte pomocí následujícího
curlpříkazu. Nezapomeňte IP adresu nahradit v následujícím příkladu adresou brány OpenFaaS.curl -X POST http://52.186.64.52:8080/function/figlet -d "Hello Azure"Výstup by měl vypadat podobně jako v následujícím příkladu výstupu:
_ _ _ _ _ | | | | ___| | | ___ / \ _____ _ _ __ ___ | |_| |/ _ \ | |/ _ \ / _ \ |_ / | | | '__/ _ \ | _ | __/ | | (_) | / ___ \ / /| |_| | | | __/ |_| |_|\___|_|_|\___/ /_/ \_\/___|\__,_|_| \___|
Vytvoření druhé funkce
Konfigurace instance služby Azure Cosmos DB
Přejděte do Azure Cloud Shellu.
Pomocí příkazu vytvořte novou skupinu prostředků pro instanci
az group createslužby Azure Cosmos DB.az group create --name serverless-backing --location eastusPomocí příkazu nasaďte instanci
MongoDBaz cosmosdb createslužby Azure Cosmos DB typu. Nahraďteopenfaas-cosmosvlastním jedinečným názvem instance.az cosmosdb create --resource-group serverless-backing --name openfaas-cosmos --kind MongoDBZískejte databázi Azure Cosmos DB připojovací řetězec a pomocí příkazu ji uložte do proměnné
az cosmosdb keys list. Nezapomeňte nahradit hodnotu--resource-groupargumentu názvem vaší skupiny prostředků a--nameargument názvem instance služby Azure Cosmos DB.COSMOS=$(az cosmosdb keys list \ --type connection-strings \ --resource-group serverless-backing \ --name openfaas-cosmos \ --output tsv)Naplňte službu Azure Cosmos DB testovacími daty tak, že vytvoříte soubor s názvem
plans.jsona zkopírujete ho v následujícím kódu JSON.{ "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 }
Vytvoření funkce
Nainstalujte nástroje MongoDB. Následující příklad příkazu nainstaluje tyto nástroje pomocí brew. Další možnosti instalace najdete v dokumentaci k MongoDB.
brew install mongodbPomocí nástroje mongoimport načtěte instanci služby Azure Cosmos DB s daty.
mongoimport --uri=$COSMOS -c plans < plans.jsonVýstup by měl vypadat podobně jako v následujícím příkladu výstupu:
2018-02-19T14:42:14.313+0000 connected to: localhost 2018-02-19T14:42:14.918+0000 imported 1 documentVytvořte funkci pomocí
faas-cli deploypříkazu. Nezapomeňte aktualizovat hodnotu argumentu-gadresou brány OpenFaaS.faas-cli deploy -g http://52.186.64.52:8080 --image=shanepeckham/openfaascosmos --name=cosmos-query --env=NODE_ENV=$COSMOSPo nasazení by měl výstup vypadat podobně jako v následujícím příkladu výstupu:
Deployed. 202 Accepted. URL: http://52.186.64.52:8080/function/cosmos-queryOtestujte funkci pomocí následujícího
curlpříkazu. Ujistěte se, že ip adresu aktualizujete adresou brány OpenFaaS.curl -s http://52.186.64.52:8080/function/cosmos-queryVýstup by měl vypadat podobně jako v následujícím příkladu výstupu:
[{"ID":"","Name":"two_person","FriendlyName":"","PortionSize":"","MealsPerWeek":"","Price":72,"Description":"Our basic plan, delivering 3 meals per week, which will feed 1-2 people."}]Poznámka:
Funkci můžete také otestovat v uživatelském rozhraní OpenFaaS:
Další kroky
Pokračujte v učení s workshopem OpenFaaS, který obsahuje sadu praktických cvičení, která se týkají témat, jako je vytvoření vlastního robota GitHubu, využívání tajných kódů, zobrazování metrik a automatického škálování.