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

Der Inhalt im -'resources'Abschnitt der - AppSpec Datei variiert je nach Rechenplattform Ihrer Bereitstellung. Der 'resources' Abschnitt für eine Amazon-ECS-Bereitstellung enthält Ihre Amazon-ECS-Aufgabendefinition, Ihren Container und Ihren Port für die Weiterleitung des Datenverkehrs an Ihren aktualisierten Amazon-ECS-Aufgabensatz sowie weitere optionale Informationen. Der 'resources' Abschnitt für eine -AWS LambdaBereitstellung 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 gibt die bereitzustellende Lambda-Funktion an 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 des Lambda-Funktionsdatenverkehrs, auf die derzeit verweist. Dieser Wert muss eine gültige positive Ganzzahl sein.

  • targetversion – Erforderlich. Dies ist die Version des Lambda-Funktionsdatenverkehrs, auf die verschoben wird. Dieser Wert muss eine gültige positive Ganzzahl sein.

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

Der 'resources' Abschnitt gibt den bereitzustellenden Amazon-ECS-Service an 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 von ContainerPort, bei der es sich um eine Zahl handelt.

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

    Anmerkung

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

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

  • ContainerPort – Erforderlich. Dies ist der Port auf dem Container, an den der Datenverkehr weitergeleitet wird.

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

  • NetworkConfiguration: Optional. Unter AwsvpcConfiguration können Sie Folgendes angeben. Weitere Informationen finden Sie unter AwsVpcConfiguration in der Amazon-ECS-Container-Service-API-Referenz.

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

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

    • AssignPublicIp: Optional. Eine Zeichenfolge, die angibt, ob die Elastic-Network-Schnittstelle Ihres Amazon-ECS-Services 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, CodeDeploy verwendet die aktuellen Amazon-ECS-Netzwerkeinstellungen.

  • CapacityProviderStrategy: Optional. Eine Liste der Amazon-ECS-Kapazitätsanbieter, die Sie für Ihre Bereitstellung verwenden möchten. Weitere Informationen finden Sie unter Amazon-ECS-Kapazitätsanbieter im Amazon Elastic Container Service-Entwicklerhandbuch. Für jeden Kapazitätsanbieter können Sie die folgenden Einstellungen angeben. Weitere Informationen 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 unter Anwendung derselben Logik eine Gewichtung von 1 für Kapazitätsanbieter A und eine Gewichtung von 4 für Kapazitätsanbieter B, angeben, würden für jede Aufgabe, die mit Kapazitätsanbieter A, ausgeführt wird, vier Aufgaben mit Kapazitätsanbieter B ausgeführt.