OpenFaas에서 Python para desplegar의 기능 생성(2/2)

8161 단어 spanishopenfaaspython
Lo primero que necesitamos es el cliente de Open Faas “faas-cli” para lo cual podemos escoger desde su página los diferentes binariosCLI Install

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

좋은 웹페이지 즐겨찾기