One place for hosting & domains

      Servidores

      Sysadmin eBook: Como fazer servidores funcionarem


      Baixe o e-book completo!

      Como fazer servidores funcionarem: um guia prático para a administração de sistemas, eBook no formato EPUB

      Como fazer servidores funcionarem: um guia prático para a administração de sistemas, eBook no formato PDF

      Introdução ao e-book

      Este livro destaca habilidades práticas de administrador de sistema e arquiteturas comuns. Além disso, também ele aborda as melhores práticas aplicáveis aos sistemas de automatização e execução, em qualquer escala, de um notebook ou servidor para 1.000 ou mais. Ele foi criado para orientar você dentro da disciplina, e, com sorte, encorajar você a aprender mais sobre a administração de sistemas.

      Este livro baseia-se no programa Como fazer servidores funcionarem: um guia prático para a administração do sistema Linux, encontrado na Comunidade da DigitalOcean. O livro foi estruturado em torno de alguns tópicos centrais:

      1. Tópicos introdutórios

      2. Pilhas de tecnologia LAMP e LEMP

      3. Protegendo seus servidores

      4. Automação com o Ansible

      5. Controle de versão e integração contínua

      Sinta-se à vontade para escolher tópicos neste livro que lhe interessam e explore-os usando esses capítulos como guias. Trabalhar com este livro irá expor você a uma grande variedade de tecnologias, termos técnicos e abordagens conceituais para gerenciar servidores Linux. Aprenda de cada capítulo ou seção no seu próprio ritmo e na ordem que quiser.

      Baixe o e-book

      Baixe o e-book em formato EPUB ou PDF, seguindo os links abaixo.

      Baixe o e-book completo!

      Como fazer servidores funcionarem: um guia prático para a administração de sistemas, eBook no formato EPUB

      Como fazer servidores funcionarem: um guia prático para a administração de sistemas, eBook no formato PDF

      Para obter recursos adicionais sobre a administração de sistemas para ajudar você a começar, e para participar da comunidade DigitalOcean de outros desenvolvedores e administradores, confira nossa biblioteca crescente de tutoriais, perguntas e projetos com o sinalizador Getting Started (Começando).



      Source link

      Sysadmin eBook: Cómo hacer funcionar los servidores


      Descargue todo el EBook

      Libro electrónico Cómo hacer funcionar los servidores: Guía práctica para la administración de sistemas en formato EPUB

      Libro electrónico Cómo hacer funcionar los servidores: Guía práctica para la administración de sistemas en formato PDF

      Introducción al libro electrónico

      En este libro, se destacan las habilidades prácticas de los administradores de sistemas, las arquitecturas comunes que encontrará y las mejores prácticas que se aplican a la automatización y la ejecución de sistemas a cualquier escala, desde una computadora portátil o un servidor hasta 1000 o más.  Está diseñado para ayudar a orientarlo dentro de la disciplina, y esperamos que lo anime a aprender más sobre la administración de sistemas.

      Este libro se basa en el plan de estudios Cómo hacer funcionar servidores: guía práctica para la administración de sistemas Linux, disponible en la comunidad de DigitalOcean. Su estructura se basa en algunos temas centrales:

      1. Temas introductorios

      2. Pilas de tecnología LAMP y LEMP

      3. Proteger sus servidores

      4. Automatización con Ansible

      5. Control de versiones e integración continua

      Puede elegir los temas de este libro que le interesen y explorarlos usando estos capítulos como guía. Trabajar con este libro lo expondrá a una amplia variedad de tecnologías, términos técnicos y enfoques conceptuales para administrar servidores de Linux. Puede trabajar con cada capítulo o sección a su propio ritmo y en cualquier orden que desee.

      Descargar el libro electrónico

      Puede descargar el libro electrónico en formato EPUB o PDF siguiendo los enlaces que se muestran a continuación.

      Descargue todo el EBook

      Libro electrónico Cómo hacer funcionar los servidores: Guía práctica para la administración de sistemas en formato EPUB

      Libro electrónico Cómo hacer funcionar servidores: guía práctica para la administración de sistemas en formato PDF

      Para obtener recursos adicionales de administración de sistemas que lo ayuden a comenzar, y para participar en la comunidad de DigitalOcean de otros desarrolladores y administradores, consulte nuestra creciente biblioteca de tutoriales, preguntas y proyectos con la etiqueta “Introducción”.



      Source link

      Cómo ejecutar funciones sin servidores usando OpenFAaS en Kubernetes de DigitalOcean


      El autor seleccionó la Free and Open Source Fund para recibir una donación como parte del programa Write for DOnations.

      Introducción

      Normalmente, para alojar una aplicación de software en Internet se requiere gestión, planificación y seguimiento de infraestructuras para un sistema monolítico. A diferencia de este enfoque tradicional, la arquitectura sin servidores (también conocida como función como servicio o “FaaS”) descompone su aplicación en funciones. Estas funciones son entidades sin estados previos, autocontenidas, incluso activadas y funcionalmente completas que se comunican a través de las API que gestiona en lugar del aprovisionamiento de hardware subyacente o infraestructuras explícitas. Las funciones son escalables por diseño, portátiles, de configuración más rápida y más fáciles de probar que las aplicaciones comunes. Para funcionar, la arquitectura sin servidor en principio requiere un método para encapsular y organizar funciones independiente de la plataforma.

      OpenFaaS es un marco de código abierto que permite implementar la arquitectura sin servidor en Kubernetes usando contenedores de Docker para almacenar y ejecutar funciones. Permite que cualquier programa se encapsule como un contenedor y se administre como una función a través de la línea de comandos o la IU web integrada. OpenFaaS tiene una excelente compatibilidad para métricas y ofrece autoescalado para funciones cuando se incrementa la demanda.

      A través de este tutorial, implementará OpenFaaS a su clúster de Kubernetes de DigitalOcean en su dominio y lo protegerá usando certificados TLS gratuitos de Let’s Encrypt. También explorará su IU web e implementará funciones existentes y nuevas usando faas-cli, la herramienta de línea de comandos oficial. Al final, tendrá un sistema flexible para implementar funciones sin servidor.

      Requisitos previos

      • Un clúster de Kubernetes de DigitalOcean con su conexión configurada como kubectl predeterminado. El clúster debe tener al menos 8 GB de RAM y 4 núcleos de CPU disponibles para OpenFAaS (necesitará más si el uso es mayor). Verá las instrucciones para configurar kubectl en el paso Establecer conexión con su clúster cuando cree su clúster. Para crear un clúster de Kubernetes en DigitalOcean, consulte la Guía de inicio rápido de Kubernetes.
      • Docker instalado en su máquina local. Siguiendo los pasos 1 y 2 para su distribución, consulte Cómo instalar Docker.
      • Una cuenta en Docker Hub para almacenar imágenes de Docker que creará durante este tutorial.
      • faas-cli, la herramienta oficial de CLI para gestionar OpenFaaS, debe estar instalada en su máquina local. Si desea acceder a instrucciones para varias plataformas, consulte los documentos oficiales.
      • Un administrador de paquetes de Helm instalado en su máquina local. Para ello, complete el paso 1 y añada el repositorio stable del paso 2 del tutorial Cómo instalar software en clústeres de Kubernetes con el gestor de paquetes de Helm 3.
      • El controlador de Ingress de Nginx y Cert-Manager instalados en su clúster usando Helm para exponer OpenFaaS usando los recursos de Ingress. Para hacerlo, consulte Cómo configurar un Ingress de Nginx en Kubernetes de DigitalOcean usando Helm.
      • Un nombre de dominio registrado por completo para alojar OpenFaaS apuntando al equilibrador de carga utilizado por el Ingress de Nginx. Para este tutorial, se utilizará openfaas.your_domain en todo momento. Puede adquirir un nombre de dominio en Namecheap, obtener uno gratuito en Freenom o utilizar un registrador de dominios que elija.

      Nota: El nombre de dominio que use en este tutorial debe ser distinto del que use en el tutorial “Cómo configurar un Ingress de Nginx en Kubernetes de DigitalOcean”, de los requisitos previos.

      Paso 1: Instalar OpenFAaS usando Helm

      En este paso, instalará OpenFaaS en su clúster de Kubernetes usando Helm y lo expondrá en su dominio.

      Como parte del requisito previo del controlador de Ingress de Nginx, creó servicios de ejemplo y un Ingress. No los necesitará en este tutorial, por lo que puede eliminarlos ejecutando los siguientes comandos:

      • kubectl delete -f hello-kubernetes-first.yaml
      • kubectl delete -f hello-kubernetes-second.yaml
      • kubectl delete -f hello-kubernetes-ingress.yaml

      Debido a que implementará funciones como objetos de Kubernetes, le resultará útil almacenarlas y hacer lo mismo con el propio OpenFaaS en espacios de nombres separados en su clúster. El espacio de nombre de OpenFaaS se llamará openfaas y el de las funciones se llamará openfaas-fn. Créelos en su clúster ejecutando el siguiente comando:

      • kubectl apply -f https://raw.githubusercontent.com/openfaas/faas-netes/master/namespaces.yml

      Verá el siguiente resultado:

      Output

      namespace/openfaas created namespace/openfaas-fn created

      A continuación, deberá añadir el repositorio de Helm de OpenFaaS, en el que se aloja el chart de OpenFaaS. Para hacer esto, ejecute el siguiente comando:

      • helm repo add openfaas https://openfaas.github.io/faas-netes/

      Helm mostrará el siguiente resultado:

      Output

      "openfaas" has been added to your repositories

      Actualice la caché del chart de Helm:

      Verá el siguiente resultado:

      Output

      Hang tight while we grab the latest from your chart repositories... ...Successfully got an update from the "openfaas" chart repository ...Successfully got an update from the "jetstack" chart repository ...Successfully got an update from the "stable" chart repository Update Complete. ⎈ Happy Helming!⎈

      Antes de instalar OpenFaaS, deberá personalizar algunos parámetros del chart. Los almacenará en su máquina local, en un archivo llamado values.yaml. Cree y abra el archivo con su editor de texto:

      Añada las siguientes líneas:

      values.yaml

      functionNamespace: openfaas-fn
      generateBasicAuth: true
      
      ingress:
        enabled: true
        annotations:
          kubernetes.io/ingress.class: "nginx"
        hosts:
          - host: openfaas.your_domain
            serviceName: gateway
            servicePort: 8080
            path: /
      

      Primero, especifique el espacio de nombre donde se almacenarán las funciones asignando openfaas-fn a la variable functionNamespace. Al fijar generateBasicAuth en el valor true, ordenará a Helm que configure la autenticación obligatoria cuando acceda a la IU web de OpenFaaS y que genere una combinación de nombre de usuario y contraseña de administrador para usted.

      A continuación, habilite la creación de Ingress y configúrelo para que use el controlador de Ingress de Nginx y proporcione el servicio de OpenFaaS gateway en su dominio.

      Recuerde sustituir openfaas.your_domain por el dominio que desee de los requisitos previos. Cuando termine, guarde y cierre el archivo.

      Por último, instale OpenFaaS en el espacio de nombres openfass con los valores personalizados:

      • helm upgrade openfaas --install openfaas/openfaas --namespace openfaas -f values.yaml

      Verá lo siguiente:

      Output

      Release "openfaas" does not exist. Installing it now. NAME: openfaas LAST DEPLOYED: ... 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" To retrieve the admin password, run: echo $(kubectl -n openfaas get secret basic-auth -o jsonpath="{.data.basic-auth-password}" | base64 --decode)

      Según se muestra en el resultado, la instalación se realizó correctamente. Ejecute el siguiente comando para ver la contraseña de la cuenta admin:

      • echo $(kubectl -n openfaas get secret basic-auth -o jsonpath="{.data.basic-auth-password}" | base64 --decode) | tee openfaas-password.txt

      La contraseña decodificada se escribe en el resultado y en un archivo llamado openfaas-password.txt al mismo tiempo usando tee. En el resultado, verá que esa es su contraseña de OpenFaaS para la cuenta admin.

      Puede ver los contenedores de OpenFaaS disponibles ejecutando el siguiente comando:

      • kubectl -n openfaas get deployments -l "release=openfaas, app=openfaas"

      Cuando todas las implementaciones se muestren como ready, escriba CTRL + C para salir.

      Ahora podrá dirigirse al dominio especificado en su navegador web. Introduzca admin como nombre de usuario y la contraseña correspondiente cuando se le solicite. Verá la IU web de OpenFaaS:

      OpenFaaS: panel de control vacío

      Instaló OpenFaaS correctamente y expuso su panel de control en su dominio. A continuación, lo protegerá usando certificados TLS gratuitos de Let´s Encrypt.

      Paso 2: Habilitar TLS para su dominio

      En este paso, protegerá su dominio expuesto usando certificados de Let´s Encrypt proporcionados por cert-manager.

      Para hacerlo, deberá editar la configuración de ingress en values.yaml. Ábralo​​​ para editarlo:

      Añada las líneas destacadas:

      values.yaml

      generateBasicAuth: true
      
      ingress:
        enabled: true
        annotations:
          kubernetes.io/ingress.class: "nginx"
          cert-manager.io/cluster-issuer: letsencrypt-prod
        tls:
          - hosts:
              - openfaas.your_domain
            secretName: openfaas-crt
        hosts:
          - host: openfaas.your_domain
            serviceName: gateway
            servicePort: 8080
            path: /
      

      El bloque tls define el secreto en el que se almacenarán los certificados de sus sitios (enumerados en hosts), lo que el ClusterIssuer letsencrypt-prod emite. Normalmente, el Secret especificado debe ser diferente para cada Ingress de su clúster.

      Recuerde sustituir openfaas.your_domain por el dominio que desee, y luego guarde y cierre el archivo.

      Aplique los cambios a su clúster ejecutando el siguiente comando:

      • helm upgrade openfaas --install openfaas/openfaas --namespace openfaas -f values.yaml

      Verá el siguiente resultado:

      Output

      Release "openfaas" has been upgraded. Happy Helming! NAME: openfaas LAST DEPLOYED: ... NAMESPACE: openfaas STATUS: deployed REVISION: 2 TEST SUITE: None NOTES: To verify that openfaas has started, run: kubectl -n openfaas get deployments -l "release=openfaas, app=openfaas" To retrieve the admin password, run: echo $(kubectl -n openfaas get secret basic-auth -o jsonpath="{.data.basic-auth-password}" | base64 --decode)

      Deberá esperar unos minutos para que los servidores de Let´s Encrypt emitan un certificado para su dominio. Mientras tanto, puede rastrear su progreso observando el resultado del siguiente comando:

      • kubectl describe certificate openfaas-crt -n openfaas

      El final del resultado será similar a este:

      Output

      Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal GeneratedKey 24m cert-manager Generated a new private key Normal Requested 16m cert-manager Created new CertificateRequest resource "openfaas-crt-1017759607" Normal Issued 16m cert-manager Certificate issued successfully

      Cuando en la última línea del resultado se muestre Certificate issued successfully, podrá salir pulsando CTRL + C. Reinice su dominio en su navegador para probar. En la parte izquierda de la barra de direcciones de su navegador, visualizará el candado. Este indicará que la conexión es segura.

      De esta manera, protegió su dominio de OpenFaaS usando certificados TLS gratuitos de Let´s Encrypt. Ahora usará la IU web y administrará funciones desde ella.

      Paso 3: Implementar funciones a través de la IU web

      En esta sección, explorará la IU web de OpenFaaS y luego implementará, administrará e invocará funciones desde ella.

      La IU web de OpenFaaS consta de dos partes principales: en el lado izquierdo, una columna en la que se enumerarán las funciones implementadas y el panel central, donde verá información detallada sobre una función seleccionada y podrá interactuar con ella.

      Para implementar una nueva función, haga clic en el botón Deploy New Function que está debajo del logo de OpenFaaS, en la parte superior izquierda. Verá un cuadro de diálogo en el que se le solicitará elegir una función:

      OpenFaaS: cuadro de diálogo Deploy a New Function

      En la pestaña FROM STORE, se enumeran funciones previamente creadas desde la OpenFass Function Store que puede implementar directamente. Cada función tiene una descripción breve y puede seleccionar el ícono del enlace a la derecha de una función para ver su código fuente. Para implementar una función de almacén desde esta lista, selecciónela y haga clic en el botón DEPLOY.

      También puede suministrar su propia función pasando a la pestaña CUSTOM:

      OpenFaaS: implementar una función personalizada

      Aquí, deberá especificar una imagen de Docker de su función que esté configurada específicamente para OpenFaaS y disponible en un registro de Docker (como Docker Hub). En este paso, implementará una función ya creada desde la tienda de OpenFaaS y luego, en los siguientes pasos, creará e implementará funciones personalizadas en Docker Hub.

      Aplicará la función NodeInfo, que ofrece datos sobre la máquina en la que se implementa, como los de arquitectura de CPU, número de núcleos, memoria RAM total disponible y tiempo de actividad (en segundos).

      Desde la lista de funciones de la tienda, seleccione NodeInfo y haga clic en DEPLOY. Pronto aparecerá en la lista de funciones implementadas.

      OpenFaaS: implementación de NodeInfo

      Selecciónelo. En la parte central de la pantalla, verá información básica sobre la función implementada.

      OpenFaaS: información sobre la función implementada

      El estado de la función se actualiza en tiempo real y pronto debería pasar a ser Ready. Si su valor permanece en Not Ready durante mucho tiempo, es probable que su clúster carezca de los recursos para aceptar un nuevo pod. Puede consultar Cómo redimensionar Droplets si necesita información para solucionar el inconveniente.

      Una vez que el valor sea Ready, podrá acceder a la función implementada en la URL indicada. Para probar esto, puede visitar la URL en su navegador o invocarla desde el panel Invoke function situado debajo de la información de la función.

      OpenFaaS: Invoke function implementada

      Puede seleccionar entre Text, JSON y Download para indicar el tipo de respuesta que espera. Si desea que la solicitud sea POST en vez de GET, puede suministrar datos de la solicitud en el campo Request body.

      Para invocar la función nodeinfo, haga clic en el botón INVOKE. OpenFaaS creará y ejecutará una solicitud HTTP según las opciones seleccionadas y completará los campos de respuesta con los datos recibidos.

      OpenFaaS: respuesta de la función nodeinfo

      El estado de respuesta es HTTP 200 OK, lo cual significa que la solicitud se ejecutó correctamente. El cuerpo de respuesta contiene información del sistema que recopila la función NodeInfo, lo que significa que es posible acceder a ella de forma adecuada y que funciona correctamente.

      Para eliminar una función, selecciónela de la lista y haga clic en el ícono de la papelera de la esquina superior derecha de la página. Cuando se le solicite, haga clic en OK para confirmar. El estado de la función cambiará a Not Ready (es decir, que se eliminará del clúster) y esta pronto desaparecerá también de la IU.

      En este paso, utilizó la IU web de OpenFaaS, además de implementar y administrar funciones desde ella. Ahora aprenderá a implementar y administrar funciones de OpenFaaS usando la línea de comandos.

      Paso 4: Administrar funciones usando faas-cli

      En esta sección, configurará la faas-cli para que funcione con su clúster. A continuación, implementará y gestionará sus funciones existentes a través de la línea de comandos.

      Para evitar tener que especificar su dominio de OpenFaaS cada vez que ejecute faas-cli, lo almacenará en una variable de entorno llamada OPENFAAS_URL, cuyo valor tomará y usará faas-cli automáticamente durante la ejecución.

      Abra .bash_profile en su directorio de inicio para editarlo:

      Añada la siguiente línea:

      ~/.bash_profile

      . . .
      export OPENFAAS_URL=https://openfaas.your_domain
      

      Recuerde sustituir openfaas.your_domain por su dominio, y luego guarde y cierre el archivo.

      Para evitar tener que iniciar sesión de nuevo, evalúe manualmente el archivo:

      Ahora, asegúrese de tener faas-cli instalado en su máquina local. Si aún no lo instaló, hágalo siguiendo las instrucciones descritas en los documentos oficiales.

      A continuación, configure sus credenciales de inicio de sesión ejecutando el siguiente comando:

      • cat ~/openfaas-password.txt | faas-cli login --username admin --password-stdin

      El resultado tendrá este aspecto:

      Output

      Calling the OpenFaaS server to validate the credentials... credentials saved for admin https://openfaas.your_domain

      Para implementar una función desde el almacén, ejecute el siguiente comando:

      • faas store deploy function_name

      Puede intentar implementar nodeinfo ejecutando lo siguiente:

      • faas store deploy nodeinfo

      Verá un resultado como el siguiente:

      Output

      Deployed. 202 Accepted. URL: https://openfaas.your_domain/function/nodeinfo

      Para enumerar las funciones implementadas, ejecute faas list:

      Aparecerán sus funciones existentes:

      Output

      Function Invocations Replicas nodeinfo 0 1

      Para obtener información detallada sobre una función implementada, utilice faas describe:

      El resultado será similar a este:

      Name:                nodeinfo
      Status:              Ready
      Replicas:            1
      Available replicas:  1
      Invocations:         0
      Image:               functions/nodeinfo-http:latest
      Function process:
      URL:                 https://openfaas.your_domain/function/nodeinfo
      Async URL:           https://openfaas.your_domain/async-function/nodeinfo
      Labels:              faas_function : nodeinfo
                           uid : 514253614
      Annotations:         prometheus.io.scrape : false
      

      Puede invocar una función con faas invoque:

      Recibirá el siguiente mensaje:

      Output

      Reading from STDIN - hit (Control + D) to stop.

      A continuación, podrá proporcionar un cuerpo de solicitud. Si lo hace, el método será POST en vez de GET. Cuando termine con la entrada de datos o desee que la solicitud sea GET, presione CTRL + D. La faas-cli ejecutará la solicitud inferida y mostrará la respuesta, de igual manera que la IU web.

      Para eliminar una función, ejecute faas remove:

      Recibirá el siguiente resultado:

      Output

      Deleting: nodeinfo. Removing old function.

      Ejecute faas list de nuevo para ver que nodeinfo se eliminó:

      Output

      Function Invocations Replicas

      En este paso, implementó, enumeró, invocó y eliminó funciones de su clúster desde la línea de comandos usando faas-cli. En el siguiente paso, creará su propia función y la implementará en su clúster.

      Paso 5: Crear e implementar una nueva función

      Ahora, creará una función de ejemplo Node.JS usando faas-cli y la implementará en su clúster.

      La función resultante que creará se empaquetará como un contenedor de Docker y se publicará en Docker Hub. Para poder publicar contenedores, deberá iniciar sesión ejecutando el siguiente comando:

      Ingrese su nombre de usuario y contraseña de Docker Hub cuando se le solicite para finalizar el proceso de inicio de sesión.

      Almacene la función de ejemplo Node.JS en una carpeta llamada sample-js-function. Créela usando el siguiente comando:

      Diríjase a ella:

      Complete el directorio con la plantilla de una función de JS ejecutando el siguiente comando:

      • faas new sample-js --lang node

      El resultado tendrá el siguiente aspecto:

      Output

      2020/03/24 17:06:08 No templates found in current directory. 2020/03/24 17:06:08 Attempting to expand templates from https://github.com/openfaas/templates.git 2020/03/24 17:06:10 Fetched 19 template(s) : [csharp csharp-armhf dockerfile go go-armhf java11 java11-vert -x java8 node node-arm64 node-armhf node12 php7 python python-armhf python3 python3-armhf python3-debian ru by] from https://github.com/openfaas/templates.git Folder: sample-js created. ___ _____ ____ / _ _ __ ___ _ __ | ___|_ _ __ _/ ___| | | | | '_ / _ '_ | |_ / _` |/ _` ___ | |_| | |_) | __/ | | | _| (_| | (_| |___) | ___/| .__/ ___|_| |_|_| __,_|__,_|____/ |_| Function created in folder: sample-js Stack file written: sample-js.yml ...

      Como se muestra en el resultado, el código para la función se encuentra en la carpeta sample-js, mientras que la configuración de OpenFaaS para la función se encuentra en el archivo sample-js.yaml. En el directorio sample-js (que se parece a un proyecto normal de Node.Js) hay dos archivos: handler.js y package.json.

      handler.js contiene código de JS real que mostrará una respuesta cuando se invoque la función. El contenido del operador tiene el siguiente aspecto:

      sample-js-function/sample-js/handler.js

      "use strict"
      
      module.exports = async (context, callback) => {
          return {status: "done"}
      }
      

      Exporta una lambda function con dos parámetros, un context con datos de la solicitud y un callback que puede usar para transmitir datos de respuesta, en vez de solo devolverlo.

      Abra este archivo para editarlo:

      • nano sample-js/handler.js

      Cambie la línea resaltada como se indica:

      sample-js-function/sample-js/handler.js

      "use strict"
      
      module.exports = async (context, callback) => {
          return {status: "<h1>Hello Sammy!</h1>"}
      }
      

      Cuando termine, guarde y cierre el archivo. Cuando se invoque, esta función de OpenFaaS escribirá Hello Sammy! en la respuesta.

      A continuación, abra el archivo de configuración para su edición:

      Tendrá el siguiente aspecto:

      sample-js-function/sample-js.yml

      version: 1.0
      provider:
        name: openfaas
        gateway: https://openfaas.your_domain
      functions:
        sample-js:
          lang: node
          handler: ./sample-js
          image: sample-js:latest
      

      Para el provider, especifica openfaas y una puerta de enlace predeterminada. A continuación, define la función sample-js, especifica su lenguaje (node), su operador y nombre de imagen de Docker, que deberá modificar para incluir su nombre de usuario de la cuenta de Docker Hub, como se indica:

      sample-js-function/sample-js.yml

      version: 1.0
      provider:
        name: openfaas
        gateway: http://127.0.0.1:8080
      functions:
        sample-js:
          lang: node
          handler: ./sample-js
          image: your_docker_hub_username/sample-js:latest
      

      Guarde y cierre el archivo.

      A continuación, cree la imagen de Docker, envíela a Docker Hub e impleméntela en su clúster al mismo tiempo ejecutando el siguiente comando:

      Habrá muchos resultados (principalmente de Docker), que terminarán de forma similar a esta:

      Output

      . . . [0] < Pushing sample-js [your_docker_hub_username/sample-js:latest] done. [0] Worker done. Deploying: sample-js. Deployed. 202 Accepted. URL: https://openfaas.your_domain/function/sample-js

      Invoque su función recién implementada para asegurarse de que funcione:

      Pulse CTRL + D. Verá el siguiente resultado:

      Output

      <h1>Hello Sammy!</h1>

      Esto significa que la función se empaquetó e implementó correctamente.

      Puede eliminar la función ejecutando lo siguiente:

      Con esto. habrá creado e implementado correctamente una función de Node.JS personalizada en su instancia de OpenFaaS de su clúster.

      Conclusión

      Implementó OpenFaaS en su clúster de Kubernetes de DigitalOcean y está listo para implementar funciones previamente creadas y personalizadas, y para acceder a ellas. Ahora podrá implementar la Function como una arquitectura de servicio, que puede aumentar el uso de recursos y mejorar el rendimiento de sus aplicaciones.

      Si desea obtener más información sobre funciones de OpenFaaS avanzadas, como ajuste de escala automático para sus funciones implementadas y la supervisión del rendimiento de estas, consulte los documentos oficiales.



      Source link