AppSpec Abschnitt „Dateien“ (nur für EC2/lokale Bereitstellungen) - AWS CodeDeploy

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

AppSpec Abschnitt „Dateien“ (nur für EC2/lokale Bereitstellungen)

Enthält Informationen CodeDeploy darüber, welche Dateien aus Ihrer Anwendungsversion während des Installationsereignisses auf der Instanz installiert werden sollten. Dieser Abschnitt ist nur erforderlich, wenn Sie während der Bereitstellung Dateien aus Ihrer Revision an Standorte auf der Instance kopieren.

Dieser Abschnitt hat die folgende Struktur:

files: - source: source-file-location-1 destination: destination-file-location-1 file_exists_behavior: DISALLOW|OVERWRITE|RETAIN

Mehrere source- und destination-Paare können festgelegt werden.

Die source-Anweisung identifiziert eine Datei oder ein Verzeichnis aus Ihrer Revision, die bzw. das auf die Instance kopiert werden soll:

  • Wenn sich source auf eine Datei bezieht, werden nur die angegebenen Dateien auf die Instance kopiert.

  • Wenn sich source auf ein Verzeichnis bezieht, werden alle Dateien im Verzeichnis auf die Instance kopiert.

  • Wenn source es sich um einen einzelnen Schrägstrich handelt („/“ für Amazon Linux-, RHEL- und Ubuntu-Server-Instances oder „\“ für Windows Server-Instances), dann werden alle Dateien aus Ihrer Revision in die Instance kopiert.

Die in verwendeten Pfade source beziehen sich auf die appspec.yml Datei, die sich im Stammverzeichnis Ihrer Revision befinden sollte. Einzelheiten zur Dateistruktur einer Revision finden Sie unterPlanen Sie eine Überarbeitung für CodeDeploy.

Die destination-Anweisung identifiziert den Standort auf der Instance, an den die Dateien kopiert werden sollen. Dies muss ein vollständig qualifizierter Pfad sein, z. B. /root/destination/directory (unter Linux, RHEL und Ubuntu) oder c:\destination\folder (unter Windows).

source und destination werden jeweils mit einer Zeichenfolge angegeben.

Die file_exists_behavior Anweisung ist optional und gibt an, wie CodeDeploy mit Dateien umgegangen wird, die bereits an einem Bereitstellungszielort vorhanden sind, aber nicht Teil der vorherigen erfolgreichen Bereitstellung waren. Diese Einstellung kann einen der folgenden Werte annehmen:

  • DISALLOW: Die Bereitstellung schlägt fehl. Dies ist auch das Standardverhalten, wenn keine Option angegeben ist.

  • ÜBERSCHREIBEN: Die Version der Datei aus der Anwendungsrevision, die gerade bereitgestellt wird, ersetzt die Version, die sich bereits auf der Instanz befindet.

  • RETAIN: Die Version der Datei, die sich bereits auf der Instanz befindet, wird beibehalten und als Teil der neuen Bereitstellung verwendet.

Wenn Sie die file_exists_behavior Einstellung verwenden, sollten Sie sich darüber im Klaren sein, dass diese Einstellung:

  • kann nur einmal angegeben werden und gilt für alle Dateien und Verzeichnisse, die unter aufgeführt sindfiles:.

  • hat Vorrang vor der --file-exists-behavior AWS CLI Option und der fileExistsBehavior API-Option (beide sind ebenfalls optional).

Hier ist ein files Beispielabschnitt für eine Amazon Linux-, Ubuntu Server- oder RHEL-Instance.

files: - source: Config/config.txt destination: /webapps/Config - source: source destination: /webapps/myApp

In diesem Beispiel werden die folgenden beiden Operationen während des Installations-Ereignisses ausgeführt:

  1. Kopieren Sie die Datei Config/config.txt in Ihrer Revision zum /webapps/Config/config.txt-Pfad auf der Instance.

  2. Kopieren Sie alle Dateien im source-Verzeichnis Ihrer Revision rekursiv in das Verzeichnis /webapps/myApp auf der Instance.

Beispiele für den Abschnitt „Dateien“

Die folgenden Beispiele zeigen, wie Sie den Abschnitt files angeben. Diese Beispiele beschreiben zwar die Datei- und Verzeichnisstrukturen (Ordner) von Windows Server, können aber problemlos für Amazon Linux-, Ubuntu Server- und RHEL-Instances angepasst werden.

Anmerkung

Nur EC2/lokale Bereitstellungen verwenden diesen Abschnitt. files Sie gilt nicht für AWS Lambda-Bereitstellungen.

Für die folgenden Beispiele nehmen wir an, dass diese Dateien im Bündel im Stammverzeichnis von source angezeigt werden:

  • appspec.yml

  • my-file.txt

  • my-file-2.txt

  • my-file-3.txt

# 1) Copy only my-file.txt to the destination folder c:\temp. # files: - source: .\my-file.txt destination: c:\temp # # Result: # c:\temp\my-file.txt # # --------------------- # # 2) Copy only my-file-2.txt and my-file-3.txt to the destination folder c:\temp. # files: - source: my-file-2.txt destination: c:\temp - source: my-file-3.txt destination: c:\temp # # Result: # c:\temp\my-file-2.txt # c:\temp\my-file-3.txt # # --------------------- # # 3) Copy my-file.txt, my-file-2.txt, and my-file-3.txt (along with the appspec.yml file) to the destination folder c:\temp. # files: - source: \ destination: c:\temp # # Result: # c:\temp\appspec.yml # c:\temp\my-file.txt # c:\temp\my-file-2.txt # c:\temp\my-file-3.txt

Für die folgenden Beispielen nehmen wir an, dass appspec.yml im Bündel im Stammverzeichnis von source zusammen mit einem Ordner mit dem Namen my-folder, der drei Dateien enthält, angezeigt wird:

  • appspec.yml

  • my-folder\my-file.txt

  • my-folder\my-file-2.txt

  • my-folder\my-file-3.txt

# 4) Copy the 3 files in my-folder (but do not copy my-folder itself) to the destination folder c:\temp. # files: - source: .\my-folder destination: c:\temp # # Result: # c:\temp\my-file.txt # c:\temp\my-file-2.txt # c:\temp\my-file-3.txt # # --------------------- # # 5) Copy my-folder and its 3 files to my-folder within the destination folder c:\temp. # files: - source: .\my-folder destination: c:\temp\my-folder # # Result: # c:\temp\my-folder\my-file.txt # c:\temp\my-folder\my-file-2.txt # c:\temp\my-folder\my-file-3.txt # # --------------------- # # 6) Copy the 3 files in my-folder to other-folder within the destination folder c:\temp. # files: - source: .\my-folder destination: c:\temp\other-folder # # Result: # c:\temp\other-folder\my-file.txt # c:\temp\other-folder\my-file-2.txt # c:\temp\other-folder\my-file-3.txt # # --------------------- # # 7) Copy only my-file-2.txt and my-file-3.txt to my-folder within the destination folder c:\temp. # files: - source: .\my-folder\my-file-2.txt destination: c:\temp\my-folder - source: .\my-folder\my-file-3.txt destination: c:\temp\my-folder # # Result: # c:\temp\my-folder\my-file-2.txt # c:\temp\my-folder\my-file-3.txt # # --------------------- # # 8) Copy only my-file-2.txt and my-file-3.txt to other-folder within the destination folder c:\temp. # files: - source: .\my-folder\my-file-2.txt destination: c:\temp\other-folder - source: .\my-folder\my-file-3.txt destination: c:\temp\other-folder # # Result: # c:\temp\other-folder\my-file-2.txt # c:\temp\other-folder\my-file-3.txt # # --------------------- # # 9) Copy my-folder and its 3 files (along with the appspec.yml file) to the destination folder c:\temp. If any of the files already exist on the instance, overwrite them. # files: - source: \ destination: c:\temp file_exists_behavior: OVERWRITE # # Result: # c:\temp\appspec.yml # c:\temp\my-folder\my-file.txt # c:\temp\my-folder\my-file-2.txt # c:\temp\my-folder\my-file-3.txt