Configurar servicios

El archivo services.yaml define los servicios admitidos y utilizados por Adobe Commerce en la infraestructura de la nube, como MySQL, Redis y Elasticsearch o OpenSearch. No es necesario suscribirse a proveedores de servicios externos.

NOTE
El archivo .magento/services.yaml se administra localmente en el directorio .magento del proyecto. Se accede a la configuración durante el proceso de compilación para definir las versiones de servicio necesarias solo en el entorno de integración y se elimina una vez completada la implementación, por lo que no se encontrarán en el servidor.

El script de implementación utiliza los archivos de configuración del directorio .magento para aprovisionar el entorno con los servicios configurados. Hay un servicio disponible para su aplicación si está incluido en la propiedad relationships del archivo .magento.app.yaml. El archivo services.yaml contiene los valores type y disk. El tipo de servicio define el servicio name y version.

Al cambiar una configuración de servicio, una implementación aprovisiona el entorno con los servicios actualizados, lo que afecta a los siguientes entornos:

  • Todos los entornos iniciales, incluida la producción master
  • Entornos de integración Pro
TIP
Para los proyectos Pro, debe enviar un ticket de soporte de Adobe Commerce para instalar o actualizar servicios solo en Staging y Production entornos.
Indique los cambios de servicio necesarios, incluya los .magento.app.yaml y services.yaml archivos actualizados y especifique la versión de PHP en el ticket. Para ver los cambios de autoservicio en la versión, las extensiones o la configuración del entorno de PHP, consulte Configuración de PHP en Configuración de la aplicación.
Para los cambios en un entorno de producción activo (Solo Pro), se requiere un aviso con un mínimo de 48 horas. Esto permite al equipo de infraestructura en la nube disponer de tiempo suficiente para recopilar recursos y realizar una actualización segura. El periodo de aviso comienza cuando el equipo de infraestructura reconoce la solicitud y programa la actualización, excepto los fines de semana. Por ejemplo, para que las actualizaciones del servicio se completen un lunes, se debe recibir un acuse de recibo de la actualización programada antes del miércoles. Durante los períodos de mayor demanda, puede tardar más tiempo en procesar la solicitud.

Servicios predeterminados y admitidos

La infraestructura en la nube admite e implementa los siguientes servicios:

Puede ver las versiones y los valores de disco predeterminados en el archivo default services.yaml actual. El siguiente ejemplo muestra los servicios mysql, redis, opensearch o elasticsearch, y rabbitmq definidos en el archivo de configuración services.yaml:

mysql:
    type: mysql:10.4
    disk: 5120

redis:
    type: redis:6.2

opensearch:
    type: opensearch:2  # minor version not required; uses latest
    disk: 1024

rabbitmq:
    type: rabbitmq:3.9
    disk: 1024

Valores de servicio

Debe proporcionar el identificador de servicio y la configuración del tipo de servicio type: <name>:<version>. Si el servicio utiliza almacenamiento persistente, debe proporcionar un valor de disco.

Utilice el siguiente formato:

<service-id>:
    type: <name>:<version>
    disk: <value-MB>

service-id

El valor service-id identifica el servicio en el proyecto. Solo puede utilizar caracteres alfanuméricos en minúsculas: a a z y 0 a 9, como redis.

Este valor de service-id se usa en la propiedad relationships del archivo de configuración .magento.app.yaml:

relationships:
    redis: "<name>:redis"

Puede asignar nombres a varias instancias de cada tipo de servicio. Por ejemplo, puede utilizar varias instancias de Redis, una para la sesión y otra para la caché.

redis:
    type: redis:<version>

redis2:
    type: redis:<version>

Al cambiar el nombre de un servicio en el archivo services.yaml se quita de forma permanente lo siguiente:

  • El servicio existente antes de crear un servicio con el nuevo nombre especificado.
  • Se eliminarán todos los datos existentes del servicio. El Adobe recomienda encarecidamente que realice una copia de seguridad de su entorno de inicio antes de cambiar el nombre de un servicio existente.

type

El valor type especifica el nombre y la versión del servicio. Por ejemplo:

mysql:
    type: mysql:10.4

disk

El valor disk especifica el tamaño del almacenamiento en disco persistente (en MB) que se va a asignar al servicio. Los servicios que utilizan almacenamiento persistente, como MySQL, deben proporcionar un valor de disco. Los servicios que utilizan memoria en lugar de almacenamiento persistente, como Redis, no requieren un valor de disco.

mysql:
    type: mysql:10.4
    disk: 5120

La cantidad de almacenamiento predeterminada actual por proyecto es de 5 GB o 512 0 MB. Puede distribuir esta cantidad entre su aplicación y cada uno de sus servicios.

Relaciones de servicio

En Adobe Commerce en proyectos de infraestructura en la nube, las relaciones del servicio configuradas en el archivo .magento.app.yaml determinan qué servicios están disponibles para su aplicación.

Puede recuperar los datos de configuración de todas las relaciones de servicio desde la variable de entorno $MAGENTO_CLOUD_RELATIONSHIPS. Los datos de configuración incluyen el nombre, el tipo y la versión del servicio junto con los detalles de conexión necesarios, como el número de puerto y las credenciales de inicio de sesión.

Para comprobar las relaciones en el entorno local:

  1. En el entorno local, muestre las relaciones del entorno activo.

    code language-bash
    magento-cloud relationships
    
  2. Confirme service y type de la respuesta. La respuesta proporciona información de conexión, como la dirección IP y el número de puerto.

    Respuesta de muestra abreviada

    code language-yaml
    redis:
        -
    ...
            type: 'redis:7.0'
            port: 6379
    elasticsearch:
        -
    ...
            type: 'opensearch:2'
            port: 9200
    database:
        -
    ...
            type: 'mysql:10.6'
            port: 3306
    

Para comprobar las relaciones en entornos remotos:

  1. Utilice SSH para iniciar sesión en el entorno remoto.

  2. Enumerar los datos de configuración de relaciones para todos los servicios configurados en el entorno.

    code language-bash
    echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_pp
    

    o bien, use el siguiente comando ece-tools para ver las relaciones:

    code language-bash
    php ./vendor/bin/ece-tools env:config:show services
    
  3. Confirme service y type de la respuesta. La respuesta proporciona información de conexión, como la dirección IP y el número de puerto, así como las credenciales de nombre de usuario y contraseña necesarias.

Versiones de servicio

La compatibilidad y la versión del servicio para Adobe Commerce en la infraestructura en la nube están determinadas por las versiones implementadas y probadas en la infraestructura en la nube, y a veces difieren de las versiones admitidas por las implementaciones locales de Adobe Commerce. Consulte Requisitos del sistema en la guía Instalación para obtener una lista de dependencias de software de terceros que el Adobe ha probado con versiones específicas de Adobe Commerce y Magento Open Source.

Comprobaciones de EOL de software

Durante el proceso de implementación, el paquete ece-tools comprueba las versiones de servicio instaladas con las fechas de fin de vida útil (EOL) de cada servicio.

  • Si la versión de un servicio se encuentra en los tres meses siguientes a la fecha límite, se muestra una notificación en el registro de implementación.
  • Si la fecha límite se sitúa en el pasado, aparece una notificación de advertencia.

Para mantener la seguridad de la tienda, actualice las versiones de software instaladas antes de que lleguen a EOL. Puede revisar las fechas límite en el archivo eol.yaml de ece-tools.

Migrar a OpenSearch

WARNING
Adobe Commerce no admite Elasticsearch 7.11 y versiones posteriores en infraestructuras en la nube. Las versiones de Adobe Commerce 2.3.7-p3, 2.4.3-p2 y 2.4.4 y posteriores admiten el servicio OpenSearch. Las instalaciones locales siguen siendo compatibles con Elasticsearch.

Para la versión 2.4.4 y posterior de Adobe Commerce, consulte Configuración del servicio OpenSearch.

Cambiar la versión del servicio

Puede actualizar la versión del servicio instalado para que sea compatible con la versión de Adobe Commerce implementada en su entorno de nube.

No puede actualizar directamente la versión del servicio para un servicio instalado. Sin embargo, puede crear un servicio con la versión requerida. Consulte Versión del servicio de downgrade.

Actualizar la versión del servicio instalado

Puede actualizar la versión del servicio instalado actualizando la configuración del servicio en el archivo services.yaml.

  1. Cambiar el valor type para el servicio en el archivo .magento/services.yaml:

    Definición del servicio original

    code language-yaml
    mysql:
        type: mysql:10.3
        disk: 2048
    

    Definición de servicio actualizada

    code language-yaml
    mysql:
        type: mysql:10.4
        disk: 5120
    
  2. Agregue, confirme e inserte los cambios de código.

    code language-bash
    git add .magento/services.yaml
    
    code language-bash
    git commit -m "Upgrade MySQL from MariaDB 10.3 to 10.4."
    
    code language-bash
    git push origin <branch-name>
    

Versión de downgrade

No puede reducir un servicio instalado directamente. Tiene dos opciones:

  1. Cambie el nombre de un servicio existente con la nueva versión, que elimina el servicio y los datos existentes, y agrega uno nuevo.

  2. Cree un servicio de y guarde los datos del servicio existente.

Cuando cambie la versión del servicio, debe actualizar la configuración del servicio en el archivo services.yaml y actualizar las relaciones en el archivo .magento.app.yaml.

Para reducir la versión de un servicio cambiando el nombre de un servicio existente:

  1. Cambie el nombre del servicio existente en el archivo .magento/services.yaml y cambie la versión.

    note warning
    WARNING
    Al cambiar el nombre de un servicio existente, se sustituye y se eliminan todos los datos. Si necesita conservar los datos, cree un servicio en lugar de cambiar el nombre del servicio existente.

    Por ejemplo, para reducir la versión de MariaDB para el servicio mysql de la versión 10.4 a la 10.3, cambie la configuración existente de service-id y type.

    Definición de services.yaml original

    code language-yaml
    mysql:
        type: mysql:10.4
        disk: 5120
    

    Nueva definición de services.yaml

    code language-yaml
    mysql2:
         type: mysql:10.3
         disk: 5120
    
  2. Actualice las relaciones en el archivo .magento.app.yaml.

    Configuración original de .magento.app.yaml

    code language-yaml
    relationships:
        database: "mysql:mysql"
    

    Se actualizó la configuración de .magento.app.yaml

    code language-yaml
    relationships:
        database: "mysql2:mysql"
    
  3. Agregue, confirme e inserte los cambios de código.

Para reducir la categoría de un servicio creando un servicio:

  1. Agregue una definición de servicio al archivo services.yaml para su proyecto con la especificación de versión degradada. Consulte mysql2 en el siguiente ejemplo:

    services.yaml

    code language-yaml
    mysql:
        type: mysql:10.4
        disk: 5120
    mysql2:
        type: mysql:10.3
        disk: 5120
    
  2. Cambie la configuración de relaciones en el archivo .magento.app.yaml para utilizar el nuevo servicio.

    Configuración original de .magento.app.yaml

    code language-yaml
    relationships:
        database: "mysql:mysql"
    

    Nueva configuración de .magento.app.yaml

    code language-yaml
    relationships:
        database: "mysql2:mysql"
    
  3. Agregue, confirme e inserte los cambios de código.

recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26