Guía para implementar contenedores en Google Cloud Run

Google Cloud Run es una de las soluciones rápidas y escalables para la implementación de su API a través de una conexión https segura y puede considerarse como la primera opción de todos los desarrolladores. Bueno, firebase es para sitios web estáticos, ¿verdad? ¿Qué pasa si también podemos implementar sitios web dinámicos en firebase? Todo lo que necesitas es Cloud Run . Aquí, en este tutorial, le mostraremos cómo puede implementar un sitio web simple en Cloud Run. Usaremos Flask para el sitio web. Primero configure su sistema con Google Cloud SDK. Si no sabe cómo hacerlo, le recomiendo que lea su documentación oficial aquí .

Habilitar la API de Cloud Run

A continuación, debe habilitar la API de Cloud Run .

  • Vaya a Marketplace en Cloud Console.
  • Luego busque la API Cloud Run y ​​habilítela
  • Después de realizar todos estos pasos, su página debería verse así

    CLOUD RUN API

Creando el proyecto

Ahora empieza la parte divertida. Vayamos al código.

  • Primero cree una carpeta de proyecto. En mi caso, usaré el nombre Cloud Run Tutorial .
  • Vaya a la carpeta del proyecto y cree un archivo llamado requirements.txt y agregue Flask==1.1.1 al archivo.
  • Ahora cree un archivo python llamado app.py y agréguele las siguientes líneas.

    # importing Flask
    from flask import Flask
    app = Flask(__name__)
      
    # specifying the route
    @app.route('/')
    def hello_world():
        return 'Hello, World !'
      
    # this if block make sure that Flask app runs 
    # only if the file is executed directly
    if __name__ == '__main__':
        # exposing port 8080 of localhost
        app.run(host ='0.0.0.0', port = 8080)

    Si tiene alguna confusión con el código anterior o desea obtener más información, prefiero que lea la documentación del matraz aquí .

  • A continuación, cree un Dockerfile con el nombre Dockerfile (sin ninguna extensión) y agréguele las siguientes líneas de código.

    #pulls python 3.7’s image from the docker hub
    FROM python:alpine3.7 
    #copies the flask app into the container
    COPY . /app
    #sets the working directory
    WORKDIR /app
    #install each library written in requirements.txt
    RUN pip install -r requirements.txt 
    #exposes port 8080
    EXPOSE 8080 
    #Entrypoint and CMD together just execute the command 
    #python app.py which runs this file
    ENTRYPOINT [ "python"
    CMD [ "app.py"

    Implementar el proyecto

    Ahora su proyecto está listo para ser implementado. Para implementarlo en Google Cloud Run, debemos incluir el proyecto en un contenedor y el contenedor en Google Container Registry (gcr).

    Veamos cómo se puede hacer.

    • Vaya al directorio de su proyecto y abra la terminal.
    • Escribe gcloud init y selecciona el proyecto de GCP en el que deseas implementar el sitio web y anota la identificación del proyecto.
    • Escriba export project_id=THE_PROJECT_ID_NOTED .
    • Luego, escribe gcloud builds submit –tag gcr.io/${project_id}/helloworld:v1 . Esto tardará unos minutos en completarse.
    • Luego escriba gcloud run deployment –image gcr.io/${project_id}/helloworld:v1 –platform Managed
      • Se le pedirá el nombre del servicio: presione ENTER para aceptar el nombre predeterminado, helloworld .
      • Se le pedirá la región: seleccione la región de su elección.
      • Se le pedirá que permita invocaciones no autenticadas : respond y

      Luego, espere unos momentos hasta que se complete la implementación. En caso de éxito, la línea de comando muestra la URL del servicio.

    • Visite su contenedor implementado abriendo la URL del servicio en un navegador web.

    Producción-

    Si ha realizado todos los pasos correctamente, su página de Cloud Run debería verse así
    Final Cloud Run

    ¡Felicidades! Acaba de implementar una aplicación empaquetada en una imagen de contenedor en Cloud Run. Cloud Run escala de forma automática y horizontal la imagen de su contenedor para manejar las requests recibidas, luego se reduce cuando la demanda disminuye.

Publicación traducida automáticamente

Artículo escrito por debdutgoswami y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *