Hinzufügen einer Anwendungsspezifikationsdatei zu einer Revision für CodeDeploy - 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.

Hinzufügen einer Anwendungsspezifikationsdatei zu einer Revision für CodeDeploy

In diesem Thema wird gezeigt, wie Sie Ihrer Bereitstellung eine AppSpec Datei hinzufügen. Es enthält auch Vorlagen zum Erstellen einer AppSpec Datei für eine AWS Lambda- und EC2/On-Premises-Bereitstellung.

Fügen Sie eine AppSpec Datei für eine Amazon ECS-Bereitstellung hinzu

Für eine Bereitstellung auf einer Amazon ECS-Rechenplattform:

  • Die AppSpec Datei spezifiziert die für die Bereitstellung verwendete Amazon ECS-Aufgabendefinition, eine Container-Namen- und Port-Zuordnung, die für die Weiterleitung des Datenverkehrs verwendet werden, sowie optionale Lambda-Funktionen, die nach Ereignissen im Bereitstellungslebenszyklus ausgeführt werden.

  • Eine Revision entspricht einer AppSpec Datei.

  • Eine AppSpec Datei kann mit JSON oder YAML geschrieben werden.

  • Eine AppSpec Datei kann als Textdatei gespeichert oder direkt in eine Konsole eingegeben werden, wenn Sie eine Bereitstellung erstellen. Weitere Informationen finden Sie unter Erstellen Sie eine Amazon ECS Compute Platform-Bereitstellung (Konsole).

Um eine AppSpec Datei zu erstellen

  1. Kopieren Sie die JSON- oder YAML-Vorlage in einen Texteditor oder in den AppSpec Editor in der Konsole.

  2. Ändern Sie die Vorlage nach Bedarf.

  3. Verwenden Sie einen JSON- oder YAML-Validator, um Ihre Datei zu validieren. AppSpec Wenn Sie den AppSpec Editor verwenden, wird die Datei validiert, wenn Sie Bereitstellung erstellen wählen.

  4. Wenn Sie einen Texteditor verwenden, speichern Sie die Datei. Wenn Sie die verwenden, AWS CLI um Ihre Bereitstellung zu erstellen, verweisen Sie auf die AppSpec Datei, wenn sie sich auf Ihrer Festplatte oder in einem Amazon S3 S3-Bucket befindet. Wenn Sie die Konsole verwenden, müssen Sie Ihre AppSpec Datei auf Amazon S3 übertragen.

AppSpec YAML-Dateivorlage für eine Amazon ECS-Bereitstellung mit Anweisungen

Im Folgenden finden Sie eine YAML-Vorlage einer AppSpec Datei für eine Amazon ECS-Bereitstellung mit allen verfügbaren Optionen. Weitere Informationen zu Lebenszyklusereignissen für die Verwendung im hooks-Abschnitt finden Sie unter AppSpec „hooks“-Abschnitt für eine Amazon-ECS-Bereitstellung.

# This is an appspec.yml template file for use with an Amazon ECS deployment in CodeDeploy. # The lines in this template that start with the hashtag are # comments that can be safely left in the file or # ignored. # For help completing this file, see the "AppSpec File Reference" in the # "CodeDeploy User Guide" at # https://docs.aws.amazon.com/codedeploy/latest/userguide/app-spec-ref.html version: 0.0 # In the Resources section, you must specify the following: the Amazon ECS service, task definition name, # and the name and port of the load balancer to route traffic, # target version, and (optional) the current version of your AWS Lambda function. Resources: - TargetService: Type: AWS::ECS::Service Properties: TaskDefinition: "" # Specify the ARN of your task definition (arn:aws:ecs:region:account-id:task-definition/task-definition-family-name:task-definition-revision-number) LoadBalancerInfo: ContainerName: "" # Specify the name of your Amazon ECS application's container ContainerPort: "" # Specify the port for your container where traffic reroutes # Optional properties PlatformVersion: "" # Specify the version of your Amazon ECS Service NetworkConfiguration: AwsvpcConfiguration: Subnets: ["",""] # Specify one or more comma-separated subnets in your Amazon ECS service SecurityGroups: ["",""] # Specify one or more comma-separated security groups in your Amazon ECS service AssignPublicIp: "" # Specify "ENABLED" or "DISABLED" # (Optional) In the Hooks section, specify a validation Lambda function to run during # a lifecycle event. Hooks: # Hooks for Amazon ECS deployments are: - BeforeInstall: "" # Specify a Lambda function name or ARN - AfterInstall: "" # Specify a Lambda function name or ARN - AfterAllowTestTraffic: "" # Specify a Lambda function name or ARN - BeforeAllowTraffic: "" # Specify a Lambda function name or ARN - AfterAllowTraffic: "" # Specify a Lambda function name or ARN

AppSpec JSON-Datei für eine Amazon ECS-Bereitstellungsvorlage

Im Folgenden finden Sie eine JSON-Vorlage für eine AppSpec Datei für eine Amazon ECS-Bereitstellung mit allen verfügbaren Optionen. Vorlagenanweisungen finden Sie in den Kommentaren zur YAML-Version im vorherigen Abschnitt. Weitere Informationen zu Lebenszyklusereignissen für die Verwendung im hooks-Abschnitt finden Sie unter AppSpec „hooks“-Abschnitt für eine Amazon-ECS-Bereitstellung.

{ "version": 0.0, "Resources": [ { "TargetService": { "Type": "AWS::ECS::Service", "Properties": { "TaskDefinition": "", "LoadBalancerInfo": { "ContainerName": "", "ContainerPort": }, "PlatformVersion": "", "NetworkConfiguration": { "AwsvpcConfiguration": { "Subnets": [ "", "" ], "SecurityGroups": [ "", "" ], "AssignPublicIp": "" } } } } } ], "Hooks": [ { "BeforeInstall": "" }, { "AfterInstall": "" }, { "AfterAllowTestTraffic": "" }, { "BeforeAllowTraffic": "" }, { "AfterAllowTraffic": "" } ] }

Fügen Sie eine AppSpec Datei für eine AWS Lambda-Bereitstellung hinzu

Für eine Bereitstellung auf einer AWS Lambda-Rechenplattform:

  • Die AppSpec Datei enthält Anweisungen zu den Lambda-Funktionen, die bereitgestellt und für die Bereitstellungsvalidierung verwendet werden sollen.

  • Eine Revision entspricht einer AppSpec Datei.

  • Eine AppSpec Datei kann mit JSON oder YAML geschrieben werden.

  • Eine AppSpec Datei kann als Textdatei gespeichert oder beim Erstellen einer Bereitstellung direkt in einen AppSpec Konsoleneditor eingegeben werden. Weitere Informationen finden Sie unter Eine AWS Lambda Compute Platform-Bereitstellung erstellen (Konsole).

Um eine AppSpec Datei zu erstellen:

  1. Kopieren Sie die JSON- oder YAML-Vorlage in einen Texteditor oder in den AppSpec Editor in der Konsole.

  2. Ändern Sie die Vorlage nach Bedarf.

  3. Verwenden Sie einen JSON- oder YAML-Validator, um Ihre Datei zu validieren. AppSpec Wenn Sie den AppSpec Editor verwenden, wird die Datei validiert, wenn Sie Bereitstellung erstellen wählen.

  4. Wenn Sie einen Texteditor verwenden, speichern Sie die Datei. Wenn Sie die verwenden, AWS CLI um Ihre Bereitstellung zu erstellen, verweisen Sie auf die AppSpec Datei, wenn sie sich auf Ihrer Festplatte oder in einem Amazon S3 S3-Bucket befindet. Wenn Sie die Konsole verwenden, müssen Sie Ihre AppSpec Datei auf Amazon S3 übertragen.

AppSpec YAML-Dateivorlage für eine AWS Lambda Bereitstellung mit Anweisungen

Weitere Informationen zu Lebenszyklusereignissen für die Verwendung im hooks-Abschnitt finden Sie unter AppSpec „hooks“-Abschnitt für eine AWS Lambda-Bereitstellung.

# This is an appspec.yml template file for use with an AWS Lambda deployment in CodeDeploy. # The lines in this template starting with the hashtag symbol are # instructional comments and can be safely left in the file or # ignored. # For help completing this file, see the "AppSpec File Reference" in the # "CodeDeploy User Guide" at # https://docs.aws.amazon.com/codedeploy/latest/userguide/app-spec-ref.html version: 0.0 # In the Resources section specify the name, alias, # target version, and (optional) the current version of your AWS Lambda function. Resources: - MyFunction: # Replace "MyFunction" with the name of your Lambda function Type: AWS::Lambda::Function Properties: Name: "" # Specify the name of your Lambda function Alias: "" # Specify the alias for your Lambda function CurrentVersion: "" # Specify the current version of your Lambda function TargetVersion: "" # Specify the version of your Lambda function to deploy # (Optional) In the Hooks section, specify a validation Lambda function to run during # a lifecycle event. Replace "LifeCycleEvent" with BeforeAllowTraffic # or AfterAllowTraffic. Hooks: - LifeCycleEvent: "" # Specify a Lambda validation function between double-quotes.

AppSpec JSON-Datei für eine AWS Lambda Bereitstellungsvorlage

Ersetzen Sie in der folgenden Vorlage MyFunction "" durch den Namen Ihrer AWS Lambda Funktion. Ersetzen Sie im optionalen Abschnitt Hooks die Lebenszyklusereignisse durch BeforeAllowTraffic oder AfterAllowTraffic.

Weitere Informationen zu Lebenszyklusereignissen für die Verwendung im Hooks-Abschnitt finden Sie unter AppSpec „hooks“-Abschnitt für eine AWS Lambda-Bereitstellung.

{ "version": 0.0, "Resources": [{ "MyFunction": { "Type": "AWS::Lambda::Function", "Properties": { "Name": "", "Alias": "", "CurrentVersion": "", "TargetVersion": "" } } }], "Hooks": [{ "LifeCycleEvent": "" } ] }

Fügen Sie eine AppSpec Datei für eine EC2/On-Premises-Bereitstellung hinzu

Ohne eine AppSpec Datei CodeDeploy können Sie die Quelldateien in Ihrer Anwendungsrevision nicht ihren Zielen zuordnen oder Skripts für Ihre Bereitstellung auf einer EC2/lokalen Rechenplattform ausführen,.

Jede Revision darf nur eine Datei enthalten. AppSpec

Um einer Revision eine AppSpec Datei hinzuzufügen:

  1. Kopieren Sie die Vorlage in einen Texteditor.

  2. Ändern Sie die Vorlage nach Bedarf.

  3. Verwenden Sie einen YAML-Validator, um die Gültigkeit Ihrer Datei zu überprüfen. AppSpec

  4. Speichern Sie Datei als appspec.yml im Stammverzeichnis der Revision.

  5. Führen Sie einen der folgenden Befehle aus, um zu überprüfen, ob Sie Ihre AppSpec Datei im Stammverzeichnis abgelegt haben:

    • Für Linux, macOS oder Unix:

      find /path/to/root/directory -name appspec.yml

      Es erfolgt keine Ausgabe, wenn die AppSpec Datei dort nicht gefunden wird.

    • Für Windows:

      dir path\to\root\directory\appspec.yml

      Ein Fehler „Datei nicht gefunden“ wird angezeigt, wenn die AppSpec Datei dort nicht gespeichert ist.

  6. Übertragen Sie die Revision auf Amazon S3 oder GitHub.

    Detaillierte Anweisungen finden Sie unter Eine Revision für Amazon S3 CodeDeploy senden (nur EC2-/On-Premises Bereitstellungen).

AppSpec Dateivorlage für eine EC2/On-Premises-Bereitstellung mit Anweisungen

Anmerkung

Bereitstellungen auf Windows Server-Instanzen unterstützen das Element nicht. runas Wenn Sie es auf Windows Server-Instanzen bereitstellen, nehmen Sie es nicht in Ihre AppSpec Datei auf.

# This is an appspec.yml template file for use with an EC2/On-Premises deployment in CodeDeploy. # The lines in this template starting with the hashtag symbol are # instructional comments and can be safely left in the file or # ignored. # For help completing this file, see the "AppSpec File Reference" in the # "CodeDeploy User Guide" at # https://docs.aws.amazon.com/codedeploy/latest/userguide/app-spec-ref.html version: 0.0 # Specify "os: linux" if this revision targets Amazon Linux, # Red Hat Enterprise Linux (RHEL), or Ubuntu Server # instances. # Specify "os: windows" if this revision targets Windows Server instances. # (You cannot specify both "os: linux" and "os: windows".) os: linux # os: windows # During the Install deployment lifecycle event (which occurs between the # BeforeInstall and AfterInstall events), copy the specified files # in "source" starting from the root of the revision's file bundle # to "destination" on the Amazon EC2 instance. # Specify multiple "source" and "destination" pairs if you want to copy # from multiple sources or to multiple destinations. # If you are not copying any files to the Amazon EC2 instance, then remove the # "files" section altogether. A blank or incomplete "files" section # may cause associated deployments to fail. files: - source: destination: - source: destination: # For deployments to Amazon Linux, Ubuntu Server, or RHEL instances, # you can specify a "permissions" # section here that describes special permissions to apply to the files # in the "files" section as they are being copied over to # the Amazon EC2 instance. # For more information, see the documentation. # If you are deploying to Windows Server instances, # then remove the # "permissions" section altogether. A blank or incomplete "permissions" # section may cause associated deployments to fail. permissions: - object: pattern: except: owner: group: mode: acls: - context: user: type: range: type: - # If you are not running any commands on the Amazon EC2 instance, then remove # the "hooks" section altogether. A blank or incomplete "hooks" section # may cause associated deployments to fail. hooks: # For each deployment lifecycle event, specify multiple "location" entries # if you want to run multiple scripts during that event. # You can specify "timeout" as the number of seconds to wait until failing the deployment # if the specified scripts do not run within the specified time limit for the # specified event. For example, 900 seconds is 15 minutes. If not specified, # the default is 1800 seconds (30 minutes). # Note that the maximum amount of time that all scripts must finish executing # for each individual deployment lifecycle event is 3600 seconds (1 hour). # Otherwise, the deployment will stop and CodeDeploy will consider the deployment # to have failed to the Amazon EC2 instance. Make sure that the total number of seconds # that are specified in "timeout" for all scripts in each individual deployment # lifecycle event does not exceed a combined 3600 seconds (1 hour). # For deployments to Amazon Linux, Ubuntu Server, or RHEL instances, # you can specify "runas" in an event to # run as the specified user. For more information, see the documentation. # If you are deploying to Windows Server instances, # remove "runas" altogether. # If you do not want to run any commands during a particular deployment # lifecycle event, remove that event declaration altogether. Blank or # incomplete event declarations may cause associated deployments to fail. # During the ApplicationStop deployment lifecycle event, run the commands # in the script specified in "location" starting from the root of the # revision's file bundle. ApplicationStop: - location: timeout: runas: - location: timeout: runas: # During the BeforeInstall deployment lifecycle event, run the commands # in the script specified in "location". BeforeInstall: - location: timeout: runas: - location: timeout: runas: # During the AfterInstall deployment lifecycle event, run the commands # in the script specified in "location". AfterInstall: - location: timeout: runas: - location: timeout: runas: # During the ApplicationStart deployment lifecycle event, run the commands # in the script specified in "location". ApplicationStart: - location: timeout: runas: - location: timeout: runas: # During the ValidateService deployment lifecycle event, run the commands # in the script specified in "location". ValidateService: - location: timeout: runas: - location: timeout: runas: