Korzystanie z rozwiązania OpenFaaS w usłudze Azure Kubernetes Service (AKS)
OpenFaaS to struktura, która używa kontenerów do tworzenia funkcji bezserwerowych. Jako projekt open source zyskał wdrożenie na dużą skalę w społeczności. Ten dokument zawiera szczegółowe informacje na temat instalowania i używania usługi OpenFaas w klastrze Azure Kubernetes Service (AKS).
Zanim rozpoczniesz
- W tym artykule założono podstawową wiedzę na temat pojęć związanych z platformą Kubernetes. Aby uzyskać więcej informacji, zobacz Podstawowe pojęcia dotyczące usługi Azure Kubernetes Service (AKS).
- Potrzebna jest aktywna subskrypcja platformy Azure. Jeśli go nie masz, przed rozpoczęciem utwórz bezpłatne konto .
- Potrzebujesz klastra usługi AKS. Jeśli nie masz istniejącego klastra, możesz go utworzyć przy użyciu interfejsu wiersza polecenia platformy Azure, Azure PowerShell lub Azure Portal.
- Musisz zainstalować interfejs wiersza polecenia OpenFaaS. Aby uzyskać informacje na temat opcji instalacji, zobacz dokumentację interfejsu wiersza polecenia openFaaS.
Dodawanie repozytorium programu Helm OpenFaaS
Przejdź do witryny Azure Cloud Shell.
Dodaj repozytorium programu Helm OpenFaaS i zaktualizuj je do najnowszej wersji przy użyciu następujących
helm
poleceń.helm repo add openfaas https://openfaas.github.io/faas-netes/ helm repo update
Wdrażanie rozwiązania OpenFaaS
Dobrym rozwiązaniem jest przechowywanie funkcji OpenFaaS i OpenFaaS we własnej przestrzeni nazw platformy Kubernetes.
Utwórz przestrzeń nazw dla systemu OpenFaaS i funkcji przy użyciu
kubectl apply
polecenia .kubectl apply -f https://raw.githubusercontent.com/openfaas/faas-netes/master/namespaces.yml
Wygeneruj hasło dla portalu interfejsu użytkownika OpenFaaS i interfejsu API REST przy użyciu następujących poleceń. Wykres helm używa tego hasła, aby włączyć uwierzytelnianie podstawowe w bramie OpenFaaS, która jest uwidoczniona w Internecie za pośrednictwem usługi LoadBalancer w chmurze.
# 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"
Pobierz wartość hasła przy użyciu następującego
echo
polecenia.echo $PASSWORD
Wdróż usługę OpenFaaS w klastrze usługi AKS przy użyciu
helm upgrade
polecenia .helm upgrade openfaas --install openfaas/openfaas \ --namespace openfaas \ --set basic_auth=true \ --set functionNamespace=openfaas-fn \ --set serviceType=LoadBalancer
Dane wyjściowe powinny wyglądać podobnie do następujących skróconych przykładowych danych wyjściowych:
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" ...
Publiczny adres IP jest tworzony na potrzeby uzyskiwania dostępu do bramy OpenFaaS. Pobierz adres IP przy użyciu
kubectl get service
polecenia .kubectl get service -l component=gateway --namespace openfaas
Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:
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
Przetestuj system OpenFaaS, przechodząc do zewnętrznego adresu IP na porcie 8080,
http://52.186.64.52:8080
w tym przykładzie, w którym zostanie wyświetlony monit o zalogowanie się. Domyślny użytkownik toadmin
i hasło można pobrać przy użyciu poleceniaecho $PASSWORD
.Ustaw
$OPENFAAS_URL
adres URL zewnętrznego adresu IP na porcie 8080 i zaloguj się przy użyciu interfejsu wiersza polecenia platformy Azure przy użyciu następujących poleceń.export OPENFAAS_URL=http://52.186.64.52:8080 echo -n $PASSWORD | ./faas-cli login -g $OPENFAAS_URL -u admin --password-stdin
Tworzenie pierwszej funkcji
Przejdź do systemu OpenFaaS przy użyciu adresu URL openFaaS.
Utwórz funkcję przy użyciu portalu OpenFaas, wybierając pozycję Wdróż nową funkcję i wyszukaj ciąg Figlet.
Wybierz funkcję Figlet , a następnie wybierz pozycję Wdróż.
Wywołaj funkcję przy użyciu następującego
curl
polecenia. Upewnij się, że adres IP został zastąpiony w poniższym przykładzie adresem bramy OpenFaaS.curl -X POST http://52.186.64.52:8080/function/figlet -d "Hello Azure"
Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:
_ _ _ _ _ | | | | ___| | | ___ / \ _____ _ _ __ ___ | |_| |/ _ \ | |/ _ \ / _ \ |_ / | | | '__/ _ \ | _ | __/ | | (_) | / ___ \ / /| |_| | | | __/ |_| |_|\___|_|_|\___/ /_/ \_\/___|\__,_|_| \___|
Tworzenie drugiej funkcji
Konfigurowanie wystąpienia usługi Azure Cosmos DB
Przejdź do witryny Azure Cloud Shell.
Utwórz nową grupę zasobów dla wystąpienia usługi Azure Cosmos DB przy użyciu
az group create
polecenia .az group create --name serverless-backing --location eastus
Wdróż wystąpienie usługi Azure Cosmos DB typu
MongoDB
przy użyciuaz cosmosdb create
polecenia . Zastąpopenfaas-cosmos
ciąg własną unikatową nazwą wystąpienia.az cosmosdb create --resource-group serverless-backing --name openfaas-cosmos --kind MongoDB
Pobierz parametry połączenia bazy danych usługi Azure Cosmos DB i zapisz je w zmiennej
az cosmosdb list
przy użyciu polecenia . Upewnij się, że zastąp wartość argumentu--resource-group
nazwą grupy zasobów i--name
argumentem nazwą wystąpienia usługi Azure Cosmos DB.COSMOS=$(az cosmosdb list-connection-strings \ --resource-group serverless-backing \ --name openfaas-cosmos \ --query connectionStrings[0].connectionString \ --output tsv)
Wypełnij usługę Azure Cosmos DB danymi testowymi, tworząc plik o nazwie
plans.json
i kopiując w poniższym kodzie 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 }
Tworzenie funkcji
Zainstaluj narzędzia bazy danych MongoDB. Poniższe przykładowe polecenie instaluje te narzędzia przy użyciu metody brew. Aby uzyskać więcej opcji instalacji, zobacz dokumentację bazy danych MongoDB.
brew install mongodb
Załaduj wystąpienie usługi Azure Cosmos DB z danymi przy użyciu narzędzia mongoimport .
mongoimport --uri=$COSMOS -c plans < plans.json
Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:
2018-02-19T14:42:14.313+0000 connected to: localhost 2018-02-19T14:42:14.918+0000 imported 1 document
Utwórz funkcję przy użyciu
faas-cli deploy
polecenia . Upewnij się, że wartość argumentu-g
jest aktualizowana przy użyciu adresu bramy OpenFaaS.faas-cli deploy -g http://52.186.64.52:8080 --image=shanepeckham/openfaascosmos --name=cosmos-query --env=NODE_ENV=$COSMOS
Po wdrożeniu dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:
Deployed. 202 Accepted. URL: http://52.186.64.52:8080/function/cosmos-query
Przetestuj funkcję przy użyciu następującego
curl
polecenia. Upewnij się, że adres IP został zaktualizowany przy użyciu adresu bramy OpenFaaS.curl -s http://52.186.64.52:8080/function/cosmos-query
Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:
[{"ID":"","Name":"two_person","FriendlyName":"","PortionSize":"","MealsPerWeek":"","Price":72,"Description":"Our basic plan, delivering 3 meals per week, which will feed 1-2 people."}]
Uwaga
Funkcję można również przetestować w interfejsie użytkownika OpenFaaS:
Następne kroki
Kontynuuj naukę z warsztatów OpenFaaS, która obejmuje zestaw praktycznych laboratoriów, które obejmują tematy, takie jak tworzenie własnego bota usługi GitHub, korzystanie z wpisów tajnych, wyświetlanie metryk i skalowanie automatyczne.
Azure Kubernetes Service
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla