Configurare i servizi

Il file services.yaml definisce i servizi supportati e utilizzati da Adobe Commerce nell'infrastruttura cloud, ad esempio MySQL, Redis e Elasticsearch o OpenSearch. Non è necessario iscriversi a provider di servizi esterni.

NOTE
Il file .magento/services.yaml è gestito localmente nella directory .magento del progetto. La configurazione è accessibile durante il processo di build per definire le versioni del servizio richieste solo nell’ambiente di integrazione e viene rimossa al termine della distribuzione, in modo da non trovarle sul server.

Lo script di distribuzione utilizza i file di configurazione nella directory .magento per eseguire il provisioning dell'ambiente con i servizi configurati. Un servizio diventa disponibile per l'applicazione se è incluso nella proprietà relationships del file .magento.app.yaml. Il file services.yaml contiene i valori type e disk. Il tipo di servizio definisce il servizio name e version.

La modifica della configurazione di un servizio determina il provisioning dell’ambiente con i servizi aggiornati tramite una distribuzione che interessa i seguenti ambienti:

  • Tutti gli ambienti Starter inclusa la produzione master
  • Ambienti di integrazione Pro
TIP
Per i progetti Pro, è necessario inviare un ticket di supporto Adobe Commerce per installare o aggiornare servizi solo negli ambienti Staging e Production.
Indicare le modifiche necessarie al servizio, includere i file .magento.app.yaml e services.yaml aggiornati e indicare la versione PHP nel ticket. Per le modifiche self-service alle impostazioni di versione PHP, estensioni o ambiente, vedere Impostazioni PHP in Configurazione applicazione.
Per le modifiche a un ambiente di produzione live (Solo Pro), è necessario un preavviso minimo di 48 ore. Questo consente al team dell’infrastruttura Cloud di disporre del tempo sufficiente per eseguire il marshalling delle risorse e eseguire un aggiornamento sicuro. Il periodo di preavviso inizia quando il team dell'infrastruttura riconosce la richiesta e pianifica l'aggiornamento, esclusi i fine settimana. Ad esempio, per completare gli aggiornamenti del servizio il lunedì, è necessario ricevere una conferma dell'aggiornamento pianificato entro mercoledì. Durante i periodi di picco della domanda, l'elaborazione della richiesta potrebbe richiedere più tempo.

Servizi predefiniti e supportati

L’infrastruttura cloud supporta e distribuisce i seguenti servizi:

È possibile visualizzare le versioni e i valori del disco predefiniti nel file services.yaml predefinito corrente. L'esempio seguente mostra i servizi mysql, redis, opensearch o elasticsearch e rabbitmq definiti nel file di configurazione 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

Valori del servizio

È necessario fornire l'ID servizio e la configurazione del tipo di servizio type: <name>:<version>. Se il servizio utilizza l'archiviazione permanente, è necessario specificare un valore del disco.

Utilizza il seguente formato:

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

service-id

Il valore service-id identifica il servizio nel progetto. È possibile utilizzare solo caratteri alfanumerici minuscoli: a a z e 0 a 9, ad esempio redis.

Il valore service-id è utilizzato nella proprietà relationships del file di configurazione .magento.app.yaml:

relationships:
    redis: "<name>:redis"

È possibile denominare più istanze di ciascun tipo di servizio. Ad esempio, potete utilizzare più istanze Redis, una per la sessione e una per la cache.

redis:
    type: redis:<version>

redis2:
    type: redis:<version>

La ridenominazione di un servizio nel file services.yaml rimuove definitivamente quanto segue:

  • Il servizio esistente prima di creare un servizio con il nuovo nome specificato.
  • Tutti i dati esistenti per il servizio vengono rimossi. L'Adobe consiglia di eseguire il backup dell'ambiente Starter prima di modificare il nome di un servizio esistente.

type

Il valore type specifica il nome e la versione del servizio. Ad esempio:

mysql:
    type: mysql:10.4

disk

Il valore disk specifica le dimensioni (in MB) dello spazio di archiviazione su disco persistente da allocare al servizio. I servizi che utilizzano l'archiviazione persistente, come MySQL, devono fornire un valore disco. I servizi che utilizzano la memoria invece dello storage persistente, come Redis, non richiedono un valore del disco.

mysql:
    type: mysql:10.4
    disk: 5120

L'attuale capacità di storage predefinita per progetto è di 5 GB o 512 0 MB. È possibile distribuire tale importo tra l'applicazione e ciascuno dei relativi servizi.

Relazioni di servizio

Nei progetti di infrastruttura cloud di Adobe Commerce, il servizio relazioni configurato nel file .magento.app.yaml determina i servizi disponibili per l'applicazione.

È possibile recuperare i dati di configurazione per tutte le relazioni di servizio dalla variabile di ambiente $MAGENTO_CLOUD_RELATIONSHIPS. I dati di configurazione includono il nome del servizio, il tipo e la versione insieme a tutti i dettagli di connessione richiesti, ad esempio il numero di porta e le credenziali di accesso.

Per verificare le relazioni nell'ambiente locale:

  1. Nell’ambiente locale, mostra le relazioni per l’ambiente attivo.

    code language-bash
    magento-cloud relationships
    
  2. Conferma service e type dalla risposta. La risposta fornisce informazioni sulla connessione, ad esempio l'indirizzo IP e il numero di porta.

    Risposta del campione abbreviata

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

Per verificare le relazioni negli ambienti remoti:

  1. Utilizza SSH per accedere all’ambiente remoto.

  2. Elenca i dati di configurazione delle relazioni per tutti i servizi configurati nell’ambiente.

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

    in alternativa, utilizzare il comando ece-tools seguente per visualizzare le relazioni:

    code language-bash
    php ./vendor/bin/ece-tools env:config:show services
    
  3. Conferma service e type dalla risposta. La risposta fornisce informazioni sulla connessione, ad esempio l'indirizzo IP e il numero di porta, nonché eventuali credenziali di nome utente e password richieste.

Versioni del servizio

Il supporto per la versione del servizio e la compatibilità per l’infrastruttura cloud di Adobe Commerce è determinato dalle versioni distribuite e testate nell’infrastruttura cloud e talvolta differisce dalle versioni supportate dalle distribuzioni Adobe Commerce on-premise. Consulta Requisiti di sistema nella guida Installazione per un elenco delle dipendenze software di terze parti testate da Adobe con specifiche versioni di Adobe Commerce e di Magento Open Source.

Controlli di fine del ciclo di vita del software

Durante il processo di distribuzione, il pacchetto ece-tools controlla le versioni del servizio installate rispetto alle date di fine del ciclo di vita (EOL) per ogni servizio.

  • Se la versione di un servizio rientra nei tre mesi successivi alla data di fine del ciclo di vita, nel registro di distribuzione viene visualizzata una notifica.
  • Se la data fine del ciclo di vita è nel passato, viene visualizzata una notifica di avviso.

Per mantenere la sicurezza dello store, aggiornare le versioni del software installato prima che raggiungano la fine del ciclo di vita. È possibile rivedere le date di fine del ciclo di vita nel file eol.yaml di ece-tools'.

Migra a OpenSearch

WARNING
Elasticsearch 7.11 e versioni successive non è supportato per Adobe Commerce sull’infrastruttura cloud. Le versioni di Adobe Commerce 2.3.7-p3, 2.4.3-p2 e 2.4.4 e successive supportano il servizio OpenSearch. Gli impianti locali continuano a sostenere l'Elasticsearch.

Per Adobe Commerce versione 2.4.4 e successive, vedere Configurazione del servizio OpenSearch.

Modifica versione del servizio

Puoi aggiornare la versione del servizio installata per renderla compatibile con la versione di Adobe Commerce implementata nell’ambiente Cloud.

Non è possibile eseguire direttamente il downgrade della versione del servizio per un servizio installato. Tuttavia, puoi creare un servizio con la versione richiesta. Vedi Versione servizio di downgrade.

Aggiorna versione del servizio installata

È possibile aggiornare la versione del servizio installata aggiornando la configurazione del servizio nel file services.yaml.

  1. Modificare il valore type per il servizio nel file .magento/services.yaml:

    Definizione del servizio originale

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

    Definizione del servizio aggiornata

    code language-yaml
    mysql:
        type: mysql:10.4
        disk: 5120
    
  2. Aggiungi, esegui il commit e invia le modifiche al codice.

    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>
    

Versione di downgrade

Non è possibile eseguire direttamente il downgrade di un servizio installato. Sono disponibili due opzioni:

  1. Rinomina un servizio esistente con la nuova versione, che rimuove il servizio e i dati esistenti e ne aggiunge uno nuovo.

  2. Crea un servizio e salva i dati dal servizio esistente.

Quando si modifica la versione del servizio, è necessario aggiornare la configurazione del servizio nel file services.yaml e aggiornare le relazioni nel file .magento.app.yaml.

Per eseguire il downgrade di una versione del servizio rinominando un servizio esistente:

  1. Rinominare il servizio esistente nel file .magento/services.yaml e modificare la versione.

    note warning
    WARNING
    La ridenominazione di un servizio esistente lo sostituisce ed elimina tutti i dati. Se devi conservare i dati, crea un servizio invece di rinominare quello esistente.

    Ad esempio, per eseguire il downgrade della versione di MariaDB per il servizio mysql dalla versione 10.4 alla versione 10.3, modificare la configurazione esistente di service-id e type.

    Definizione services.yaml originale

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

    Nuova definizione services.yaml

    code language-yaml
    mysql2:
         type: mysql:10.3
         disk: 5120
    
  2. Aggiornare le relazioni nel file .magento.app.yaml.

    Configurazione .magento.app.yaml originale

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

    Aggiornamento della configurazione di .magento.app.yaml

    code language-yaml
    relationships:
        database: "mysql2:mysql"
    
  3. Aggiungi, esegui il commit e invia le modifiche al codice.

Per eseguire il downgrade di un servizio creando un servizio:

  1. Aggiungere una definizione di servizio al file services.yaml per il progetto con la specifica della versione ridotta. Vedi mysql2 nell'esempio seguente:

    services.yaml

    code language-yaml
    mysql:
        type: mysql:10.4
        disk: 5120
    mysql2:
        type: mysql:10.3
        disk: 5120
    
  2. Modificare la configurazione delle relazioni nel file .magento.app.yaml per utilizzare il nuovo servizio.

    Configurazione .magento.app.yaml originale

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

    Nuova configurazione di .magento.app.yaml

    code language-yaml
    relationships:
        database: "mysql2:mysql"
    
  3. Aggiungi, esegui il commit e invia le modifiche al codice.

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