

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)
<a name="reference-appspec-file-structure-files"></a>

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 „\$1“ 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 unter[Planen Sie eine Revision für CodeDeploy](application-revisions-plan.md).

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 sind`files:`.
+ 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.

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

## Beispiele für den Abschnitt „Dateien“
<a name="reference-appspec-file-structure-files-examples"></a>

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/On-Premises-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
```