Konfigurieren von Umgebungsvariablen für die Bereitstellung

Die .magento.env.yaml-Datei verwendet Umgebungsvariablen, um die Verwaltung von Build- und Bereitstellungsaktionen in allen Ihren Umgebungen zu zentralisieren, einschließlich Pro-Staging und Produktion. Um eindeutige Aktionen in jeder Umgebung zu konfigurieren, müssen Sie diese Datei in jeder Umgebung ändern.

TIP
Bei YAML-Dateien wird zwischen Groß- und Kleinschreibung unterschieden und es werden keine Registerkarten zugelassen. Achten Sie darauf, in der gesamten .magento.env.yaml-Datei konsistente Einzüge zu verwenden. Andernfalls funktioniert Ihre Konfiguration möglicherweise nicht wie erwartet. Die Beispiele in der Dokumentation und in der Beispieldatei verwenden Einzug mit Leerzeichen. Verwenden Sie den Befehl ece-tools validate, um Ihre Konfiguration zu überprüfen.

Dateistruktur

Die .magento.env.yaml-Datei enthält zwei Abschnitte: stage und log. Im Abschnitt stage werden Aktionen gesteuert, die während der Phasen des Cloud-Bereitstellungsprozesses auftreten.

  • stage - Verwenden Sie den Abschnitt Phase , um bestimmte Aktionen für die folgenden Bereitstellungsphasen zu definieren:

    • global - Steuert Aktionen sowohl in der Erstellungs-, der Bereitstellungs- als auch in der Nachbereitstellungsphase. Sie können diese Einstellungen in den Abschnitten Erstellen, Bereitstellen und Nach der Bereitstellung überschreiben.
    • build - Steuert Aktionen nur in der Erstellungsphase. Wenn Sie in diesem Abschnitt keine Einstellungen angeben, verwendet die Build-Phase Einstellungen aus dem Abschnitt Global .
    • deploy - Steuert Aktionen nur in der Bereitstellungsphase. Wenn Sie in diesem Abschnitt keine Einstellungen angeben, verwendet die Bereitstellungsphase Einstellungen aus dem Abschnitt „Global“.
    • post-deploy - Steuert Aktionen nach Bereitstellung der Anwendung und danach beginnt der Container Verbindungen zu akzeptieren.
  • log - Im Abschnitt „Protokoll“ können Sie Benachrichtigungen einschließlich Benachrichtigungstypen und Detaillierungsgrad konfigurieren.

    • slack - Konfigurieren Sie eine Nachricht, die an einen Slack-Bot gesendet werden soll.
    • email - Konfigurieren Sie eine E-Mail, die an einen oder mehrere E-Mail-Empfänger gesendet werden soll.
    • Protokollhandler: Konfigurieren Sie Meldungen zu Hardware- und Softwareanwendungen, die an einen Remote-Protokollierungsserver gesendet werden.

Umgebungsvariablen

Das ece-tools legt Werte in der env.php anhand von Werten aus Cloud-Variablen, in der Cloud Console festgelegten Variablen und der .magento.env.yaml-Konfigurationsdatei fest. Die Umgebungsvariablen in der .magento.env.yaml-Datei passen die Cloud-Umgebung an, indem sie Ihre bestehende Commerce-Konfiguration überschreiben. Wenn ein Standardwert Not Set ist, ergreift das ece-tools-Paket die Aktion NO und verwendet den Commerce Standardwert oder den Wert aus der Konfiguration MAGENTO_CLOUD_RELATIONSHIPS . Wenn der Standardwert festgelegt ist, setzt das ece-tools-Paket diesen Standardwert.

Die folgenden Themen enthalten detaillierte Definitionen aller Variablen, die Sie in der .magento.env.yaml-Datei verwenden können, z. B. ob ein Standardwert festgelegt ist oder nicht:

  • Global - Variablen steuern Aktionen in jeder Phase: Erstellen, Bereitstellen und Nachbereitstellen
  • Build - Variablen steuern Buildaktionen
  • Bereitstellen - Variablen steuern Bereitstellungsaktionen
  • Nach der Bereitstellung - Variablen steuern Aktionen nach der Bereitstellung

Erstellen einer Konfigurationsdatei über CLI

Sie können eine .magento.env.yaml Konfigurationsdatei für eine Cloud-Umgebung mithilfe der folgenden ece-tools-Befehle generieren.

Erstellt eine Konfigurationsdatei

php ./vendor/bin/ece-tools cloud:config:create `<configuration-json>`

Aktualisieren von Werten in der Konfigurationsdatei

php ./vendor/bin/ece-tools cloud:config:update `<configuration-json>`

Beide Befehle erfordern ein einziges Argument: ein JSON-formatiertes Array, das einen Wert für mindestens eine Build-, Bereitstellungs- oder Post-Bereitstellungsvariable angibt. Der folgende Befehl legt beispielsweise Werte für die Variablen SCD_THREADS und CLEAN_STATIC_FILES fest:

php vendor/bin/ece-tools cloud:config:create '{"stage":{"build":{"SCD_THREADS":5}, "deploy":{"CLEAN_STATIC_FILES":false}}}'

und erstellt eine .magento.env.yaml-Datei mit den folgenden Einstellungen:

stage:
  build:
    SCD_THREADS: 5
  deploy:
    CLEAN_STATIC_FILES: false

Sie können den Befehl cloud:config:update verwenden, um die neue Datei zu aktualisieren. Beispielsweise ändert der folgende Befehl den SCD_THREADS und fügt die SCD_COMPRESSION_TIMEOUT hinzu:

php vendor/bin/ece-tools cloud:config:update '{"stage":{"build":{"SCD_THREADS":3, "SCD_COMPRESSION_TIMEOUT":1000}}}'

Die aktualisierte Datei enthält die folgende Konfiguration:

stage:
  build:
    SCD_THREADS: 3
    SCD_COMPRESSION_TIMEOUT: 1000
  deploy:
    CLEAN_STATIC_FILES: false

Konfigurationsdatei validieren

Verwenden Sie den folgenden ece-tools-Befehl, um die .magento.env.yaml-Konfigurationsdatei zu validieren, bevor Sie Änderungen an die Remote-Cloud-Umgebung pushen.

php ./vendor/bin/ece-tools cloud:config:validate

Die folgende Beispielantwort enthält eine Liste der zu korrigierenden Elemente:

Environment configuration is not valid. Correct the following items in your .magento.env.yaml file:
The SCD_THREADS variable contains an invalid value of type string. Use the following type: integer.
The SCD_STRATEGY variable contains an invalid value fast. Use one of the available value options: compact, quick, standard.
The NOT_EXIST_OPTION variable is not allowed in configuration.

PHP-Konstanten

Sie können PHP-Konstanten in .magento.env.yaml Dateidefinitionen anstelle von hartcodierten Werten verwenden. Das folgende Beispiel definiert die driver_options mithilfe einer PHP-Konstante:

stage:
  deploy:
    DATABASE_CONFIGURATION:
      connection:
        default:
          driver_options:
            !php/const:\PDO::MYSQL_ATTR_LOCAL_INFILE : 1
        indexer:
          driver_options:
            !php/const:\PDO::MYSQL_ATTR_LOCAL_INFILE : 1
      _merge: true
WARNING
Das konstante Parsen funktioniert nicht, wenn eine symfony/yaml Paketversion vor 3.2 verwendet wird.

Fehlerbehandlung

Wenn ein Fehler aufgrund eines unerwarteten Werts in der .magento.env.yaml-Konfigurationsdatei auftritt, erhalten Sie eine Fehlermeldung. Beispielsweise enthält die folgende Fehlermeldung eine Liste empfohlener Änderungen an jedem Element mit einem unerwarteten Wert, wobei manchmal gültige Optionen bereitgestellt werden:

- Environment configuration is not valid. Please correct .magento.env.yaml file with next suggestions:
  Item CRON_CONSUMERS_RUNNER is not supposed to be in stage build. Please move it to one of possible stages: global, deploy
  Item SKIP_SCD has unexpected type string. Please use one of next types: boolean
  Item VERBOSE_COMMANDS has unexpected type boolean. Please use one of next types: string
  Item SKIP_HTML_MINIFICATION has unexpected type string. Please use one of next types: boolean
  Item CRON_CONSUMERS_RUNNER has unexpected type boolean. Please use one of next types: array
  Item VAR_WARM_UP_PAGES is not allowed in configuration.
  Item WARM_UP_PAGES has unexpected type string. Please use one of next types: array

Nehmen Sie Korrekturen vor, übertragen Sie die Änderungen und übertragen Sie sie. Wenn Sie keine Fehlermeldung erhalten, übergeben die Änderungen an Ihrer Konfigurationsdatei die Validierung.

Optimierung der Konfigurationsverwaltung

Wenn Sie die Konfigurationsverwaltung nach dem Speichern der Konfigurationen aktiviert haben, sollten Sie die SCD_*-Variablen von der Bereitstellung in die Build-Phase verschieben. Siehe Strategien zur Bereitstellung statischer Inhalte.

Vor der Konfigurationsverwaltung:

  deploy:
    CRON_CONSUMERS_RUNNER:
      cron_run: true
      consumers: []
    SCD_STRATEGY: compact
    SCD_MATRIX:
      ...
    REDIS_USE_SLAVE_CONNECTION: 1

Verschieben Sie nach der Aktivierung der Konfigurationsverwaltung die SCD_*-Variablen in den Build-Schritt:

  deploy:
    CRON_CONSUMERS_RUNNER:
      cron_run: true
      consumers: []
    REDIS_USE_SLAVE_CONNECTION: 1
  build:
    SCD_STRATEGY: compact
    SCD_MATRIX:
      ...
recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26