Ma kēia ʻatikala, e hoʻonohonoho wau i kahi hana hana no ka hoʻomohala ʻana i ka pāʻani "Epics", a e uhaʻi hoʻi i ka pāʻani ponoʻī i mau ʻāpana kūpono no ka hoʻohana ʻana ma OpenFaaS. E hana wau i nā manipulations āpau ma Linux, e kau wau i nā Kubernetes ma minikube me ka hoʻohana ʻana iā VirtualBox. Loaʻa i kaʻu mīkini hana 2 cores processor a me 12GB o RAM; hoʻohana wau i kahi SSD ma ke ʻano o ka ʻōnaehana disk. E hoʻohana wau i ka debian 8 e like me kaʻu ʻōnaehana hoʻomohala nui, me nā emacs, sudo, git a me nā pahu virtualbox i hoʻokomo ʻia, e hoʻokomo ʻia nā mea āpau ma ka hoʻoiho ʻana mai GitHub a me nā kumu ʻē aʻe. E hoʻokomo mākou i kēia mau noi ma /usr/local/bin ke ʻole i kuhikuhi ʻia. E hoʻomaka kākou!
Hoʻomākaukau i ke kaiapuni hana
Ke hoʻokomo nei iā Go
Hana mākou i nā ʻōlelo aʻoaʻo mai ka pūnaewele official:
Manaʻo nā mea hoʻomohala e hana i 2 inoa inoa e hana pū me:
$ kubectl apply -f https://raw.githubusercontent.com/openfaas/faas-netes/master/namespaces.yml
namespace/openfaas created
namespace/openfaas-fn created
Hoʻohui i kahi waihona no ka hoʻokele:
$ helm repo add openfaas https://openfaas.github.io/faas-netes/
"openfaas" has been added to your repositories
Hiki i ka pakuhi ke hoʻonohonoho i ka ʻōlelo huna ma mua o ka hoʻokomo ʻana, e hoʻohana a mālama i ka ʻikepili komo ma ke ʻano he huna k8s:
$ helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "openfaas" chart repository
Update Complete. Happy Helming!
$ helm upgrade openfaas --install openfaas/openfaas --namespace openfaas --set functionNamespace=openfaas-fn --set generateBasicAuth=false
Release "openfaas" does not exist. Installing it now.
NAME: openfaas
LAST DEPLOYED: Fri Dec 25 10:28:22 2019
NAMESPACE: openfaas
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
To verify that openfaas has started, run:
kubectl -n openfaas get deployments -l "release=openfaas, app=openfaas"
Ma hope o kekahi manawa, holo mākou i ke kauoha i manaʻo ʻia:
$ kubectl rollout status -n openfaas deploy/gateway
deployment "gateway" successfully rolled out
$ kubectl port-forward -n openfaas svc/gateway 8080:8080 &
[1] 6985
Forwarding from 127.0.0.1:8080 -> 8080
$ echo -n $PASSWORD | faas-cli login --username admin --password-stdin
Calling the OpenFaaS server to validate the credentials...
Handling connection for 8080
WARNING! Communication is not secure, please consider using HTTPS. Letsencrypt.org offers free SSL/TLS certificates.
credentials saved for admin http://127.0.0.1:8080
$ faas-cli list
Function Invocations Replicas
Ke hoʻokomo nei iā Mongodb
Hoʻokomo mākou i nā mea āpau me ka hoʻohana ʻana i ka helm:
$ helm repo add stable https://kubernetes-charts.storage.googleapis.com/
"stable" has been added to your repositories
$ helm install stable/mongodb --generate-name
NAME: mongodb-1577466908
LAST DEPLOYED: Fri Dec 25 11:15:11 2019
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
** Please be patient while the chart is being deployed **
MongoDB can be accessed via port 27017 on the following DNS name from within your cluster:
mongodb-1577466908.default.svc.cluster.local
To get the root password run:
export MONGODB_ROOT_PASSWORD=$(kubectl get secret --namespace default mongodb-1577466908 -o jsonpath="{.data.mongodb-root-password}" | base64 --decode)
To connect to your database run the following command:
kubectl run --namespace default mongodb-1577466908-client --rm --tty -i --restart='Never' --image bitnami/mongodb --command -- mongo admin --host mongodb-1577466908 --authenticationDatabase admin -u root -p $MONGODB_ROOT_PASSWORD
To connect to your database from outside the cluster execute the following commands:
kubectl port-forward --namespace default svc/mongodb-1577466908 27017:27017 &
mongo --host 127.0.0.1 --authenticationDatabase admin -p $MONGODB_ROOT_PASSWORD
E nānā mākou:
kubectl run --namespace default mongodb-1577466908-client --rm --tty -i --restart='Never' --image bitnami/mongodb --command -- mongo admin --host mongodb-1577466908 --authenticationDatabase admin -u root -p $(kubectl get secret --namespace default mongodb-1577466908 -o jsonpath="{.data.mongodb-root-password}" | base64 --decode)
If you don't see a command prompt, try pressing enter.
> db.version();
4.0.14
E kaomi iā ctrl+D e haʻalele i ka pahu.
Hoʻonohonoho i nā emacs
Ma ke kumu, ua hoʻonohonoho mua ʻia nā mea āpau e like me kēiaʻatikala, no laila ʻaʻole wau e hele i nā kikoʻī.
Hoʻokaʻawale i ka pāʻani i nā hana
Hoʻopili ʻia ka pilina me nā hana ma o ka protocol http, hāʻawi ʻia ka hōʻoia hope-a-hope ma waena o nā hana like ʻole e JWT. Hoʻohana ʻia ʻo Mongodb e mālama i nā hōʻailona, me ka mokuʻāina pāʻani, ka ʻikepili o ka mea pāʻani, nā kaʻina o nā neʻe o nā pāʻani āpau a me nā ʻike ʻē aʻe. E nānā pono kākou i nā hiʻohiʻona hoihoi loa.
kakau
ʻO ka hoʻokomo o kēia hana ʻo JSON me ka inoa inoa pāʻani a me ka ʻōlelo huna. Ke kāhea ʻia kēia hana, ʻike ʻia ʻaʻole kēia inoa i loko o ka waihona; inā kūleʻa ka loiloi, hoʻokomo ʻia ka inoa inoa a me ka password hash i loko o ka waihona. Pono ke kākau inoa e komo ikaika i ka pāʻani.
e komo ai
ʻO ka hoʻokomo hana ʻo JSON me kahi inoa inoa pāʻani a me ka ʻōlelo huna; inā loaʻa kahi inoa inoa i loko o ka waihona a ua hōʻoia maikaʻi ʻia ka ʻōlelo huna me ka mea i mālama mua ʻia i loko o ka waihona, ua hoʻihoʻi ʻia kahi JWT, pono e hāʻawi ʻia i nā hana ʻē aʻe ke loaʻa. kāhea ʻia. Hoʻokomo pū ʻia nā moʻolelo lawelawe like ʻole i ka waihona, no ka laʻana, ka manawa komo hope, etc.
Nānā i ka papa inoa o nā pāʻani
Hiki i nā mea hoʻohana ʻae ʻole ke noi i ka papa inoa o nā pāʻani āpau koe wale nā pāʻani. ʻIke pū kekahi mea hoʻohana i ka papa inoa o nā pāʻani ikaika. ʻO ka hopena o ka hana ʻo JSON nā papa inoa o nā pāʻani (game ID, inoa hiki ke heluhelu ʻia e ke kanaka, etc.).
Hoʻokumu pāʻani
Hoʻohana wale ka hana me nā mea hoʻohana i ʻae ʻia; ʻae ʻia ka helu kiʻekiʻe o nā mea pāʻani ma ka hoʻokomo, a me nā ʻāpana pāʻani (no ka laʻana, nā mea e hoʻāla ai i kēia pāʻani, ka nui o nā mea pāʻani, etc.). ʻO kahi ʻokoʻa ʻokoʻa o ka pāʻani ke ʻano o kahi ʻōlelo huna no ka hui ʻana, e hiki ai iā ʻoe ke hana i nā pāʻani non-public. Ma ka maʻamau, hana ʻia kahi pāʻani lehulehu. ʻO ka hopena o ka hana ʻo JSON, aia kahi kahua kūleʻa hana, kahi ʻike pāʻani kūʻokoʻa, a me nā ʻāpana ʻē aʻe.
Ke komo ʻana i ka pāʻani
Hoʻohana wale ka hana me nā mea hoʻohana i ʻae ʻia, ʻo ka mea hoʻokomo ka ID pāʻani a me kāna ʻōlelo huna, inā he pāʻani ʻole kēia, ʻo JSON ka hopena me nā ʻāpana pāʻani. ʻO ka mea hoʻohana i ʻae ʻia i komo i ka pāʻani, a me ka mea nāna i hana i ka pāʻani, ua kapa ʻia ʻo ia nā mea komo pāʻani.
Ke nānā nei i nā hanana pāʻani
Hiki i kēlā me kēia mea hoʻohana ʻole ke noi i ka papa inoa o nā hanana no nā pāʻani hana ʻole, a hiki i ka mea hoʻohana ʻae ke loaʻa i kahi papa inoa o nā hanana no kēlā me kēia pāʻani ikaika. Hiki ke helu ʻia ka helu hanana i loaʻa i ka mea hoʻohana. I kēia hihia, ʻo kēlā mau hanana i hana ʻia ma hope e hoʻihoʻi ʻia i ka papa inoa. Ma ka hoʻomaka ʻana i kēia hana i kēlā me kēia manawa, nānā ka mea hoʻohana ʻae i ka mea e hana nei i ka pāʻani. Hoʻihoʻi hou kēia hana i kahi noi hana, hiki i ka mea hoʻohana ke pane i ka hoʻohana ʻana i ka hana hoʻouna hanana hanana o ka pāʻani.
Hoʻouna i kahi hanana pāʻani
Hana wale ka hana no nā mea pāʻani: hiki ke hoʻomaka i ka pāʻani, hana i kahi neʻe, koho, kākau i kahi leka i hōʻike ʻia ma ka papa inoa o nā hanana pāʻani, etc.
Hoʻomaka ka mea hoʻohana ʻae nāna i hana i ka pāʻani e hāʻawi i nā kuleana i nā poʻe āpau i ka pāʻani, me lākou iho, pono lākou e hōʻoia i kā lākou kuleana me ka hoʻohana ʻana i ka hana like. Ke hoʻopaʻa ʻia nā kuleana a pau, hoʻololi koke ka pāʻani i ke ʻano pō.
Helu helu pāʻani
Hoʻohana wale ka hana no nā mea pāʻani; hōʻike ia i ke kūlana o ka pāʻani, ka papa inoa a me ka helu o nā mea pāʻani (inoa inoa), nā kuleana a me ko lākou kūlana (neʻe a i ʻole ʻole), a me nā ʻike ʻē aʻe. E like me ka hana mua, hana wale nā mea āpau no nā mea pāʻani.
Hoʻolaha ʻia nā hana i kēlā me kēia manawa
Inā ʻaʻole i hoʻokuʻu ʻia ka pāʻani no kekahi manawa i ʻōlelo ʻia i ka wā e hana ai i ka pāʻani, e hoʻoneʻe ʻia ia mai ka papa inoa o nā pāʻani ikaika me ka hoʻohana ʻana i ka hana maʻemaʻe.
ʻO kekahi hana maʻamau ka hoʻololi ʻana i ke ʻano pāʻani mai ka pō a i ke ao a hoʻi i nā pāʻani i hana ʻole ʻia i ka wā o ka manawa (no ka laʻana, ʻo kahi mea pāʻani pono e pane i kahi hanana pāʻani ʻaʻole i hoʻouna i kāna hopena no kekahi kumu. ).