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.
Führen Sie Amazon ECS - oder Fargate-Aufgaben mit Step Functions aus
Erfahren Sie, wie Sie Step Functions mit Amazon ECS oder Fargate integrieren, um Aufgaben auszuführen und zu verwalten. In Amazon ECS ist eine Aufgabe die grundlegende Berechnungseinheit. Aufgaben werden durch eine Aufgabendefinition definiert, die festlegt, wie ein Docker-Container ausgeführt werden soll, einschließlich des Container-Images, CPU der Speicherlimits, der Netzwerkkonfiguration und anderer Parameter. Diese Seite listet die verfügbaren ECS API Amazon-Aktionen auf und enthält Anweisungen zur Weitergabe von Daten an eine ECS Amazon-Aufgabe mithilfe von Step Functions.
Um mehr über die Integration mit zu erfahren AWS Dienste in Step Functions, siehe Integrieren von -Services undÜbergeben von Parametern an einen Dienst API in Step Functions.
Hauptmerkmale der optimierten ECS Amazon-/Fargate-Integration
-
Das Ausführen einer Aufgabe (.sync) Integrationsmuster wird unterstützt.
ecs:runTask
kann eine Antwort von HTTP 200 zurückgeben, hat aber ein nicht leeresFailures
Feld wie folgt:Antwort anfordern: Geben Sie die Antwort zurück und scheitern Sie nicht an der Aufgabe. Das ist dasselbe wie keine Optimierung.
Einen Job- oder Task-Token ausführen: Wenn ein nicht leeres
Failures
Feld gefunden wird, schlägt die Aufgabe fehl und es wird einAmazonECS.Unknown
Fehler angezeigt.
Unterstütztes Amazon ECS /Fargate APIs
-
RunTask
startet eine neue Aufgabe mit der angegebenen Aufgabendefinition.
Parameter in Step Functions werden ausgedrückt in PascalCase
Auch wenn der native Dienst API aktiviert istcamelCase, z. B. die API AktionstartSyncExecution
, geben Sie Parameter in an PascalCase, z. B.:StateMachineArn
.
Daten an eine ECS Amazon-Aufgabe übergeben
Um mehr über die Integration mit zu erfahren AWS Dienste in Step Functions, siehe Integrieren von -Services undÜbergeben von Parametern an einen Dienst API in Step Functions.
Sie können overrides
damit den Standardbefehl für einen Container überschreiben und Eingaben an Ihre ECS Amazon-Aufgaben übergeben. Siehe ContainerOverride
. In diesem Beispiel haben wir JsonPath Werte Task
von der Eingabe an den Task
Status übergeben.
Im Folgenden wird ein Task
Status beschrieben, der eine ECS Amazon-Aufgabe ausführt und darauf wartet, dass sie abgeschlossen ist.
{
"StartAt": "Run an ECS Task and wait for it to complete",
"States": {
"Run an ECS Task and wait for it to complete": {
"Type": "Task",
"Resource": "arn:aws:states:::ecs:runTask.sync",
"Parameters": {
"Cluster": "cluster-arn
",
"TaskDefinition": "job-id
",
"Overrides": {
"ContainerOverrides": [
{
"Name": "container-name
",
"Command.$": "$.commands"
}
]
}
},
"End": true
}
}
}
Die "Command.$": "$.commands"
-Zeile in ContainerOverrides
gibt die Befehle von der Zustandseingabe an den Container weiter.
Für das vorherige Beispiel wird jeder der Befehle als Container-Überschreibung übergeben, wenn die Eingabe für die Ausführung wie folgt lautet.
{
"commands": [
"test command 1",
"test command 2",
"test command 3"
]
}
Das Folgende beinhaltet einen Task
Status, der eine ECS Amazon-Aufgabe ausführt und dann darauf wartet, dass das Task-Token zurückgegeben wird. Siehe Warten Sie auf einen Rückruf mit Task Token.
{
"StartAt":"Manage ECS task",
"States":{
"Manage ECS task":{
"Type":"Task",
"Resource":"arn:aws:states:::ecs:runTask.waitForTaskToken",
"Parameters":{
"LaunchType":"FARGATE",
"Cluster":"cluster-arn
",
"TaskDefinition":"job-id
",
"Overrides":{
"ContainerOverrides":[
{
"Name":"container-name
",
"Environment":[
{
"Name":"TASK_TOKEN_ENV_VARIABLE",
"Value.$":"$$.Task.Token"
}
]
}
]
}
},
"End":true
}
}
}
IAMRichtlinien für Anrufe bei AmazonECS/AWS Fargate
Die folgenden Beispielvorlagen zeigen, wie AWS Step Functions generiert IAM Richtlinien auf der Grundlage der Ressourcen in Ihrer State-Machine-Definition. Weitere Informationen erhalten Sie unter So generiert Step Functions IAM Richtlinien für integrierte Dienste und Entdecken Sie Serviceintegrationsmuster in Step Functions.
Da der Wert für erst bekannt TaskId
ist, wenn die Aufgabe gesendet wird, erstellt Step Functions eine "Resource": "*"
Richtlinie mit mehr Rechten.
Anmerkung
Sie können trotz der "*"
IAM Richtlinie nur Amazon Elastic Container Service (AmazonECS) -Aufgaben beenden, die von Step Functions gestartet wurden.
Wenn Ihre geplanten ECS Amazon-Aufgaben die Verwendung einer Aufgabenausführungsrolle, einer Aufgabenrolle oder einer Aufgabenrollenüberschreibung erfordern, müssen Sie der Rolle CloudWatch Ereignisse der aufrufenden Entität, in diesem Fall Step Functions, iam:PassRole
Berechtigungen für jede IAM Aufgabenausführungsrolle, Aufgabenrolle oder Aufgabenrollenüberschreibung hinzufügen.