AppSpec Abschnitt „Ressourcen“ (nur Amazon ECS und AWS Lambda 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 „Ressourcen“ (nur Amazon ECS und AWS Lambda Bereitstellungen)

Der Inhalt des 'resources' Abschnitts der AppSpec Datei hängt von der Rechenplattform Ihrer Bereitstellung ab. Der 'resources' Abschnitt für eine ECS Amazon-Bereitstellung enthält Ihre ECS Amazon-Aufgabendefinition, den Container und den Port für die Weiterleitung des Datenverkehrs an Ihren aktualisierten ECS Amazon-Aufgabensatz sowie weitere optionale Informationen. Der 'resources' Abschnitt für eine AWS Lambda Bereitstellung enthält den Namen, den Alias, die aktuelle Version und die Zielversion einer Lambda-Funktion.

AppSpec Abschnitt „Ressourcen“ für AWS Lambda-Bereitstellungen

Der 'resources' Abschnitt spezifiziert die bereitzustellende Lambda-Funktion und hat die folgende Struktur:

YAML:

resources: - name-of-function-to-deploy: type: "AWS::Lambda::Function" properties: name: name-of-lambda-function-to-deploy alias: alias-of-lambda-function-to-deploy currentversion: version-of-the-lambda-function-traffic-currently-points-to targetversion: version-of-the-lambda-function-to-shift-traffic-to

JSON:

"resources": [ { "name-of-function-to-deploy" { "type": "AWS::Lambda::Function", "properties": { "name": "name-of-lambda-function-to-deploy", "alias": "alias-of-lambda-function-to-deploy", "currentversion": "version-of-the-lambda-function-traffic-currently-points-to", "targetversion": "version-of-the-lambda-function-to-shift-traffic-to" } } } ]

Jede Eigenschaft wird mit einer Zeichenfolge angegeben.

  • name – Erforderlich. Dies ist der Name der Lambda-Funktion, die bereitgestellt werden soll.

  • alias – Erforderlich. Dies ist der Name des Alias für die Lambda-Funktion.

  • currentversion – Erforderlich. Dies ist die Version der Lambda-Funktion, auf die der Traffic derzeit verweist. Dieser Wert muss eine gültige positive Ganzzahl sein.

  • targetversion – Erforderlich. Dies ist die Version der Lambda-Funktion, auf die der Datenverkehr umgestellt wird. Dieser Wert muss eine gültige positive Ganzzahl sein.

AppSpec Abschnitt „Ressourcen“ für ECS Amazon-Bereitstellungen

Der 'resources' Abschnitt spezifiziert den bereitzustellenden ECS Amazon-Service und hat die folgende Struktur:

YAML:

Resources: - TargetService: Type: AWS::ECS::Service Properties: TaskDefinition: "task-definition-arn" LoadBalancerInfo: ContainerName: "ecs-container-name" ContainerPort: "ecs-application-port" # Optional properties PlatformVersion: "ecs-service-platform-version" NetworkConfiguration: AwsvpcConfiguration: Subnets: ["ecs-subnet-1","ecs-subnet-n"] SecurityGroups: ["ecs-security-group-1","ecs-security-group-n"] AssignPublicIp: "ENABLED | DISABLED" CapacityProviderStrategy: - Base: integer CapacityProvider: "capacityProviderA" Weight: integer - Base: integer CapacityProvider: "capacityProviderB" Weight: integer

JSON:

"Resources": [ { "TargetService": { "Type": "AWS::ECS::Service", "Properties": { "TaskDefinition": "task-definition-arn", "LoadBalancerInfo": { "ContainerName": "ecs-container-name", "ContainerPort": "ecs-application-port" }, "PlatformVersion": "ecs-service-platform-version", "NetworkConfiguration": { "AwsvpcConfiguration": { "Subnets": [ "ecs-subnet-1", "ecs-subnet-n" ], "SecurityGroups": [ "ecs-security-group-1", "ecs-security-group-n" ], "AssignPublicIp": "ENABLED | DISABLED" } }, "CapacityProviderStrategy": [ { "Base": integer, "CapacityProvider": "capacityProviderA", "Weight": integer }, { "Base": integer, "CapacityProvider": "capacityProviderB", "Weight": integer } ] } } } ]

Jede Eigenschaft wird mit einer Zeichenfolge angegeben, mit Ausnahme vonContainerPort, bei der es sich um eine Zahl handelt.

  • TaskDefinition – Erforderlich. Dies ist die Aufgabendefinition für den ECS bereitzustellenden Amazon-Service. Sie wird zusammen mit ARN der Aufgabendefinition angegeben. Das ARN Format istarn:aws:ecs:aws-region:account-id:task-definition/task-definition-family:task-definition-revision. Weitere Informationen finden Sie unter Amazon Resource Names (ARNs) und AWS Service-Namespaces.

    Anmerkung

    Der :task-definition-revision Teil von ist optional. ARN Wenn es weggelassen wird, ECS verwendet Amazon die neueste ACTIVE Version der Aufgabendefinition.

  • ContainerName – Erforderlich. Dies ist der Name des ECS Amazon-Containers, der Ihre ECS Amazon-Anwendung enthält. Es muss sich um einen Container handeln, der in Ihrer ECS Amazon-Aufgabendefinition angegeben ist.

  • ContainerPort – Erforderlich. Dies ist der Port auf dem Container, zu dem der Verkehr weitergeleitet wird.

  • PlatformVersion: Optional. Die Plattformversion der Fargate-Aufgaben im bereitgestellten ECS Amazon-Service. Weitere Informationen finden Sie unter AWS Fargate -Plattformversionen. Wenn nicht angegeben, LATEST wird sie standardmäßig verwendet.

  • NetworkConfiguration: Optional. Unter AwsvpcConfiguration können Sie Folgendes angeben. Weitere Informationen finden Sie AwsVpcConfigurationin der Amazon ECS Container Service API Reference.

    • Subnets: Optional. Eine durch Kommas getrennte Liste mit einem oder mehreren Subnetzen in Ihrem Amazon-Service. ECS

    • SecurityGroups: Optional. Eine durch Kommas getrennte Liste mit einer oder mehreren Sicherheitsgruppen in Ihrem Amazon Elastic Container Service.

    • AssignPublicIp: Optional. Eine Zeichenfolge, die angibt, ob die elastic network interface Ihres ECS Amazon-Service eine öffentliche IP-Adresse erhält. Die gültigen Werte sind ENABLED und DISABLED.

    Anmerkung

    Alle oder keine der Einstellungen unter NetworkConfiguration müssen angegeben werden. Wenn Sie beispielsweise Subnets angeben möchten, müssen Sie auch SecurityGroups und AssignPublicIp angeben. Wenn keine angegeben ist, werden die aktuellen ECS Netzwerkeinstellungen von Amazon CodeDeploy verwendet.

  • CapacityProviderStrategy: Optional. Eine Liste der ECS Amazon-Kapazitätsanbieter, die Sie für Ihre Bereitstellung verwenden möchten. Weitere Informationen finden Sie unter Amazon ECS Capacity Providers im Amazon Elastic Container Service Developer Guide. Für jeden Kapazitätsanbieter können Sie die folgenden Einstellungen angeben. Einzelheiten zu diesen Einstellungen finden Sie unter AWS:ECS::: ServiceCapacityProviderStrategyItem im AWS CloudFormation Benutzerhandbuch

    • Base: Optional. Der Basiswert gibt an, wie viele Aufgaben mindestens mit dem angegebenen Kapazitätsanbieter ausgeführt werden sollen. In einer Kapazitätsanbieterstrategie kann nur für einen Kapazitätsanbieter ein Basiswert festgelegt werden. Wenn kein Wert angegeben wird, wird der Standardwert 0 verwendet.

    • CapacityProvider: Optional. Der Kurzname des Kapazitätsanbieters. Beispiel: capacityProviderA

    • Weight: Optional.

      Der Gewichtungswert gibt den relativen Prozentsatz der Gesamtzahl der gestarteten Aufgaben an, die den angegebenen Kapazitätsanbieter verwenden sollten. Der weight-Wert wird berücksichtigt, nachdem der base-Wert, falls definiert, erfüllt ist.

      Wenn kein weight-Wert angegeben wird, wird der Standardwert 0 verwendet. Wenn mehrere Capacity Provider innerhalb einer Capacity Provider-Strategie angegeben werden, muss mindestens einer der Capacity Provider einen Gewichtungswert von mehr als Null haben, und alle Capacity Provider mit einem Gewicht von 0 werden nicht für Aufgaben verwendet. Wenn Sie mehrere Capacity Provider in einer Strategie angeben, die alle ein Gewichtung von 0 haben, schlagen alle RunTask- oder CreateService-Aktionen, die die Capacity-Provider-Strategie verwenden, fehl.

      Ein Beispielszenario für die Verwendung von Gewichtungen ist die Definition einer Strategie, die zwei Kapazitätsanbieter enthält, wobei beide eine Gewichtung von 1 haben. Wenn die base erfüllt ist, werden die Aufgaben gleichmäßig auf die beiden Kapazitätsanbieter aufgeteilt. Wenn Sie nach derselben Logik eine Gewichtung von 1 für A und capacityProvidereine Gewichtung von 4 für capacityProviderB angeben, dann würden für jede einzelne Aufgabe, die mit capacityProviderA ausgeführt wird, vier Aufgaben capacityProviderB verwenden.