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 dercapacityProviderStrategy
-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
- undweight
-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 StatusACTIVE
oderUPDATING
verwendet werden.Wenn eine
capacityProviderStrategy
angegeben ist, muss derlaunchType
-Parameter weggelassen werden. Wenn keinecapacityProviderStrategy
oder keinlaunchType
angegeben ist, wird diedefaultCapacityProviderStrategy
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
oderFARGATE_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
undrevision
(family:revision
) oder der vollständige Amazon-Ressourcenname (ARN) der Aufgabendefinition, die in Ihrem Service ausgeführt werden soll. Wenn keinerevision
angegeben ist, wird die neuesteACTIVE
-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
undWINDOWS_SERVER_2019_CORE
.Der
platformFamily
-Wert für jede Aufgabe, die Sie für den Service angeben, muss mit demplatformFamily
-Wert des Services übereinstimmen. Zum Beispiel: Wenn SieplatformFamily
aufWINDOWS_SERVER_2019_FULL
festlegen, muss derplatformFamily
-Wert für alle AufgabenWINDOWS_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
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 dieDAEMON
-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 dermaximumPercent
-Parameter eine Obergrenze für die Anzahl der Aufgaben Ihres Services dar, die während einer Bereitstellung imRUNNING
- oderPENDING
-Status zulässig sind. Es wird als Prozentsatz desdesiredCount
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-SchedulerREPLICA
verwendet und einendesiredCount
-Wert von vier Aufgaben und einenmaximumPercent
-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. DermaximumPercent
-Standardwert für einen Service mit demREPLICA
-Service-Scheduler beträgt 200 %.Wenn Ihr Service den Service-Scheduler-Typ
DAEMON
verwendet, solltemaximumPercent
bei 100 % verbleiben. Dies ist der Standardwert.Die maximale Anzahl von Aufgaben während einer Bereitstellung ist die
desiredCount
multipliziert mit demmaximumPercent
/100, abgerundet auf die nächste ganze Zahl.Bei einem Service mit entweder dem Bereitstellungstyp „Blau/Grün“ (
CODE_DEPLOY
) oderEXTERNAL
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 ZustandRUNNING
verbleiben, während sich die Container-Instances im ZustandDRAINING
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 derminimumHealthyPercent
eine Untergrenze für die Anzahl der Aufgaben Ihres Service dar, die während einer Bereitstellung imRUNNING
-Status bleiben müssen. Dies wird als Prozentsatz desdesiredCount
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 einedesiredCount
von vier Aufgaben und einenminimumHealthyPercent
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 %. DerminimumHealthyPercent
-Standardwert für einen Service mit dem Service-SchedulerDAEMON
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 demminimumHealthyPercent
/100, aufgerundet auf die nächste ganze Zahl.Bei einem Service, der entweder Bereitstellungstyp „Blau/Grün“ (
CODE_DEPLOY
) oderEXTERNAL
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 ZustandRUNNING
verbleiben, während sich die Container-Instances im ZustandDRAINING
befinden. Wenn die Aufgaben im Service den Starttyp Fargate ausführen und der Service entweder Bereitstellungstyp „Blau/Grün“ (CODE_DEPLOY
) oderEXTERNAL
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. Diespread
-Platzierungsstrategie verteilt die Platzierungen anhand derfield
-Parameter gleichmäßig auf die verfügbaren Kandidaten. Diebinpack
-Strategie platziert Aufgaben auf verfügbare Kandidaten, die über die geringste verfügbare Menge der mit demfield
-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 sindinstanceId
(oderhost
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 diebinpack
-Placement-Strategie gültige Werte sindcpu
undmemory
. Für dierandom
-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 Netzwerkmodusawsvpc
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 von0
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 demhostPort
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 denrole
-Parameter festlegen, müssen Sie auch ein Load Balancer-Objekt mit demloadBalancers
-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 Namenbar
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
oderhost
verwendet, müssen Sie eine Kombination auscontainerName
undcontainerPort
aus der Aufgabendefinition angeben. Wenn die Aufgabendefinition, die Ihre Serviceaufgabe angibt, den Netzwerkmodusawsvpc
verwendet und ein SRV-DNS-Datensatz verwendet wird, müssen Sie entweder eine Kombination auscontainerName
undcontainerPort
angeben, oder einenport
-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
oderhost
verwendet, müssen Sie eine Kombination auscontainerName
undcontainerPort
aus der Aufgabendefinition angeben. Wenn die Aufgabendefinition, die Ihre Serviceaufgabe angibt, den Netzwerkmodusawsvpc
verwendet und ein SRV-DNS-Datensatz verwendet wird, müssen Sie entweder eine Kombination auscontainerName
undcontainerPort
angeben, oder einenport
-Wert, aber nicht beides.
Client-Token
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