Gerenciamento de configuração de armazenamento
As configurações padrão da loja são armazenadas em um config.xml
para o módulo apropriado. Quando você altera as configurações no Commerce Admin ou na CLI bin/magento config:set
as alterações são refletidas no banco de dados principal, especificamente no core_config_data
tabela. Essas configurações substituem as configurações padrão armazenadas no config.xml
arquivo.
Configurações de armazenamento, que se referem às configurações no Administrador Lojas > Configurações > Configuração são armazenados nos arquivos de configuração de implantação com base no tipo de configuração:
app/etc/config.php
— configurações para lojas, sites, módulos ou extensões, otimização de arquivos estáticos e valores do sistema relacionados à implantação de conteúdo estático. Consulte a referência config.php no Guia de configuração.app/etc/env.php
—valores para substituições específicas do sistema e configurações confidenciais que devem NOT ser armazenado no controle de origem. Consulte a referência env.php no Guia de configuração.
O gerenciamento de configurações fornece uma maneira de implantar configurações de armazenamento consistentes em seus ambientes com tempo de inatividade mínimo usando a implantação de pipeline. O projeto de infraestrutura do Adobe Commerce na nuvem inclui o servidor de criação, scripts de criação e implantação e ambientes de implantação criados com o estratégia de implantação do pipeline em mente.
Esquema de substituição de configuração
Todas as configurações do sistema são definidas durante as fases de criação e implantação de acordo com o seguinte esquema de substituição:
- Se uma variável de ambiente existir, use a configuração personalizada e ignore a configuração padrão.
- Se uma variável de ambiente não existir, use a configuração de um
MAGENTO_CLOUD_RELATIONSHIPS
par nome-valor na variável.magento.app.yaml
arquivo. Ignorar a configuração padrão. - Se uma variável de ambiente não existir e
MAGENTO_CLOUD_RELATIONSHIPS
não contém um par nome-valor, remove todas as configurações personalizadas e usa os valores da configuração padrão.
Em resumo, as variáveis de ambiente substituem todos os outros valores.
Se a mesma configuração for definida em vários locais, a aplicação dependerá da seguinte hierarquia de configuração para determinar qual valor aplicar ao ambiente:
Método
variáveis de ambiente
.magento.app.yaml
variables
seção do .magento.app.yaml
arquivo. Especifique valores aqui para garantir uma configuração consistente em todos os ambientes. Não especifique valores confidenciais na variável .magento.app.yaml
arquivo. Consulte Configurações do aplicativo.app/etc/env.php
app:config:dump
comando. Defina os valores específicos do sistema e confidenciais usando variáveis de ambiente ou a CLI. Consulte Dados sensíveis. A variável env.php
o arquivo é não incluído no controle de origem.app/etc/config.php
app:config:dump
comando. Os valores de configuração compartilhados são adicionados ao config.php
. Defina a configuração compartilhada pelo Admin ou usando a CLI. A variável config.php
o arquivo está incluído no controle do código-fonte.config.xml
config.xml
para um módulo. Se o Adobe Commerce não conseguir encontrar nenhum valor definido por nenhum dos métodos anteriores, ele voltará ao valor padrão, se definido.Despejo de configuração
Você pode usar o seguinte ece-tools
comando para gerar um config.php
arquivo que contém todas as configurações de armazenamento atuais:
./vendor/bin/ece-tools config:dump
Os dados "despejados" no app/etc/config.php
arquivo torna-se bloqueado, o que significa que o campo correspondente no Administrador do Commerce se torna somente leitura. A variável config.php
O arquivo inclui somente as configurações definidas por você. Ela não bloqueia os valores padrão. Bloquear apenas os valores atualizados também garante que todas as extensões usadas nos ambientes de Preparo e Produção não sejam interrompidas devido a configurações somente leitura, especialmente o Fastly.
ece-tools config:dump
não recupera configurações detalhadas para módulos, como B2B. Se precisar de um despejo de configuração abrangente, use o app:config:dump
, mas esse comando bloqueia os valores de configuração em um estado somente leitura.Dados sensíveis
Todas as configurações confidenciais são exportadas para o app/etc/env.php
arquivo ao usar o bin/magento app:config:dump
comando. Você pode definir valores confidenciais usando o comando da CLI: bin/magento config:sensitive:set
. Consulte Configurações sensíveis e específicas do ambiente no Extensões PHP do Commerce guia para saber como designar definições de configuração como confidenciais ou específicas do sistema.
Veja uma lista de Configurações sensíveis ou específicas do sistema no Guia de configuração.
Desempenho do SCD
Dependendo do tamanho do armazenamento, você pode ter um grande número de arquivos de conteúdo estático para implantar. Normalmente, o conteúdo estático é implantado durante a fase de implantação, quando o aplicativo está no modo de manutenção. A configuração mais ideal é gerar conteúdo estático durante a fase de criação. Consulte Escolha de uma estratégia de implantação.
Se você tiver ativado o Gerenciamento de configurações após despejar as configurações, mova as variáveis SCD_* do estágio de implantação para o estágio de criação para ativar adequadamente a geração de conteúdo estático durante a fase de criação. Consulte Variáveis de ambiente.
Antes do gerenciamento de configuração:
deploy:
CRON_CONSUMERS_RUNNER:
cron_run: true
consumers: []
SCD_STRATEGY: compact
SCD_MATRIX:
...
REDIS_USE_SLAVE_CONNECTION: 1
Depois de habilitar o Gerenciamento de configuração:
Mova as variáveis SCD_* para o estágio de criação:
deploy:
CRON_CONSUMERS_RUNNER:
cron_run: true
consumers: []
REDIS_USE_SLAVE_CONNECTION: 1
build:
SCD_STRATEGY: compact
SCD_MATRIX:
...
Procedimento para gerenciar suas configurações
A seguir, uma visão geral de alto nível desse processo:
Para configurar sua loja e gerar um arquivo de configuração:
-
Conclua todas as configurações das lojas no Administrador para um dos ambientes:
- Início: uma ramificação de desenvolvimento ativa
- Pro: uma filial ativa no ambiente de integração
Essas configurações não incluem os produtos reais, a menos que você planeje despejar o banco de dados desse ambiente para ambientes de preparo e produção. Normalmente, os bancos de dados de desenvolvimento não incluem os dados completos da loja.
-
Na estação de trabalho local, altere para o diretório do projeto.
-
Criar um dump local do banco de dados remoto.
code language-bash magento-cloud db:dump
-
Adicionar, confirmar e enviar alterações de código para atualizar um ambiente remoto.
code language-bash git add app/etc/config.php
code language-bash git commit -m "Add system-specific configuration"
code language-bash git push origin <branch-name>
Depois que a implantação for concluída, faça logon no Admin do ambiente atualizado para verificar as configurações. Continue a mesclar todas as configurações adicionais com os ambientes de preparo e produção, conforme necessário.
Atualizar configurações
Quando você modifica seu ambiente por meio do Administrador e executa o comando novamente, novas configurações são anexadas ao código no config.php
arquivo.
config.php
nos ambientes de armazenamento temporário e produção, é não recomendado. O arquivo ajuda a manter todas as configurações consistentes em todos os ambientes. Nunca exclua o config.php
arquivo para recriá-lo. A exclusão do arquivo pode remover configurações específicas necessárias para processos de compilação e implantação.Restaurar arquivos de configuração
Cópias do original app/etc/env.php
e app/etc/config.php
os arquivos foram criados durante o processo de implantação e armazenados na mesma pasta. O exemplo a seguir mostra o BAK (arquivos de backup) e o PHP (arquivos originais) na mesma app/etc
pasta:
...
config.php.bak
di.xml
env.php.bak
vendor_path.php
config.php
db_schema.xml
env.php
...
As configurações mais antigas usavam o app/etc/config.local.php
arquivo. Consulte Migrar configurações mais antigas.
Para restaurar arquivos de configuração:
-
Na estação de trabalho local, use o SSH para fazer logon no projeto e no ambiente remotos.
code language-bash magento-cloud ssh
-
Verifique o local e a disponibilidade dos arquivos de backup.
code language-bash ./vendor/bin/ece-tools backup:list
Exemplo de resposta:
code language-terminal The list of backup files: app/etc/env.php app/etc/config.php
-
Restaurar arquivos de backup.
code language-bash ./vendor/bin/ece-tools backup:restore
Migrar configurações mais antigas
Se você atualizar para o Adobe Commerce na infraestrutura em nuvem 2.2 ou posterior, convém migrar as configurações do config.local.php
arquivo para o novo config.php
arquivo. Se as configurações no Administrador corresponderem ao conteúdo do arquivo, siga as instruções para gerar e adicionar o config.php
arquivo.
Se forem diferentes, é possível anexar conteúdo do config.local.php
arquivo para o novo config.php
arquivo:
-
Siga as instruções para gerar o
config.php
arquivo. -
Abra o
config.php
e exclua a última linha. -
Abra o
config.local.php
arquivo e copie o conteúdo. -
Cole o conteúdo na
config.php
arquivo, salve e conclua a adição ao Git. -
Implante em seus ambientes.
Você só conclui essa migração uma vez. Após a migração, use o config.php
arquivo.
Alterar localidades
Você pode alterar as localidades da loja sem seguir um processo complexo de importação e exportação de configuração, se você tem SCD_ON_DEMAND ativado. Você pode atualizar as localidades usando o Administrador.
Você pode adicionar outro local ao ambiente de preparo ou produção ativando SCD_ON_DEMAND
em uma ramificação de integração, gere uma atualização config.php
com as novas informações de local e copie o arquivo de configuração no ambiente de destino.
-
No ambiente de integração, habilite a opção
SCD_ON_DEMAND
usando o.magento.env.yaml
arquivo. -
Adicione os locais necessários usando o Administrador.
-
Use o SSH para fazer logon no ambiente remoto e gerar o
/app/etc/config.php
arquivo contendo todas as localidades.code language-bash ssh <SSH-URL> "./vendor/bin/ece-tools config:dump"
-
Copie o novo arquivo de configuração do ambiente de integração remota para o diretório do ambiente local.
code language-bash rsync <SSH-URL>:app/etc/config.php ./app/etc/config.php
-
Adicionar, confirmar e enviar alterações de código para atualizar um ambiente remoto.