Verwenden Sie den CodeDeploy Agenten, um ein Bereitstellungspaket auf einem lokalen Computer zu validieren - 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.

Verwenden Sie den CodeDeploy Agenten, um ein Bereitstellungspaket auf einem lokalen Computer zu validieren

Mit dem CodeDeploy Agenten können Sie Inhalte auf einer Instanz bereitstellen, bei der Sie angemeldet sind. Auf diese Weise können Sie die Integrität einer Anwendungsspezifikationsdatei (AppSpec Datei), die Sie in einer Bereitstellung verwenden möchten, und des Inhalts, den Sie bereitstellen möchten, testen.

Sie müssen keine Anwendung und keine Bereitstellungsgruppe erstellen. Wenn Sie Inhalte bereitstellen möchten, die auf der lokalen Instanz gespeichert sind, benötigen Sie nicht einmal ein AWS Konto. Für die einfachsten Tests können Sie den codedeploy-local Befehl ohne Angabe von Optionen in einem Verzeichnis ausführen, das die AppSpec Datei und den Inhalt enthält, der bereitgestellt werden soll. Das Tool hält Optionen für andere Testfälle bereit.

Eine Überprüfung eines Bereitstellungspakets auf einem lokalen Computer ermöglicht Ihnen Folgendes:

  • Testen der Integrität einer Anwendungsrevision

  • Testen Sie den Inhalt einer AppSpec Datei.

  • Testen Sie es CodeDeploy zum ersten Mal mit Ihrem vorhandenen Anwendungscode.

  • Schnelle Bereitstellung von Inhalten, wenn Sie bereits bei einer Instance angemeldet sind

Sie können Deploy-Inhalte verwenden, die auf der lokalen Instance oder in einem unterstützten Remote-Repository-Typ (Amazon S3 S3-Buckets oder öffentliche GitHub Repositorys) gespeichert sind.

Voraussetzungen

Bevor Sie mit einer lokale Bereitstellung beginnen, führen Sie die folgenden Schritte aus:

  • Erstellen oder verwenden Sie einen Instance-Typ, der CodeDeploy vom Agenten unterstützt wird. Weitere Informationen finden Sie unter Betriebssysteme, die vom Agenten unterstützt werden CodeDeploy .

  • Installieren Sie Version 1.0.1.1352 oder höher des Agenten. CodeDeploy Weitere Informationen finden Sie unter Installieren Sie den CodeDeploy Agenten.

  • Wenn Sie Ihre Inhalte aus einem Amazon S3 S3-Bucket oder GitHub -Repository bereitstellen, stellen Sie einen Benutzer bereit, mit dem Sie sie verwenden können CodeDeploy. Weitere Informationen finden Sie unter Schritt 1: Einrichtung.

  • Wenn Sie Ihre Anwendungsrevision von einem Amazon S3 S3-Bucket aus bereitstellen, erstellen Sie einen Amazon S3 S3-Bucket in der Region, in der Sie arbeiten, und wenden Sie eine Amazon S3 S3-Bucket-Richtlinie auf den Bucket an. Diese Richtlinie gewährt Ihren Instances die erforderlichen Berechtigungen zum Herunterladen der Anwendungsrevision.

    Die folgende Amazon S3 S3-Bucket-Richtlinie ermöglicht beispielsweise, dass jede Amazon EC2 EC2-Instance mit einem angehängten IAM-Instance-Profil, das den ARN arn:aws:iam::444455556666:role/CodeDeployDemo enthält, von einer beliebigen Stelle im Amazon S3 S3-Bucket mit dem Namen heruntergeladen werden kann: DOC-EXAMPLE-BUCKET

    { "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "Principal": { "AWS": [ "arn:aws:iam::444455556666:role/CodeDeployDemo" ] } } ] }

    Die folgende Amazon S3 S3-Bucket-Richtlinie ermöglicht es jeder lokalen Instance mit einem zugehörigen IAM-Benutzer, der den ARN arn:aws:iam::444455556666:user/CodeDeployUser enthält, von einer beliebigen Stelle im Amazon S3 S3-Bucket mit dem Namen herunterzuladen: DOC-EXAMPLE-BUCKET

    { "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "Principal": { "AWS": [ "arn:aws:iam::444455556666:user/CodeDeployUser" ] } } ] }

    Informationen zum Generieren und Anhängen einer Amazon S3 S3-Bucket-Richtlinie finden Sie unter Beispiele für Bucket-Richtlinien.

  • Wenn Sie Ihre Anwendungsrevision aus einem Amazon S3 S3-Bucket oder GitHub -Repository bereitstellen, richten Sie ein IAM-Instance-Profil ein und hängen Sie es an die Instance an. Informationen finden Sie unter Schritt 4: Erstellen Sie ein IAM-Instance-Profil für Ihre Amazon EC2 EC2-Instances, Erstellen Sie eine Amazon EC2 EC2-Instance für CodeDeploy (AWS CLI oder Amazon EC2 EC2-Konsole) und Erstellen Sie eine Amazon EC2 EC2-Instance für CodeDeploy (AWS CloudFormation Vorlage).

  • Wenn Sie Ihre Inhalte von bereitstellen GitHub, erstellen Sie ein GitHub Konto und ein öffentliches Repository. Informationen zum Erstellen eines GitHub Kontos finden Sie unter Beitreten GitHub. Informationen zum Erstellen eines GitHub Repositorys finden Sie unter Repo erstellen.

    Anmerkung

    Private Repositorys werden derzeit nicht unterstützt. Wenn Ihr Inhalt in einem privaten GitHub Repository gespeichert ist, können Sie ihn auf die Instanz herunterladen und mit der --bundle-location Option den lokalen Pfad angeben.

  • Bereiten Sie den Inhalt (einschließlich einer AppSpec Datei) vor, den Sie auf der Instance bereitstellen möchten, und platzieren Sie ihn auf der lokalen Instance, in Ihrem Amazon S3 S3-Bucket oder in Ihrem GitHub Repository. Weitere Informationen finden Sie unter Arbeiten mit Anwendungsrevisionen für CodeDeploy.

  • Wenn Sie andere Werte als die Standardwerte für andere Konfigurationsoptionen verwenden möchten, erstellen Sie die Konfigurationsdatei und platzieren Sie sie auf der Instance (/etc/codedeploy-agent/conf/codedeployagent.ymlfür Amazon Linux-, RHEL- oder Ubuntu-Server-Instances oder C:\ProgramData\Amazon\CodeDeploy\conf.yml für Windows Server-Instances). Weitere Informationen finden Sie unter CodeDeploy Referenz zur Agentenkonfiguration.

    Anmerkung

    Wenn Sie eine Konfigurationsdatei auf Amazon Linux-, RHEL- oder Ubuntu-Server-Instances verwenden, müssen Sie entweder:

    • Verwenden Sie die Variablen :root_dir: und :log_dir:, um Speicherorte für das Root-Verzeichnis der Bereitstellung und die Protokollverzeichnisordner anzugeben, die von der Standardeinstellung abweichen.

    • Wird verwendetsudo, um CodeDeploy Agentenbefehle auszuführen.

Erstellen Sie eine lokale Bereitstellung

Öffnen Sie auf der Instance, auf der Sie die lokale Bereitstellung erstellen möchten, eine Terminalsitzung (Amazon Linux-, RHEL- oder Ubuntu Server-Instances) oder eine Befehlszeile (Windows Server), um die Tool-Befehle auszuführen.

Anmerkung

Der Befehl codedeploy-local ist an folgenden Orten installiert:

  • Auf Amazon Linux, RHEL oder Ubuntu Server:/opt/codedeploy-agent/bin.

  • Auf Windows Server:C:\ProgramData\Amazon\CodeDeploy\bin.

Grundlegende Befehlssyntax

codedeploy-local [options]

Syntax

codedeploy-local [--bundle-location <value>] [--type <value>] [--file-exists-behavior <value>] [--deployment-group <value>] [--events <comma-separated values>] [--agent-configuration-file <value>] [--appspec-filename <value>]

Optionen

-l, --bundle-location

Gibt den Speicherort des Anwendungsrevisions-Bundles an. Wenn Sie keinen Speicherort angeben, wird vom Tool standardmäßig das Verzeichnis verwendet, in dem Sie derzeit arbeiten. Wenn Sie für --bundle-location einen Wert angeben, müssen Sie einen Wert für --type angeben.

Beispiele für Bundle-Standortformate:

  • Lokale Amazon Linux-, RHEL- oder Ubuntu-Server-Instanz: /path/to/local/bundle.tgz

  • Lokale Windows Server-Instanz: C:/path/to/local/bundle

  • Amazon S3 S3-Bucket: s3://DOC-EXAMPLE-BUCKET/bundle.tar

  • GitHub Repositorium: https://github.com/account-name/repository-name/

-t, --type

Das Format des Anwendungsrevisions-Bundles. Unterstützte Typen sind u. a.: tgz, tar, zip und directory. Wenn Sie keinen Typ angeben, wird vom Tool standardmäßig directory verwendet. Wenn Sie für --type einen Wert angeben, müssen Sie einen Wert für --bundle-location angeben.

-b, - - file-exists-behavior

Dies gibt an, wie Dateien behandelt werden, die bereits an einem Bereitstellungs-Zielspeicherort vorhanden sind, aber nicht Teil einer vorherigen erfolgreichen Bereitstellung waren. Zu den Optionen gehören DISALLOW, OVERWRITE, RETAIN. Weitere Informationen finden Sie fileExistsBehaviorin der AWS CodeDeploy API-Referenz.

-g, --deployment-group

Der Pfad zum Zielordner, in dem der bereitzustellende Inhalt gespeichert wird. Wenn Sie keinen Ordner angeben, erstellt das Tool einen Ordner mit dem Namen default-local-deployment-groupin Ihrem Deployment-Stammverzeichnis. Für jede von Ihnen erstellte lokale Bereitstellung wird vom Tool in diesem Ordner ein Unterverzeichnis mit Namen wie d-98761234-local erstellt.

-e, --events

Eine Reihe von Override-Lifecycle-Event-Hooks, die Sie der Reihe nach ausführen möchten, anstatt der Ereignisse, die Sie in der AppSpec Datei aufgeführt haben. Mehrere Hooks können durch Kommas getrennt eingegeben werden. Sie können diese Option in folgenden Fällen verwenden:

  • Sie möchten einen anderen Satz von Ereignissen ausführen, ohne die AppSpec Datei aktualisieren zu müssen.

  • Sie möchten einen einzelnen Event-Hook als Ausnahme von dem ausführen, was in der AppSpec Datei enthalten ist, z. ApplicationStop B.

Wenn Sie in der Override-Liste keine Ereignisse angeben DownloadBundleund installieren, werden sie vor allen von Ihnen angegebenen Event-Hooks ausgeführt. Wenn Sie die Optionen DownloadBundleund Install in die Liste der --events Optionen aufnehmen, dürfen ihnen nur Ereignisse vorangestellt werden, die normalerweise in CodeDeploy Bereitstellungen vor ihnen ausgeführt werden. Weitere Informationen finden Sie unter AppSpec Abschnitt „Hooks“.

-c, -- agent-configuration-file

Der Speicherort einer Konfigurationsdatei für die Bereitstellung, wenn der Speicherort vom Standardwert abweicht. In einer Konfigurationsdatei werden Alternativen zu anderen Standardwerten und Verhaltensweisen für eine Bereitstellung angegeben.

Standardmäßig werden Konfigurationsdateien in /etc/codedeploy-agent/conf/codedeployagent.yml (Amazon Linux-, RHEL- oder Ubuntu-Server-Instances) oder C:/ProgramData/Amazon/CodeDeploy/conf.yml (Windows Server) gespeichert. Weitere Informationen finden Sie unter CodeDeploy Referenz zur Agentenkonfiguration.

-A, --appspec-filename

Der Name der Datei. AppSpec Für lokale Bereitstellungen sind die Werte appspec.yml und appspec.yaml zulässig. Standardmäßig wird die AppSpec Datei aufgerufenappspec.yml.

-h, --help

Zeigt eine Zusammenfassung der Hilfeinhalte an.

-v, --version

Zeigt die Versionsnummer des Tools an.

Beispiele

Im Folgenden finden Sie Beispiele für gültige Befehlsformate.

codedeploy-local
codedeploy-local --bundle-location /path/to/local/bundle/directory
codedeploy-local --bundle-location C:/path/to/local/bundle.zip --type zip --deployment-group my-deployment-group
codedeploy-local --bundle-location /path/to/local/directory --type directory --deployment-group my-deployment-group

Stellen Sie ein Paket von Amazon S3 bereit:

codedeploy-local --bundle-location s3://DOC-EXAMPLE-BUCKET/bundle.tgz --type tgz
codedeploy-local --bundle-location s3://DOC-EXAMPLE-BUCKET/bundle.zip?versionId=1234&etag=47e8 --type zip --deployment-group my-deployment-group

Stellen Sie ein Paket aus einem öffentlichen GitHub Repository bereit:

codedeploy-local --bundle-location https://github.com/awslabs/aws-codedeploy-sample-tomcat --type zip
codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/master --type zip
codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/HEAD --type zip
codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/1a2b3c4d --type zip

Ein Paket unter Angabe mehrerer Lebenszyklusereignisse bereitstellen:

codedeploy-local --bundle-location /path/to/local/bundle.tar --type tar --application-folder my-deployment --events DownloadBundle,Install,ApplicationStart,HealthCheck

Stoppen Sie eine zuvor bereitgestellte Anwendung mithilfe des ApplicationStop Lebenszyklusereignisses:

codedeploy-local --bundle-location /path/to/local/bundle.tgz --type tgz --deployment-group --events ApplicationStop

Bereitstellung mit eine bestimmten Bereitstellungsgruppen-ID:

codedeploy-local --bundle-location C:/path/to/local/bundle/directory --deployment-group 1234abcd-5dd1-4774-89c6-30b107ac5dca
codedeploy-local --bundle-location C:/path/to/local/bundle.zip --type zip --deployment-group 1234abcd-5dd1-4774-89c6-30b107ac5dca