Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
OpenFaaS is een framework dat gebruikmaakt van containers om serverloze functies te bouwen. Als open-source project heeft het grote populariteit binnen de community verworven. Dit document bevat informatie over het installeren en gebruiken van OpenFaas in een AKS-cluster (Azure Kubernetes Service).
Voordat u begint
- In dit artikel wordt ervan uitgegaan dat u basiskennis hebt van Kubernetes-concepten. Zie Kubernetes-kernconcepten voor Azure Kubernetes Service (AKS) voor meer informatie.
- U hebt een actief Azure-abonnement nodig. Als u nog geen account hebt, maakt u een gratis account voordat u begint.
- U hebt een AKS-cluster nodig. Als u geen bestaand cluster hebt, kunt u er een maken met behulp van de Azure CLI, Azure PowerShell of Azure Portal.
- U moet de OpenFaaS CLI installeren. Zie de OpenFaaS CLI-documentatie voor installatieopties.
Voeg de OpenFaaS Helm-grafiekopslagplaats toe
Navigeer naar Azure Cloud Shell.
Voeg de OpenFaaS helm chart-repository toe en werk deze bij naar de nieuwste versie met behulp van de volgende
helmcommando's.helm repo add openfaas https://openfaas.github.io/faas-netes/ helm repo update
OpenFaaS implementeren
Als een goede gewoonte is, zouden OpenFaaS en OpenFaaS-functies in hun eigen Kubernetes-naamruimte moeten worden opgeslagen.
Maak een naamruimte voor het OpenFaaS-systeem en de functies met behulp van de
kubectl applyopdracht.kubectl apply -f https://raw.githubusercontent.com/openfaas/faas-netes/master/namespaces.ymlGenereer een wachtwoord voor de OpenFaaS UI-portal en REST API met behulp van de volgende opdrachten. In de Helm-grafiek wordt dit wachtwoord gebruikt om basisverificatie in te schakelen op de OpenFaaS-gateway, die beschikbaar is voor internet via een cloud LoadBalancer.
# 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"Belangrijk
Het gebruik van een gebruikersnaam en wachtwoord voor verificatie is een onveilig patroon. Als u een OpenFaaS Enterprise-licentie hebt, raden we u aan in plaats daarvan IAM (Identity and Access Management) voor OpenFaaS te gebruiken.
Haal de waarde voor uw wachtwoord op met behulp van de volgende
echoopdracht.echo $PASSWORDImplementeer OpenFaaS in uw AKS-cluster met behulp van de
helm upgradeopdracht.helm upgrade openfaas --install openfaas/openfaas \ --namespace openfaas \ --set basic_auth=true \ --set functionNamespace=openfaas-fn \ --set serviceType=LoadBalancerDe uitvoer moet er ongeveer uitzien als in de volgende verkorte voorbeelduitvoer:
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" ...Er wordt een openbaar IP-adres gemaakt voor toegang tot de OpenFaaS-gateway. Haal het IP-adres op met behulp van de
kubectl get serviceopdracht.kubectl get service -l component=gateway --namespace openfaasUw output zou eruit moeten zien zoals de volgende voorbeeldoutput.
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 7mTest het OpenFaaS-systeem door te bladeren naar het externe IP-adres op poort 8080,
http://52.186.64.52:8080in dit voorbeeld, waar u wordt gevraagd u aan te melden. De standaardgebruiker isadminen uw wachtwoord kan worden opgehaald met behulp vanecho $PASSWORD.
Stel
$OPENFAAS_URLin op de URL van het externe IP-adres op poort 8080 en log in met behulp van de Azure CLI en de volgende opdrachten.export OPENFAAS_URL=http://52.186.64.52:8080 echo -n $PASSWORD | ./faas-cli login -g $OPENFAAS_URL -u admin --password-stdin
Eerste functie maken
Navigeer naar het OpenFaaS-systeem met behulp van uw OpenFaaS-URL.
Maak een functie met behulp van de OpenFaas-portal door Een nieuwe functie implementeren te selecteren en naar Figlet te zoeken.
Selecteer de functie Figlet en klik vervolgens op Implementeren.
Roep de functie aan met behulp van de volgende
curlopdracht. Zorg ervoor dat u het IP-adres in het volgende voorbeeld vervangt door uw OpenFaaS-gatewayadres.curl -X POST http://52.186.64.52:8080/function/figlet -d "Hello Azure"Uw output zou eruit moeten zien zoals de volgende voorbeeldoutput.
_ _ _ _ _ | | | | ___| | | ___ / \ _____ _ _ __ ___ | |_| |/ _ \ | |/ _ \ / _ \ |_ / | | | '__/ _ \ | _ | __/ | | (_) | / ___ \ / /| |_| | | | __/ |_| |_|\___|_|_|\___/ /_/ \_\/___|\__,_|_| \___|
Tweede functie maken
Uw Azure Cosmos DB-exemplaar configureren
Navigeer naar Azure Cloud Shell.
Maak een nieuwe resourcegroep voor het Azure Cosmos DB-exemplaar met behulp van de
az group createopdracht.az group create --name serverless-backing --location eastusImplementeer een Azure Cosmos DB-exemplaar van soort
MongoDBmet behulp van deaz cosmosdb createopdracht. Vervangopenfaas-cosmosdoor uw eigen unieke exemplaarnaam.az cosmosdb create --resource-group serverless-backing --name openfaas-cosmos --kind MongoDBHaal de verbindingsreeks voor de Azure Cosmos DB-database op en sla deze op in een variabele met behulp van de
az cosmosdb keys listopdracht. Zorg ervoor dat u de waarde voor het--resource-groupargument vervangt door de naam van uw resourcegroep en het--nameargument door de naam van uw Azure Cosmos DB-exemplaar.COSMOS=$(az cosmosdb keys list \ --type connection-strings \ --resource-group serverless-backing \ --name openfaas-cosmos \ --output tsv)Vul De Azure Cosmos DB met testgegevens in door een bestand met de naam
plans.jsonte maken en te kopiëren in de volgende 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 }
De functie maken
Installeer de MongoDB-hulpprogramma's. Met de volgende voorbeeldopdracht worden deze hulpprogramma's geïnstalleerd met behulp van brew. Zie de MongoDB-documentatie voor meer installatieopties.
brew install mongodbLaad het Azure Cosmos DB-exemplaar met gegevens met behulp van het hulpprogramma mongoimport .
mongoimport --uri=$COSMOS -c plans < plans.jsonUw output zou eruit moeten zien zoals de volgende voorbeeldoutput.
2018-02-19T14:42:14.313+0000 connected to: localhost 2018-02-19T14:42:14.918+0000 imported 1 documentMaak de functie met behulp van de
faas-cli deployopdracht. Zorg ervoor dat u de waarde van het-gargument bijwerkt met uw OpenFaaS-gatewayadres.faas-cli deploy -g http://52.186.64.52:8080 --image=shanepeckham/openfaascosmos --name=cosmos-query --env=NODE_ENV=$COSMOSZodra deze is geïmplementeerd, zou de uitvoer er ongeveer zo moeten uitzien als in het volgende voorbeelduitvoer:
Deployed. 202 Accepted. URL: http://52.186.64.52:8080/function/cosmos-queryTest de functie met behulp van de volgende
curlopdracht. Zorg ervoor dat u het IP-adres bijwerkt met het OpenFaaS-gatewayadres.curl -s http://52.186.64.52:8080/function/cosmos-queryUw output zou eruit moeten zien zoals de volgende voorbeeldoutput.
[{"ID":"","Name":"two_person","FriendlyName":"","PortionSize":"","MealsPerWeek":"","Price":72,"Description":"Our basic plan, delivering 3 meals per week, which will feed 1-2 people."}]Opmerking
U kunt de functie ook testen in de OpenFaaS-gebruikersinterface:
Volgende stappen
Blijf leren met de OpenFaaS-workshop, die een set praktijklabs bevat die betrekking hebben op onderwerpen zoals het maken van uw eigen GitHub-bot, het gebruiken van geheimen, het weergeven van metrische gegevens en automatisch schalen.