View a markdown version of this page

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-agent deploy-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 2.0.0 oder höher des CodeDeploy Agenten. Für den deploy-local Unterbefehl ist Version 2.0.0 oder höher erforderlich. Verwenden Sie für Version 1.8.x und früher stattdessen den eigenständigen Befehl. codedeploy-local Versionsinformationen finden Sie unter Versionsverlauf des Agenten CodeDeploy. Installationsinformationen 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 zur Verwendung bereit 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: amzn-s3-demo-bucket

    { "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-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: amzn-s3-demo-bucket

    { "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-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 (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 codedeploy-agent deploy-local Befehl verwendet die codedeploy-agent Binärdatei an den folgenden Speicherorten:

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

  • Auf Windows Server:C:\ProgramData\Amazon\CodeDeploy\bin\codedeploy-agent.exe.

Aus Gründen der Abwärtskompatibilität ist der codedeploy-local Befehl auch an den gleichen Stellen verfügbar:

  • Auf Amazon Linux, RHEL oder Ubuntu Server befindet sich der Befehl unter/opt/codedeploy-agent/bin/codedeploy-local.

  • Auf Windows Server befindet sich der Befehl unterC:\ProgramData\Amazon\CodeDeploy\bin\codedeploy-local.exe.

Die codedeploy-local [options] Syntax funktioniert weiterhin und akzeptiert dieselben Optionen wiecodedeploy-agent deploy-local.

Grundlegende Befehlssyntax

codedeploy-agent deploy-local [options]

Syntax

codedeploy-agent deploy-local [--bundle-location <value>] [--type <value>] [--file-exists-behavior <value>] [--deployment-group <value>] [--deployment-group-name <value>] [--application-name <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://amzn-s3-demo-bucket/bundle.tar

  • GitHub Repository: 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 in der Datei ExistsBehavior in der AWS CodeDeploy API-Referenz.

-g, --deployment-group

Der Pfad zum Zielordner, in dem der bereitzustellende Inhalt gespeichert wird. Wenn Sie keinen Ordner angeben, wird vom Tool im Root-Verzeichnis Ihrer Bereitstellung ein Ordner mit dem Namen default-local-deployment-group erstellt. Für jede lokale Bereitstellung, die Sie erstellen, erstellt das Tool in diesem Ordner ein Unterverzeichnis mit Namen wie local-1234 (wobei die Nummer die Prozess-ID ist).

-d, --deployment-group-name

Der Name der Bereitstellungsgruppe, der den Lifecycle-Hook-Skripten als Umgebungsvariable zur Verfügung gestellt wird. DEPLOYMENT_GROUP_NAME Standardeinstellung: LocalFleet.

-a, --anwendungsname

Der Anwendungsname, der den Lifecycle-Hook-Skripten als Umgebungsvariable zur Verfügung gestellt wird. APPLICATION_NAME Standardmäßig wird der Speicherort des Pakets verwendet.

-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-agent deploy-local
codedeploy-agent deploy-local --bundle-location /path/to/local/bundle/directory
codedeploy-agent deploy-local --bundle-location C:/path/to/local/bundle.zip --type zip --deployment-group my-deployment-group
codedeploy-agent deploy-local --bundle-location /path/to/local/directory --type directory --deployment-group my-deployment-group

Stellen Sie ein Paket von Amazon S3 bereit:

codedeploy-agent deploy-local --bundle-location s3://amzn-s3-demo-bucket/bundle.tgz --type tgz
codedeploy-agent deploy-local --bundle-location s3://amzn-s3-demo-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-agent deploy-local --bundle-location https://github.com/awslabs/aws-codedeploy-sample-tomcat --type zip
codedeploy-agent deploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/master --type zip
codedeploy-agent deploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/HEAD --type zip
codedeploy-agent deploy-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-agent deploy-local --bundle-location /path/to/local/bundle.tar --type tar --deployment-group my-deployment-group --events DownloadBundle,Install,ApplicationStart,HealthCheck

Stoppen Sie eine zuvor bereitgestellte Anwendung mithilfe des ApplicationStop Lebenszyklusereignisses:

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

Bereitstellung mit eine bestimmten Bereitstellungsgruppen-ID:

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