Configurar serviços

O arquivo services.yaml define os serviços com suporte e usados pelo Adobe Commerce na infraestrutura em nuvem, como MySQL, Redis e Elasticsearch ou OpenSearch. Não é necessário assinar provedores de serviços externos.

NOTE
O arquivo .magento/services.yaml é gerenciado localmente no diretório .magento do seu projeto. A configuração é acessada durante o processo de criação para definir as versões de serviço necessárias somente no ambiente de integração e é removida após a conclusão da implantação. Portanto, você não as encontrará no servidor.

O script de implantação usa os arquivos de configuração no diretório .magento para provisionar o ambiente com os serviços configurados. Um serviço ficará disponível para o aplicativo se for incluído na propriedade relationships do arquivo .magento.app.yaml. O arquivo services.yaml contém os valores de tipo e disco. O tipo de serviço define o serviço nome e versão.

Alterar uma configuração de serviço faz com que uma implantação provisione o ambiente com os serviços atualizados, o que afeta os seguintes ambientes:

  • Todos os ambientes iniciais, incluindo Produção master
  • Ambientes de integração Pro
TIP
Para projetos Pro, você deve enviar um tíquete de Suporte da Adobe Commerce para instalar ou atualizar os serviços somente em ambientes Staging e Production.
Indique as mudanças de serviço necessárias, inclua os arquivos atualizados do .magento.app.yaml e do services.yaml e informe a versão do PHP no tíquete. Para alterações de autoatendimento na versão, extensões ou configurações do ambiente do PHP, consulte configurações do PHP em Configuração do aplicativo.
Para alterações em um ambiente de Produção em tempo real (Somente profissionais), é necessário um aviso de no mínimo 48 horas. Isso permite que a equipe de infraestrutura da nuvem tenha tempo suficiente para empacotar recursos e realizar uma atualização segura. O período de aviso começa quando a equipe de infraestrutura reconhece a solicitação e programa a atualização, exceto nos finais de semana. Por exemplo, para que os upgrades de serviço sejam concluídos na segunda-feira, uma confirmação do upgrade agendado deve ser recebida até quarta-feira. Durante períodos de pico de demanda, pode levar mais tempo para processar sua solicitação.

Serviços padrão e compatíveis

A infraestrutura em nuvem é compatível com os seguintes serviços e os implanta:

Você pode exibir versões padrão e valores de disco no arquivo services.yaml padrão atual. A amostra a seguir mostra os serviços mysql, redis, opensearch ou elasticsearch e rabbitmq definidos no arquivo de configuração 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 serviço

Você deve fornecer a ID de serviço e a configuração de tipo de serviço type: <name>:<version>. Se o serviço usar armazenamento persistente, você deverá fornecer um valor de disco.

Usar o seguinte formato:

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

service-id

O valor service-id identifica o serviço no projeto. Você só pode usar caracteres alfanuméricos minúsculos: a a z e 0 a 9, como redis.

O valor service-id é usado na propriedade relationships do arquivo de configuração .magento.app.yaml:

relationships:
    redis: "<name>:redis"

Você pode nomear várias instâncias de cada tipo de serviço. Por exemplo, você pode usar várias instâncias Redis — uma para sessão e outra para cache.

redis:
    type: redis:<version>

redis2:
    type: redis:<version>

Renomear um serviço no arquivo services.yaml remove permanentemente o seguinte:

  • O serviço existente antes de criar um serviço com o novo nome especificado.
  • Todos os dados existentes para o serviço são removidos. A Adobe recomenda que você faça backup de seu ambiente de Início antes de alterar o nome de um serviço existente.

type

O valor type especifica o nome e a versão do serviço. Por exemplo:

mysql:
    type: mysql:10.4

disk

O valor disk especifica o tamanho do armazenamento de disco persistente (em MB) a ser alocado para o serviço. Os serviços que usam armazenamento persistente, como o MySQL, devem fornecer um valor de disco. Os serviços que usam memória em vez de armazenamento persistente, como Redis, não exigem um valor de disco.

mysql:
    type: mysql:10.4
    disk: 5120

A quantidade de armazenamento padrão atual por projeto é de 5 GB ou 512 0 MB. Você pode distribuir essa quantidade entre seu aplicativo e cada um de seus serviços.

Relacionamentos de serviço

Em projetos de infraestrutura na nuvem do Adobe Commerce, as relações do serviço configuradas no arquivo .magento.app.yaml determinam quais serviços estão disponíveis para o seu aplicativo.

Você pode recuperar os dados de configuração de todas as relações de serviço da variável de ambiente $MAGENTO_CLOUD_RELATIONSHIPS. Os dados de configuração incluem o nome, o tipo e a versão do serviço, juntamente com todos os detalhes de conexão necessários, como o número da porta e as credenciais de logon.

Para verificar relações no ambiente local:

  1. No ambiente local, mostrar as relações do ambiente ativo.

    code language-bash
    magento-cloud relationships
    
  2. Confirme os service e type da resposta. A resposta fornece informações de conexão, como endereço IP e número da porta.

    Resposta de amostra 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 verificar relações em ambientes remotos:

  1. Use o SSH para fazer logon no ambiente remoto.

  2. Listar os dados de configuração de relacionamentos para todos os serviços configurados no ambiente.

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

    ou use o seguinte comando ece-tools para exibir relações:

    code language-bash
    php ./vendor/bin/ece-tools env:config:show services
    
  3. Confirme os service e type da resposta. A resposta fornece informações de conexão, como endereço IP e número da porta, além de quaisquer credenciais de nome de usuário e senha necessárias.

Versões de serviço

O suporte à versão do serviço e à compatibilidade do Adobe Commerce na infraestrutura em nuvem é determinado pelas versões implantadas e testadas na infraestrutura em nuvem e, às vezes, difere das versões compatíveis com implantações locais do Adobe Commerce. Consulte Requisitos do sistema no guia Instalação para obter uma lista de dependências de software de terceiros que o Adobe testou com versões específicas do Adobe Commerce e do Magento Open Source.

Verificações de EOL de software

Durante o processo de implantação, o pacote ece-tools verifica as versões de serviço instaladas em relação às datas de fim da vida útil (EOL) de cada serviço.

  • Se uma versão do serviço estiver dentro de três meses da data EOL, uma notificação será exibida no log de implantação.
  • Se a data EOL estiver no passado, uma notificação de aviso será exibida.

Para manter a segurança da loja, atualize as versões de software instaladas antes que elas atinjam o fim da vida útil. Você pode examinar as datas de fim de vida útil no arquivo de eol.yaml das ferramentas ece.

Migrar para o OpenSearch

WARNING
O Elasticsearch 7.11 e posterior não é compatível com o Adobe Commerce na infraestrutura em nuvem. As versões do Adobe Commerce 2.3.7-p3, 2.4.3-p2 e 2.4.4 e posteriores são compatíveis com o serviço OpenSearch. As instalações locais continuam a suportar o Elasticsearch.

Para o Adobe Commerce versão 2.4.4 e posterior, consulte Configurar o serviço OpenSearch.

Alterar versão do serviço

É possível atualizar a versão do serviço instalada para compatibilidade com a versão do Adobe Commerce implantada no ambiente de nuvem.

Não é possível fazer o downgrade da versão de serviço de um serviço instalado diretamente. No entanto, é possível criar um serviço com a versão necessária. Consulte Rebaixar versão de serviço.

Atualizar versão do serviço instalado

Você pode atualizar a versão do serviço instalado atualizando a configuração do serviço no arquivo services.yaml.

  1. Alterar o valor type do serviço no arquivo .magento/services.yaml:

    Definição do serviço original

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

    Definição de serviço atualizada

    code language-yaml
    mysql:
        type: mysql:10.4
        disk: 5120
    
  2. Adicionar, confirmar e enviar por push as alterações 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>
    

Versão de downgrade

Não é possível fazer o downgrade de um serviço instalado diretamente. Você tem duas opções:

  1. Renomeie um serviço existente com a nova versão, que remove o serviço e os dados existentes, e adiciona um novo.

  2. Crie um serviço e salve os dados do serviço existente.

Ao alterar a versão do serviço, você deve atualizar a configuração do serviço no arquivo services.yaml e atualizar as relações no arquivo .magento.app.yaml.

Para fazer o downgrade de uma versão de serviço renomeando um serviço existente:

  1. Renomeie o serviço existente no arquivo .magento/services.yaml e altere a versão.

    note warning
    WARNING
    A renomeação de um serviço existente o substitui e exclui todos os dados. Se precisar manter os dados, crie um serviço em vez de renomear o existente.

    Por exemplo, para baixar a versão do MariaDB para o serviço mysql da versão 10.4 para 10.3, altere a configuração existente do service-id e do type.

    Definição original de services.yaml

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

    Nova definição services.yaml

    code language-yaml
    mysql2:
         type: mysql:10.3
         disk: 5120
    
  2. Atualizar as relações no arquivo .magento.app.yaml.

    Configuração original de .magento.app.yaml

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

    Atualização da configuração .magento.app.yaml

    code language-yaml
    relationships:
        database: "mysql2:mysql"
    
  3. Adicionar, confirmar e enviar por push as alterações de código.

Para fazer o downgrade de um serviço criando um serviço:

  1. Adicione uma definição de serviço ao arquivo services.yaml para seu projeto com a especificação de versão rebaixada. Consulte mysql2 no seguinte exemplo:

    services.yaml

    code language-yaml
    mysql:
        type: mysql:10.4
        disk: 5120
    mysql2:
        type: mysql:10.3
        disk: 5120
    
  2. Altere a configuração de relações no arquivo .magento.app.yaml para usar o novo serviço.

    Configuração original de .magento.app.yaml

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

    Nova configuração .magento.app.yaml

    code language-yaml
    relationships:
        database: "mysql2:mysql"
    
  3. Adicionar, confirmar e enviar por push as alterações de código.

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