Servicedefinitionsparameter - Amazon ECS

Servicedefinitionsparameter

Eine Servicedefinition legt fest, wie der Amazon-ECS-Service ausgeführt werden soll. Die folgenden Parameter können in einer Servicedefinition angegeben werden.

Starttyp

launchType

Typ: Zeichenfolge

Zulässige Werte: EC2 | FARGATE | EXTERNAL

Erforderlich: Nein

Der Starttyp, der für die Ausführung Ihres Service verwendet wird. Ist kein Starttyp angegeben, wird standardmäßig EC2 verwendet. Weitere Informationen finden Sie unter Amazon ECS-Starttypen.

Wenn eine launchType angegeben ist, muss der capacityProviderStrategy-Parameter weggelassen werden.

Kapazitätsanbieterstrategie

capacityProviderStrategy

Typ: Array von -Objekten

Erforderlich: Nein

Die Kapazitätsanbieterstrategie, die für den Service verwendet werden soll.

Eine Kapazitätsanbieterstrategie besteht aus einem oder mehreren Kapazitätsanbietern sowie dem ihnen zuzuweisenden base- und weight-Wert. Ein Kapazitätsanbieter muss dem Cluster zugeordnet sein, um in einer Kapazitätsanbieterstrategie verwendet werden zu können. Für die Zuordnung eines Kapazitätsanbieters zu einem Cluster wird die PutClusterCapacityProviders-API verwendet. Es können nur Kapazitätsanbieter mit dem Status ACTIVE oder UPDATING verwendet werden.

Wenn eine capacityProviderStrategy angegeben ist, muss der launchType-Parameter weggelassen werden. Wenn keine capacityProviderStrategy oder kein launchType angegeben ist, wird die defaultCapacityProviderStrategy für den Cluster verwendet.

Wenn Sie einen Kapazitätsanbieter angeben wollen, der eine Auto-Scaling-Gruppe verwendet, muss der Kapazitätsanbieter bereits erstellt sein. Mit der CreateCapacityProvider-API-Operation können neue Kapazitätsanbieter erstellt werden.

Um einen AWS-Fargate-Kapazitätsanbieter zu verwenden, geben Sie die Kapazitätsanbieter FARGATE oder FARGATE_SPOT an. Die AWS-Fargate-Kapazitätsanbieter sind für alle Konten verfügbar und müssen lediglich einem Cluster zugeordnet werden, um verwendet werden zu können.

Die PutClusterCapacityProviders-API-Operation wird verwendet, um die Liste der verfügbaren Kapazitätsanbieter für einen Cluster zu aktualisieren, nachdem der Cluster erstellt wurde.

capacityProvider

Typ: Zeichenfolge

Erforderlich: Ja

Der Kurzname oder vollständige Amazon-Ressourcenname (ARN) des Kapazitätsanbieters.

weight

Typ: Ganzzahl

Gültiger Bereich: Ganzzahlen zwischen 0 und 1.000.

Erforderlich: Nein

Der Gewichtungswert gibt den relativen Prozentsatz der Gesamtzahl der gestarteten Aufgaben an, die den angegebenen Kapazitätsanbieter verwenden.

Nehmen Sie beispielsweise an, Sie haben eine Strategie, die zwei Kapazitätsanbieter enthält und beide eine Gewichtung von einem haben. Wenn die Basis zufrieden ist, werden die Aufgaben gleichmäßig auf die beiden Kapazitätsanbieter aufgeteilt. Unter Verwendung derselben Logik nehmen Sie an, dass Sie für capacityProviderA ein Gewicht von 1 und für capacityProviderB ein Gewicht von 4 angeben. Dann wird für jede Aufgabe, die mit capacityProviderA ausgeführt wird, vier Aufgaben mit capacityProviderB ausgeführt.

base

Typ: Ganzzahl

Gültiger Bereich: Ganzzahlen zwischen 0 und 100.000.

Erforderlich: Nein

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.

Aufgabendefinition

taskDefinition

Typ: Zeichenfolge

Erforderlich: Nein

family und revision (family:revision) oder der vollständige Amazon-Ressourcenname (ARN) der Aufgabendefinition, die in Ihrem Service ausgeführt werden soll. Wenn keine revision angegeben ist, wird die neueste ACTIVE-Revision der angegebenen Familie verwendet.

Eine Aufgabendefinition muss angegeben werden, wenn der Rolling-Update (ECS)-Bereitstellungs-Controller verwendet wird.

Plattform-Betriebssystem

platformFamily

Typ: Zeichenfolge

Required: Conditional

Standard: Linux

Dieser Parameter ist für Amazon-ECS-Services erforderlich, die auf Fargate gehostet werden.

Dieser Parameter wird für Amazon-ECS-Services ignoriert, die auf Amazon EC2 gehostet werden.

Das Betriebssystem auf den Containern, auf denen der Service ausgeführt wird. Die gültigen Werte sind LINUX, WINDOWS_SERVER_2019_FULL und WINDOWS_SERVER_2019_CORE.

Der platformFamily-Wert für jede Aufgabe, die Sie für den Service angeben, muss mit dem platformFamily-Wert des Services übereinstimmen. Zum Beispiel: Wenn Sie platformFamily auf WINDOWS_SERVER_2019_FULL festlegen, muss der platformFamily-Wert für alle Aufgaben WINDOWS_SERVER_2019_FULL sein.

Plattformversion

platformVersion

Typ: Zeichenfolge

Erforderlich: Nein

Die Plattformversion, auf der Ihre Aufgaben im Service ausgeführt werden. Eine Plattformversion ist nur für Aufgaben mit dem Starttyp Fargate vorgesehen. Ist kein solcher angegeben, wird standardmäßig die neueste Version (LATEST) verwendet.

AWS-Fargate-Plattformversionen werden verwendet, um auf eine bestimmte Laufzeitumgebung für die Fargate-Aufgabeninfrastruktur zu verweisen. Bei der Angabe der LATEST-Plattformversion bei Ausführung einer Aufgabe oder beim Erstellen eines Service erhalten Sie die aktuellste Plattformversion, die für Ihre Aufgaben zur Verfügung steht. Wenn Sie Ihren Service skalieren, erhalten diese Aufgaben die Plattformversion, die in der aktuellen Bereitstellung des Service angegeben wurde. Weitere Informationen finden Sie unter AWS Fargate-Plattformversionen.

Cluster

cluster

Typ: Zeichenfolge

Erforderlich: Nein

Die Kurzbezeichnung oder der vollständige Amazon-Ressourcenname (ARN) des Clusters, auf dem Sie Ihren Service ausführen. Wenn Sie keinen Cluster angeben, wird der default-Cluster verwendet.

Service-Name

serviceName

Typ: Zeichenfolge

Erforderlich: Ja

Der Name Ihres Service. Bis zu 255 Buchstaben (Groß- und Kleinbuchstaben), Ziffern, Bindestriche und Unterstriche sind zulässig. Servicenamen in einem Cluster müssen eindeutig sein. Sie können jedoch ähnlich benannte Services in mehreren Clustern innerhalb einer Region oder in mehreren Regionen haben.

Einplanungsstrategie

schedulingStrategy

Typ: Zeichenfolge

Zulässige Werte: REPLICA

Erforderlich: Nein

Die Einplanungsstrategie, die verwendet werden soll. Wenn keine Einplanungsstrategie angegeben wird, wird die REPLICA-Strategie verwendet. Weitere Informationen finden Sie unter Service-Scheduler-Konzepte.

Es gibt zwei Strategien für Service-Scheduler:

  • REPLICA: Die Replica-Einplanungsstrategie platziert und die gewünschte Anzahl von Aufgaben in Ihrem Cluster und behält sie bei. Standardmäßig verteilt der Service-Scheduler Aufgaben über Availability Zones. Mit Aufgabenplatzierungsstrategien und -bedingungen können Sie festlegen, wie Aufgaben platziert und beendet werden. Weitere Informationen finden Sie unter Replikat.

  • DAEMON: Die Daemon-Einplanungsstrategie stellt genau eine Aufgabe auf jeder aktiven Container-Instance bereit, die alle von Ihnen in Ihrem Cluster angegebenen Platzierungsbedingungen für die Aufgaben erfüllt. Der Service-Scheduler wertet die Aufgabenplatzierungsbedingungen für laufende Aufgaben aus und stoppt Aufgaben, die die Platzierungsbedingungen nicht erfüllen. Bei Verwendung dieser Strategie ist es nicht erforderlich, eine gewünschte Anzahl von Aufgaben oder eine Aufgabenplatzierungsstrategie anzugeben oder Auto Scaling-Richtlinien zu verwenden. Weitere Informationen finden Sie unter Daemon im Developerhandbuch zum Amazon Elastic Container Service.

    Anmerkung

    Fargate-Aufgaben unterstützen die DAEMON-Einplanungsstrategie nicht.

Gewünschte Anzahl

desiredCount

Typ: Ganzzahl

Erforderlich: Nein

Die Anzahl der Instanziierungen der angegebenen Aufgabendefinition, die auf dem Cluster platziert und ausgeführt werden soll.

Dieser Parameter ist erforderlich, wenn die REPLICA-Einplanungsstrategie verwendet wird. Wenn der Service die DAEMON-Einplanungsstrategie verwendet, ist dieser Parameter optional.

Bereitstellungskonfiguration

deploymentConfiguration

Typ: Objekt

Erforderlich: Nein

Optionale Bereitstellungsparameter zur Steuerung, wie viele Aufgaben während der Bereitstellung ausgeführt werden, und zur Steuerung der Reihenfolge beim Starten oder Stoppen von Aufgaben.

maximumPercent

Typ: Ganzzahl

Erforderlich: Nein

Wenn ein Service den Bereitstellungstyp der fortlaufenden Aktualisierung (ECS) verwendet, stellt der maximumPercent-Parameter eine Obergrenze für die Anzahl der Aufgaben Ihres Services dar, die während einer Bereitstellung im RUNNING- oder PENDING-Status zulässig sind. Es wird als Prozentsatz des desiredCount ausgedrückt, der auf den nächsten ganzen Wert abgerundet wird. Mithilfe dieses Parameters können Sie die Größe der Verteilungsstapel definieren. Wenn Ihr Service beispielsweise den Service-Scheduler REPLICA verwendet und einen desiredCount-Wert von vier Aufgaben und einen maximumPercent-Wert von 200 % hat, könnte der Scheduler vier neue Aufgaben starten, bevor er die vier älteren Aufgaben stoppt. Voraussetzung dafür ist, dass die dafür erforderlichen Cluster-Ressourcen zur Verfügung stehen. Der maximumPercent-Standardwert für einen Service mit dem REPLICA-Service-Scheduler beträgt 200 %.

Wenn Ihr Service den Service-Scheduler-Typ DAEMON verwendet, sollte maximumPercent bei 100 % verbleiben. Dies ist der Standardwert.

Die maximale Anzahl von Aufgaben während einer Bereitstellung ist die desiredCount multipliziert mit dem maximumPercent/100, abgerundet auf die nächste ganze Zahl.

Bei einem Service mit entweder dem Bereitstellungstyp „Blau/Grün“ (CODE_DEPLOY) oder EXTERNAL und bei Aufgaben mit dem Starttyp EC2 ist der Wert für den maximalen Prozentsatz auf den Standardwert eingestellt und wird zum Definieren der Obergrenze für die Anzahl der Aufgaben im Service verwendet, die im Zustand RUNNING verbleiben, während sich die Container-Instances im Zustand DRAINING befinden. Wenn die Aufgaben im Service den Starttyp Fargate verwenden, wird der maximale Prozentwert nicht verwendet, obwohl er bei der Beschreibung Ihres Services zurückgegeben wird.

minimumHealthyPercent

Typ: Ganzzahl

Erforderlich: Nein

Wenn ein Service den Bereitstellungstyp der fortlaufenden Aktualisierung (ECS) verwendet, stellt der minimumHealthyPercent eine Untergrenze für die Anzahl der Aufgaben Ihres Service dar, die während einer Bereitstellung im RUNNING-Status bleiben müssen. Dies wird als Prozentsatz des desiredCount ausgedrückt, der auf den nächsten ganzen Wert abgerundet wird. Sie können diesen Parameter verwenden, um die Bereitstellung ohne zusätzliche Cluster-Kapazität durchzuführen. Wenn Ihr Service beispielsweise eine desiredCount von vier Aufgaben und einen minimumHealthyPercent von 50 % hat, stoppt der Service-Scheduler zwei vorhandene Aufgaben, um Cluster-Kapazität freizugeben, bevor er zwei neue Aufgaben startet.

Bei Services, die keinen Load Balancer verwenden, ist Folgendes zu beachten:

  • Ein Service gilt als fehlerfrei, wenn alle entscheidenden Container innerhalb der Aufgaben im Service ihre Zustandsprüfungen bestehen.

  • Wenn für eine Aufgabe keine wesentlichen Container mit einer Zustandsprüfung definiert sind, wartet der Service-Scheduler 40 Sekunden, nachdem eine Aufgabe den RUNNING-Status erreicht hat, bevor die Aufgabe auf den minimalen fehlerfreien Gesamtprozentsatz angerechnet wird.

  • Wenn für eine Aufgabe ein oder mehrere wesentliche Container mit einer Zustandsprüfung definiert sind, wartet der Service-Scheduler, bis die Aufgabe einen fehlerfreien Status erreicht, bevor er sie auf den minimalen fehlerfreien Gesamtprozentsatz anrechnet. Eine Aufgabe gilt als fehlerfrei, wenn alle entscheidenden Container innerhalb der Aufgabe ihre Zustandsprüfungen bestanden haben. Wie lange der Service-Scheduler warten kann, wird durch die Einstellungen für die Zustandsprüfung der Container bestimmt. Weitere Informationen finden Sie unter Zustandsprüfung.

Bei Services, die einen Load Balancer verwenden, ist Folgendes zu beachten:

  • Wenn für eine Aufgabe keine wesentlichen Container mit einer Zustandsprüfung definiert sind, wartet der Service-Scheduler, bis die Zustandsprüfung der Load Balancer-Zielgruppe einen fehlerfreien Status zurückgibt, bevor er die Aufgabe auf den Mindestprozentsatz für den fehlerfreien Zustand anrechnet.

  • Wenn für eine Aufgabe ein wesentlicher Container mit einer Zustandsprüfung definiert ist, wartet der Service-Scheduler darauf, dass sowohl die Aufgabe einen fehlerfreien Status erreicht als auch die Zustandsprüfung der Load-Balancer-Zielgruppe einen fehlerfreien Status zurückgibt, bevor er die Aufgabe auf den Mindestprozentsatz an fehlerfreien Aufgaben anrechnet.

Der Standardwert für einen Replica-Service für minimumHealthyPercent ist 100 %. Der minimumHealthyPercent-Standardwert für einen Service mit dem Service-Scheduler DAEMON beträgt für die AWS CLI, die AWS-SDKs und die APIs 0 % und für die AWS Management Console 50 %.

Die Mindestanzahl fehlerfreier Aufgaben während einer Bereitstellung ist die desiredCount multipliziert mit dem minimumHealthyPercent/100, aufgerundet auf die nächste ganze Zahl.

Bei einem Service, der entweder Bereitstellungstyp „Blau/Grün“ (CODE_DEPLOY) oder EXTERNAL verwendet und Aufgaben mit dem Starttyp EC2 ausführt, ist der Wert für den mindestens fehlerfreier Prozentsatz auf den Standardwert eingestellt und wird zum Definieren der Untergrenze für die Anzahl der Aufgaben im Service verwendet, die im Zustand RUNNING verbleiben, während sich die Container-Instances im Zustand DRAINING befinden. Wenn die Aufgaben im Service den Starttyp Fargate ausführen und der Service entweder Bereitstellungstyp „Blau/Grün“ (CODE_DEPLOY) oder EXTERNAL verwendet, wird der mindestens fehlerfreie Prozentwert nicht verwendet, obwohl er bei der Beschreibung Ihres Service zurückgegeben wird.

Bereitstellungs-Controller

deploymentController

Typ: Objekt

Erforderlich: Nein

Der für den Service zu verwendende Bereitstellungs-Controller. Wenn kein Bereitstellungs-Controller angegeben wird, wird der ECS-Controller verwendet. Weitere Informationen finden Sie unter Amazon ECS-Bereitstellungstypen.

type

Typ: Zeichenfolge

Zulässige Werte: ECS | CODE_DEPLOY | EXTERNAL

Erforderlich: Ja

Der zu verwendende Controller-Typ der Bereitstellung. Es sind drei Bereitstellungs-Controller-Typen verfügbar:

ECS

Bei dem Bereitstellungstyp der fortlaufenden Aktualisierung (ECS) wird die aktuell ausgeführte Version des Containers durch die neueste Version ersetzt. Die Anzahl von Containern, die von Amazon ECS während einer fortlaufenden Aktualisierung zum Service hinzugefügt oder daraus entfernt werden, wird durch Anpassen der minimal und maximal zulässigen Anzahl fehlerfreier Aufgaben während einer Service-Bereitstellung wie unter deploymentConfiguration angegeben gesteuert.

CODE_DEPLOY

Der Blau/Grün-Bereitstellungstyp (CODE_DEPLOY) verwendet das Blau/Grün-Bereitstellungsmodell von CodeDeploy, bei dem Sie eine neue Bereitstellung eines Service zuerst überprüfen können, bevor Sie Produktionsdatenverkehr an ihn senden.

EXTERNAL

Der externe Bereitstellungstyp ermöglicht Ihnen, für die vollständige Kontrolle über den Bereitstellungsprozess für einen Amazon-ECS-Service einen beliebigen Drittanbieter-Bereitstellungs-Controller zu verwenden.

Platzierung von Aufgaben

placementStrategy

Typ: Array von -Objekten

Erforderlich: Nein

Die Platzierungsstrategieobjekte, die für Aufgaben in Ihrem Service verwendet werden sollen. Sie können maximal vier Strategieregeln pro Service festlegen.

type

Typ: Zeichenfolge

Zulässige Werte: random | spread | binpack

Erforderlich: Nein

Der Typ der Platzierungsstrategie. Die random-Platzierungsstrategie platziert zufällig Aufgaben in verfügbaren Kandidaten. Die spread-Platzierungsstrategie verteilt die Platzierungen anhand der field-Parameter gleichmäßig auf die verfügbaren Kandidaten. Die binpack-Strategie platziert Aufgaben auf verfügbare Kandidaten, die über die geringste verfügbare Menge der mit dem field-Parameter angegebenen Ressource verfügen. Wenn Sie beispielsweise den Arbeitsspeicher verringern, wird eine Aufgabe auf der Instance mit dem geringsten verbleibenden Arbeitsspeicher platziert, der aber noch ausreicht, um die Aufgabe auszuführen.

field

Typ: Zeichenfolge

Erforderlich: Nein

Das Feld zur Anwendung der Platzierungsstrategie. Gültige Werte für die spread-Platzierungsstrategie sind instanceId (oder host mit denselben Auswirkungen) oder jedes weitere Plattform- oder benutzerdefiniertes Attribut, das auf ein Container-Instance angewendet wird, z. B. attribute:ecs.availability-zone. Für die binpack-Placement-Strategie gültige Werte sind cpu und memory. Für die random-Placement-Strategie wird dieses Feld nicht verwendet.

Tags (Markierungen)

tags

Typ: Array von -Objekten

Erforderlich: Nein

Die Metadaten, die Sie auf den Service anwenden, um die Kategorisierung und Organisation zu erleichtern. Jeder Tag (Markierung) besteht aus einem Schlüssel und einem optionalen Wert, beides können Sie bestimmen. Wenn ein Service gelöscht wird, werden auch die Tags gelöscht. Es können maximal 50 Tags auf den Service angewendet werden. Weitere Informationen finden Sie unter Markieren Ihrer Amazon ECS-Ressourcen.

key

Typ: Zeichenfolge

Längenbeschränkungen: Minimale Länge von 1. Maximale Länge beträgt 128 Zeichen.

Erforderlich: Nein

Ein Teil eines Schlüssel-Wert-Paares, aus dem ein Tag besteht. Ein Schlüssel ist eine allgemeine Bezeichnung, die wie eine Kategorie für spezifischere Tag-Werte fungiert.

value

Typ: Zeichenfolge

Längenbeschränkungen: Minimale Länge von 0. Maximale Länge beträgt 256 Zeichen.

Erforderlich: Nein

Der optionale Teil eines Schlüssel-Wert-Paares, aus dem ein Tag besteht. Ein Wert fungiert als Deskriptor in einer Tag-Kategorie (Schlüssel).

enableECSManagedTags

Typ: Boolesch

Zulässige Werte: true | false

Erforderlich: Nein

Gibt an, ob von Amazon ECS verwaltete Tags für Aufgaben im Service verwendet werden sollen. Der Standardwert ist false, wenn kein Wert angegeben wird. Weitere Informationen finden Sie unter Markieren von Ressourcen für die Fakturierung.

propagateTags

Typ: Zeichenfolge

Zulässige Werte: TASK_DEFINITION | SERVICE

Erforderlich: Nein

Gibt an, ob die Tags von der Aufgabendefinition oder dem Service in die Aufgaben in dem Service kopiert werden sollen. Wenn kein Wert angegeben wird, werden die Tags nicht kopiert. Tags können nur während der Serviceerstellung in die Aufgaben in dem Service kopiert werden. Wenn Sie Tags nach der Service- oder Aufgabenerstellung einer Aufgabe hinzufügen möchten, verwenden Sie die API-Aktion TagResource.

Netzwerkkonfiguration

networkConfiguration

Typ: Objekt

Erforderlich: Nein

Die Netzwerkkonfiguration für den Service. Dieser Parameter ist für Aufgabendefinitionen erforderlich, die den Netzwerkmodus awsvpc verwenden, um ihre eigene Elastic-Network-Schnittstelle zu empfangen. Für andere Netzwerkmodus wird er nicht unterstützt. Wenn Sie den Fargate-Starttyp verwenden, ist der Netzwerkmodus awsvpc erforderlich. Weitere Informationen finden Sie unter Fargate-Aufgabenvernetzung im Amazon Elastic Container Service-Benutzerhandbuch für AWS Fargate..

awsvpcConfiguration

Typ: Objekt

Erforderlich: Nein

Ein Objekt, das die Subnetze und Sicherheitsgruppen für eine Aufgabe oder einen Service darstellt.

subnets

Typ: Zeichenfolge-Array

Erforderlich: Ja

Die Subnetze, die der Aufgabe oder dem Service zugeordnet sind. Es gibt ein Limit von 16 Subnetzen, die gemäß awsvpcConfiguration festgelegt werden können.

securityGroups

Typ: Zeichenfolge-Array

Erforderlich: Nein

Die Sicherheitsgruppen, die der Aufgabe oder dem Service zugeordnet sind. Wenn Sie keine Sicherheitsgruppe angeben, wird die Standardsicherheitsgruppe für die VPC verwendet. Es gibt ein Limit von fünf Sicherheitsgruppen, die basierend auf awsvpcConfiguration festgelegt werden können.

assignPublicIP

Typ: Zeichenfolge

Zulässige Werte: ENABLED | DISABLED

Erforderlich: Nein

Gibt an, ob die Elastic-Network-Schnittstelle eine öffentliche IP-Adresse erhält. Wenn kein Wert angegeben wird, wird der Standardwert DISABLED verwendet.

healthCheckGracePeriodSeconds

Typ: Ganzzahl

Erforderlich: Nein

Die Zeitdauer in Sekunden, die der Amazon ECS-Service-Scheduler fehlerhafte Elastic Load Balancing-Zustandsprüfungen des Ziels, Container-Zustandsprüfungen und Route 53-Zustandsprüfungen ignorieren soll, nachdem eine Aufgabe in den Status RUNNING wechselt. Dies gilt nur, wenn Ihr Service für die Verwendung eines Load Balancers konfiguriert ist. Wenn für Ihren Service ein Load Balancer definiert ist und Sie keinen Wert für die Übergangsfrist der Zustandsprüfung angeben, wird der Standardwert von 0 verwendet.

Wenn es eine Weile dauert, bis die Aufgaben Ihres Service starten und auf die Zustandsprüfungen reagieren, können Sie für die Zustandsprüfungen eine Übergangsfrist von bis zu 2,147,483,647 Sekunden angeben. Während dieses Zeitraums ignoriert der ECS-Service-Scheduler den Status der Zustandsprüfungen. Durch diese Übergangsfrist wird verhindert, dass der ECS-Service-Scheduler Aufgaben als fehlerhaft markiert und stoppt, bevor sie gestartet werden können.

Wenn Sie kein Elastic Load Balancing verwenden, empfehlen wir Ihnen, die startPeriod in den Zustandsprüfungs-Parametern der Aufgabendefinition zu verwenden. Weitere Informationen finden Sie unter Zustandsprüfung.

loadBalancers

Typ: Array von -Objekten

Erforderlich: Nein

Ein Load Balancer-Objekt, das den Load Balancer angibt, der mit Ihrem Service verwendet werden soll. Für Services, die einen Application Load Balancer oder einen Network Load Balancer verwenden, gibt es ein Limit von fünf Zielgruppen, die Sie an einen Service anfügen können.

Nachdem Sie einen Service erstellt haben, sind der Name des Load Balancers oder der ARN der Zielgruppe, der Name des Containers und der Container-Port in der Servicedefinition nicht mehr änderbar.

Für Classic Load Balancers muss dieses Objekt den Namen des Load Balancers, den Namen des Containers (wie in der Containerdefinition angegeben) sowie den Container-Port enthalten, auf den vom Load Balancer aus zugegriffen werden soll. Wenn eine Aufgabe von diesem Service auf eine Container-Instance gesetzt wird, wird die Container-Instance mit dem hier angegebenen Load Balancer registriert.

Für Application Load Balancers und Network Load Balancers muss dieses Objekt den Zielgruppen-ARN des Load Balancers, den Namen des Containers (wie in der Containerdefinition angegeben) sowie den Container-Port enthalten, auf den vom Load Balancer aus zugegriffen werden soll. Wenn eine Aufgabe von diesem Service auf eine Container-Instance gesetzt wird, wird die Kombination aus Container-Instance und Port als Ziel in der hier angegebenen Zielgruppe registriert.

targetGroupArn

Typ: Zeichenfolge

Erforderlich: Nein

Der vollständige Amazon-Ressourcenname (ARN) der Elastic-Load-Balancing-Zielgruppe die einem Service angefügt sind.

Ein Zielgruppen-ARN wird nur bei Verwendung eines Application Load Balancers oder eines Network Load Balancers angegeben. Wenn Sie einen Classic Load Balancer verwenden, lassen Sie den Zielgruppen-ARN weg.

loadBalancerName

Typ: Zeichenfolge

Erforderlich: Nein

Der Name des Load Balancer, der dem Service zugeordnet werden soll.

Ein Load Balancer-Name wird nur bei der Verwendung eines Classic Load Balancers angegeben. Wenn Sie einen Application Load Balancer oder einen Network Load Balancer verwenden, lassen Sie den Load-Balancer-Name-Parameter weg.

containerName

Typ: Zeichenfolge

Erforderlich: Nein

Der Name des Containers (wie in der Containerdefinition angegeben), der mit dem Load Balancer verknüpft werden soll.

containerPort

Typ: Ganzzahl

Erforderlich: Nein

Der Port auf dem Container, der mit dem Load Balancer verknüpft werden soll. Dieser Port muss einem containerPort in der Aufgabendefinition entsprechen, die von den Aufgaben im Service verwendet wird. Für Aufgaben, die den EC2-Starttyp verwenden, muss die Container Instance eingehenden Datenverkehr auf dem hostPort der Port-Zuweisung zulassen.

role

Typ: Zeichenfolge

Erforderlich: Nein

Der Kurzname oder vollständige ARM der IAM-Rolle, die es Amazon ECS ermöglicht, Aufrufe in Ihrem Namen an Ihren Load Balancer vorzunehmen. Dieser Parameter ist nur zulässig, wenn Sie einen Load Balancer mit einer einzelnen Zielgruppe für Ihren Service verwenden und Ihre Aufgabendefinition nicht den Netzwerkmodus awsvpc verwendet. Wenn Sie den role-Parameter festlegen, müssen Sie auch ein Load Balancer-Objekt mit dem loadBalancers-Parameter angeben.

Wenn Ihre festgelegte Rolle einen anderen Pfad als / aufweist, müssen Sie entweder den vollständigen Rollen-ARN angeben (empfohlen) oder ein Präfix mit dem Pfad vor dem Rollennamen verwenden. Wenn beispielsweise ein Rolle mit dem Namen bar den Pfad /foo/ aufweist, würden Sie /foo/bar als Rollennamen angeben. Weitere Informationen finden Sie unter Anzeigenamen und Pfade im IAM-Benutzerhandbuch.

Wichtig

Wenn Ihr Konto bereits über die servicegebundene Rolle für den Amazon ECS Service verfügt, wird diese Rolle standardmäßig für Ihren Service verwendet, es sei denn, Sie geben hier eine Rolle an. Die servicegebundene Rolle ist erforderlich, wenn Ihre Aufgabendefinition den Netzwerkmodus awsvpc verwendet. In diesem Fall sollten Sie hier keine Rolle angeben. Weitere Informationen finden Sie unter Serviceverknüpfte Rolle für Amazon ECS.

serviceRegistries

Typ: Array von -Objekten

Erforderlich: Nein

Die Details der Service-Erkennungskonfiguration für Ihren Service. Weitere Informationen finden Sie unter Service Discovery.

registryArn

Typ: Zeichenfolge

Erforderlich: Nein

Der Amazon-Ressourcenname (ARN) der Serviceregistrierung. Die zurzeit unterstützte Serviceregistrierung ist AWS Cloud Map. Weitere Informationen finden Sie unter Arbeiten mit Services im AWS Cloud Map-Entwicklerhandbuch.

port

Typ: Ganzzahl

Erforderlich: Nein

Der Port-Wert, der verwendet wird, wenn Ihr Service zur Service Discovery einen SRV-Datensatz angegeben hat. Dieses Feld ist erforderlich, wenn der awsvpc-Netzwerkmodus und SRV-Datensätze verwendet werden.

containerName

Typ: Zeichenfolge

Erforderlich: Nein

Der Containernamen-Wert, der für Ihren Service zur Service Discovery verwendet werden soll. Dieser Wert wird in der Aufgabendefinition festgelegt. Wenn die Aufgabendefinition, die Ihre Serviceaufgabe angibt, den Netzwerkmodus bridge oder host verwendet, müssen Sie eine Kombination aus containerName und containerPort aus der Aufgabendefinition angeben. Wenn die Aufgabendefinition, die Ihre Serviceaufgabe angibt, den Netzwerkmodus awsvpc verwendet und ein SRV-DNS-Datensatz verwendet wird, müssen Sie entweder eine Kombination aus containerName und containerPort angeben, oder einen port-Wert, aber nicht beides.

containerPort

Typ: Ganzzahl

Erforderlich: Nein

Der Port-Wert, der für Ihren Service zur Service Discovery verwendet werden soll. Dieser Wert wird in der Aufgabendefinition festgelegt. Wenn die Aufgabendefinition, die Ihre Serviceaufgabe angibt, den Netzwerkmodus bridge oder host verwendet, müssen Sie eine Kombination aus containerName und containerPort aus der Aufgabendefinition angeben. Wenn die Aufgabendefinition, die Ihre Serviceaufgabe angibt, den Netzwerkmodus awsvpc verwendet und ein SRV-DNS-Datensatz verwendet wird, müssen Sie entweder eine Kombination aus containerName und containerPort angeben, oder einen port-Wert, aber nicht beides.

Client-Token

clientToken

Typ: Zeichenfolge

Erforderlich: Nein

Der eindeutige Bezeichner, bei dem die Groß- und Kleinschreibung beachtet werden muss, um die Idempotenz der Anfrage sicherzustellen. Er kann bis zu 32 ASCII-Zeichen lang sein.

Servicedefinitionsvorlage

Im Folgenden ist die JSON-Darstellung einer Amazon ECS-Servicedefinition dargestellt.

{ "cluster": "", "serviceName": "", "taskDefinition": "", "loadBalancers": [ { "targetGroupArn": "", "loadBalancerName": "", "containerName": "", "containerPort": 0 } ], "serviceRegistries": [ { "registryArn": "", "port": 0, "containerName": "", "containerPort": 0 } ], "desiredCount": 0, "clientToken": "", "launchType": "FARGATE", "capacityProviderStrategy": [ { "capacityProvider": "", "weight": 0, "base": 0 } ], "platformVersion": "", "role": "", "deploymentConfiguration": { "maximumPercent": 0, "minimumHealthyPercent": 0 }, "placementStrategy": [ { "type": "spread", "field": "" } ], "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "" ], "securityGroups": [ "" ], "assignPublicIp": "ENABLED" } }, "healthCheckGracePeriodSeconds": 0, "schedulingStrategy": "REPLICA", "deploymentController": { "type": "CODE_DEPLOY" }, "tags": [ { "key": "", "value": "" } ], "enableECSManagedTags": true, "propagateTags": "SERVICE" }

Sie können diese Servicedefinitionsvorlage mit dem folgenden AWS CLI-Befehl erstellen.

aws ecs create-service --generate-cli-skeleton