OpenFaas에서 Python para desplegar의 기능 생성(2/2)
En mi caso y para este ejemplo lo realizaré en Windows, para descargar el cliente lo primero es obtener la versión última del cli:
$version = (Invoke-WebRequest "https://api.github.com/repos/openfaas/faas-cli/releases/latest" | ConvertFrom-Json)[0].tag_name
Y ahora descargamos el ejecutable de acuerdo a la última 버전:
(New-Object System.Net.WebClient).DownloadFile("https://github.com/openfaas/faas-cli/releases/download/$version/faas-cli.exe", "faas-cli.exe")
Podríamos agregar como variable de entorno en la ruta PATH para poder acceder a él sin necesidad de invocar toda la ruta o sino utilizarlo mediante la ruta absoluta del ejecutable.
En el blog anterior hable sobre la instalación de OpenFaas en el cual al finalizar se obtiene el password del servidor para poder ingresar
Ese password guardaremos en un archive para poder iniciar sesión llamado "password.txt"esta es una forma de realizar el login, postiormente conectamos utilizando el archive "password.txt"apuntando al gateway de openfaas
cat .\password.txt | faas-cli.exe login -s --gateway https://faas.jevillanueva.dev
Nos generá las credenciales para nuestro usuario almacenado en la carpeta de "usuarios/.openfaas".
Fass CLI, nos permite gestionar las imágenes de docker para ser cargadas a openfaas, utilizando build, push, deploy y up.
다양한 옵션을 사용할 수 있는 다양한 옵션이 있습니다templates.
Para esta guía utilizaremos python
faas-cli 새로운 에코 --lang python3
Genera una estructura de proyecto similar a esta
En el archivo handler.py se encuentra el request que se recibirá cuando esté en línea
def handle(req):
"""handle a request to the function
Args:
req (str): request body
"""
return req
Modificaremos el archivo “echo.yml” con las características de nuestro servidor de openfaas
#echo.yml
version: 1.0
provider:
name: openfaas
gateway: https://faas.jevillanueva.dev/ #Dirección del servidor openfaas
functions:
echo:
lang: python3
handler: ./echo
image: jevillanueva/echo-openfaas:latest #nombre de la imagen de docker
컨테이너 레지스트리에서 Docker Hub를 사용하여 배포할 수 있도록 이미지를 공개적으로 사용하고 배포할 수 있습니다.
Realizamos 엘 빌드
faas-cli build -f ./echo.yml
Subimos 알 도커 허브
faas-cli push -f ./echo.yml
Una vez compilada y publicada la imagen en el docker hub ya podemos levantar la función en nuestro servidor openfaas
Levantamos la función utilizando
faas-cli deploy -f ./echo.yml
Podemos visualizar desde la página de administración la función e invocar.
Podemos probar nuestro endpoint utilizando postman o un curl
curl --request GET 'https://faas.jevillanueva.dev/function/echo' --header 'Content-Type: application/json' --data-raw '{"message": "Hola Mundo"}'
추가의
Como estamos trabajando sobre Windows en un equipment con Arquitectura de 64 Bits, y el servidor de OpenFaas está sobre ARM64 necesitaremos compilar las imágenes de docker de manera compatible para ARM utilizaremos para estoBuildx, donde nos permitirá otra forma de generar las imagenes y QEMU ARM 가상화용. Para lo cual primero debemos descargar las herramientas de QEMU
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
Una vez descargadas las herramientas se puede realizar el publish multiarch en docker hub
faas-cli publish -f ./echo.yml --platforms linux/arm64,linux/amd64
El proyecto implementado se encuentra en:
https://github.com/jevillanueva/echo-openfaas
https://hub.docker.com/r/jevillanueva/echo-openfaas
추천 활용:
https://docs.openfaas.com/cli/install/
https://docs.openfaas.com/cli/templates/
https://docs.docker.com/build/buildx/
https://www.qemu.org/
Para ver el post anterior de levantamiento de servidor de Open Faas pueden ver el post anterior
Ahí les dejo mi página personal jevillanueva.dev
Reference
이 문제에 관하여(OpenFaas에서 Python para desplegar의 기능 생성(2/2)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jevillanueva/crear-una-funcion-en-python-para-desplegar-en-openfaas-22-2k9e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)