

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.

# Amazon EKS-Cluster mit Step Functions erstellen und verwalten
<a name="connect-eks"></a>

Erfahren Sie, wie Sie Step Functions mit Amazon EKS integrieren, um Kubernetes-Cluster zu verwalten. Step Functions bietet zwei Arten der Serviceintegration APIs für die Integration mit Amazon Elastic Kubernetes Service. Mit einem können Sie Amazon EKS verwenden APIs , um einen Amazon EKS-Cluster zu erstellen und zu verwalten. Mit der anderen können Sie mithilfe der Kubernetes-API mit Ihrem Cluster interagieren und Jobs als Teil des Workflows Ihrer Anwendung ausführen.

 Sie können die Kubernetes-API-Integrationen mit Amazon EKS-Clustern verwenden, die mit Step Functions erstellt wurden, mit Amazon EKS-Clustern, die mit dem **eksctl-Tool** oder der [Amazon EKS-Konsole](https://console.aws.amazon.com/eks/home) erstellt wurden, oder mit ähnlichen Methoden. Weitere Informationen finden Sie unter [Erstellen eines Amazon EKS-Clusters](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html) im Amazon EKS-Benutzerhandbuch.

Informationen zur Integration mit AWS Diensten in Step Functions finden Sie unter [Integrieren von -Services](integrate-services.md) und[Übergeben von Parametern an eine Service-API in Step Functions](connect-parameters.md).

**Hauptmerkmale der optimierten Amazon EKS-Integration**  
Das [Ausführen einer Aufgabe (.sync)](connect-to-resource.md#connect-sync) Integrationsmuster wird unterstützt.
Es gibt keine spezifischen Optimierungen für das [Request Response (Antwort anfordern)](connect-to-resource.md#connect-default) Integrationsmuster.
Das [Warten Sie auf einen Rückruf mit Task Token](connect-to-resource.md#connect-wait-token) Integrationsmuster wird nicht unterstützt.

**Anmerkung**  
Die Step Functions EKS-Integration unterstützt nur Kubernetes APIs mit öffentlichem Endpunktzugriff. Standardmäßig haben API-Serverendpunkte für EKS-Cluster öffentlichen Zugriff. Weitere Informationen finden Sie unter [Amazon EKS-Cluster-Endpunktzugriffskontrolle](https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html) im **Amazon EKS-Benutzerhandbuch**.

Step Functions beendet einen Amazon EKS-Cluster nicht automatisch, wenn die Ausführung gestoppt wird. Wenn Ihr State Machine stoppt, bevor Ihr Amazon EKS-Cluster beendet wurde, läuft Ihr Cluster möglicherweise auf unbestimmte Zeit weiter und es können zusätzliche Gebühren anfallen. Um dies zu vermeiden, stellen Sie sicher, dass jeder Amazon EKS-Cluster, den Sie erstellen, ordnungsgemäß beendet wird. Weitere Informationen finden Sie unter:
+ [Löschen eines Clusters](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html) im Amazon EKS-Benutzerhandbuch.
+ [Ausführen einer Aufgabe (.sync)](connect-to-resource.md#connect-sync)in Muster der Serviceintegration.

**Quote für Eingabe- oder Ergebnisdaten**  
Beim Senden oder Empfangen von Daten zwischen Diensten beträgt die maximale Eingabe oder das maximale Ergebnis für eine Aufgabe 256 KiB an Daten als UTF-8-kodierte Zeichenfolge. Siehe [Kontingente im Zusammenhang mit der Ausführung von Zustandsmaschinen](service-quotas.md#service-limits-state-machine-executions).

## Kubernetes-API-Integrationen
<a name="connect-eks-kubernetes-apis"></a>

Step Functions unterstützt die folgenden Kubernetes APIs:

### RunJob
<a name="connect-eks-kubernetes-apis-runjob"></a>

Die `eks:runJob` Service-Integration ermöglicht es Ihnen, einen Job auf Ihrem Amazon EKS-Cluster auszuführen. Bei `eks:runJob.sync` dieser Variante können Sie warten, bis der Job abgeschlossen ist, und optional Protokolle abrufen.

Ihr Kubernetes-API-Server muss der von Ihrem Zustandsmaschine verwendeten IAM-Rolle Berechtigungen gewähren. Weitere Informationen finden Sie unter [Berechtigungen](#connect-eks-permissions).

Für das **Run a Job** (`.sync`) -Muster wird der Status des Jobs durch Abfragen bestimmt. Step Functions fragt zunächst mit einer Geschwindigkeit von ungefähr 1 Umfrage pro Minute ab. Diese Rate verlangsamt sich schließlich auf etwa 1 Umfrage alle 5 Minuten. Wenn Sie häufigere Abfragen benötigen oder mehr Kontrolle über die Abfragestrategie benötigen, können Sie die `eks:call` Integration verwenden, um den Status des Jobs abzufragen.

Die `eks:runJob` Integration ist spezifisch für `batch/v1` Kubernetes Jobs. Weitere Informationen finden Sie unter [Jobs](https://kubernetes.io/docs/concepts/workloads/controllers/job/) in der Kubernetes-Dokumentation. Wenn Sie andere Kubernetes-Ressourcen, einschließlich benutzerdefinierter Ressourcen, verwalten möchten, verwenden Sie die Serviceintegration. `eks:call` Sie können Step Functions verwenden, um Abfrageschleifen zu erstellen, wie im [Umfrage zum Jobstatus mit Lambda und AWS Batch](sample-project-job-poller.md) Beispielprojekt gezeigt. 

Zu den unterstützten Parametern gehören:
+ `ClusterName`: Der Name des Amazon EKS-Clusters, den Sie aufrufen möchten.
  + `Type`: `String`
  + Erforderlich: Ja
+ `CertificateAuthority`: Die Base64-codierten Zertifikatsdaten, die für die Kommunikation mit Ihrem Cluster erforderlich sind. Sie können diesen Wert von der [Amazon EKS-Konsole](https://console.aws.amazon.com/eks/home) oder mithilfe der Amazon [DescribeCluster](https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeCluster.html)EKS-API abrufen.
  + `Type`: `String`
  + Erforderlich: Ja
+ `Endpoint`: Die Endpunkt-URL für Ihren Kubernetes-API-Server. Sie können diesen Wert von der [Amazon EKS-Konsole](https://console.aws.amazon.com/eks/home) oder mithilfe der Amazon [DescribeCluster](https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeCluster.html)EKS-API abrufen.
  + `Type`: `String`
  + Erforderlich: Ja
+ `Namespace`: Der Namespace, in dem der Job ausgeführt werden soll. Wenn nicht angegeben, wird der Namespace `default` verwendet.
  + `Type`: `String`
  + Erforderlich: nein
+ `Job`: Die Definition des Kubernetes-Jobs. Siehe [Jobs](https://kubernetes.io/docs/concepts/workloads/controllers/job/) in der Kubernetes-Dokumentation. 
  + `Type`: `JSON` oder `String`
  + Erforderlich: Ja
+ `LogOptions`: Eine Reihe von Optionen zur Steuerung des optionalen Abrufs von Protokollen. Gilt nur, wenn das Dienstintegrationsmuster Run a Job (.sync) verwendet wird, um auf den Abschluss des Jobs zu warten.
  + `Type`: `JSON`
  + Erforderlich: nein
  + Protokolle sind in der Antwort unter dem Schlüssel `logs` enthalten. Der Job kann mehrere Pods mit jeweils mehreren Containern enthalten.

    ```
    { 
      ...
      "logs": { 
        "pods": { 
          "pod1": { 
            "containers": { 
              "container1": { 
                "log": <log> 
              },
              ...
            }
          },
          ...
        }
      }
    ```
  + Der Protokollabruf erfolgt nach bestem Wissen und Gewissen. Wenn beim Abrufen eines Protokolls ein Fehler auftritt, werden anstelle des `log` Felds die Felder und angezeigt. `error` `cause`
+ `LogOptions.RetrieveLogs`: Aktiviert den Protokollabruf nach Abschluss des Jobs. Standardmäßig werden Protokolle nicht abgerufen.
  + `Type`: `Boolean`
  + Erforderlich: nein
+ `LogOptions.RawLogs`: Wenn auf true gesetzt `RawLogs` ist, werden Logs als unformatierte Zeichenketten zurückgegeben, ohne dass versucht wird, sie in JSON zu parsen. Standardmäßig werden Logs nach Möglichkeit in JSON deserialisiert. In einigen Fällen kann eine solche Analyse zu unerwünschten Änderungen führen, z. B. zur Einschränkung der Genauigkeit von Zahlen mit vielen Ziffern.
  + `Type`: `Boolean`
  + Erforderlich: nein
+ `LogOptions.LogParameters`: Die Read Log API der Kubernetes-API unterstützt Abfrageparameter zur Steuerung des Protokollabrufs. Sie können beispielsweise `tailLines` oder verwenden, `limitBytes` um die Größe der abgerufenen Protokolle zu begrenzen und dabei das Datengrößenkontingent von Step Functions einzuhalten. Weitere Informationen finden Sie im Abschnitt „[Protokoll lesen](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#read-log-pod-v1-core)“ der Kubernetes-API-Referenz.
  + `Type: `Karte von bis `String` `List of Strings`
  + Erforderlich: nein
  + Beispiel:

    ```
    "LogParameters": {
      "tailLines": [ "6" ]
    }
    ```

Das folgende Beispiel enthält einen `Task` Status, der einen Job ausführt, auf seinen Abschluss wartet und dann die Logs des Jobs abruft:

```
{
  "StartAt": "Run a job on EKS",
  "States": {
    "Run a job on EKS": {
      "Type": "Task",
      "Resource": "arn:aws:states:::eks:runJob.sync",
      "Arguments": {
        "ClusterName": "MyCluster",
        "CertificateAuthority": "ANPAJ2UCCR6DPCEXAMPLE",
        "Endpoint": "https://AKIAIOSFODNN7EXAMPLE.yl4.us-east-1.eks.amazonaws.com",
        "LogOptions": {
          "RetrieveLogs": true
        },
        "Job": {
          "apiVersion": "batch/v1",
          "kind": "Job",
          "metadata": {
            "name": "example-job"
          },
          "spec": {
            "backoffLimit": 0,
            "template": {
              "metadata": {
                "name": "example-job"
              },
              "spec": {
                "containers": [
                  {
                    "name": "pi-2000",
                    "image": "perl",
                    "command": [ "perl" ],
                    "args": [
                      "-Mbignum=bpi",
                      "-wle",
                      "print bpi(2000)"
                    ]
                  }
                ],
                "restartPolicy": "Never"
              }
            }
          }
        }
      },
      "End": true
    }
  }
}
```

### `Call`
<a name="connect-eks-kubernetes-apis-call"></a>

Die `eks:call` Serviceintegration ermöglicht es Ihnen, die Kubernetes-API zu verwenden, um Kubernetes-Ressourcenobjekte über einen Kubernetes-API-Endpunkt zu lesen und zu schreiben. 

Ihr Kubernetes-API-Server muss der von Ihrem Zustandsmaschine verwendeten IAM-Rolle Berechtigungen gewähren. Weitere Informationen finden Sie unter [Berechtigungen](#connect-eks-permissions).

Weitere Informationen zu den verfügbaren Vorgängen finden Sie in der [Kubernetes-API-Referenz](https://kubernetes.io/docs/reference/kubernetes-api/).

Zu den unterstützten Parametern für gehören`Call`:
+ `ClusterName`: Der Name des Amazon EKS-Clusters, den Sie aufrufen möchten.
  + `Type`: Zeichenfolge
  + Erforderlich: Ja
+ `CertificateAuthority`: Die Base64-codierten Zertifikatsdaten, die für die Kommunikation mit Ihrem Cluster erforderlich sind. Sie können diesen Wert von der [Amazon EKS-Konsole](https://console.aws.amazon.com/eks/home) oder mithilfe der Amazon [DescribeCluster](https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeCluster.html)EKS-API abrufen.
  + `Type`: `String`
  + Erforderlich: Ja
+ `Endpoint`: Die Endpunkt-URL für Ihren Kubernetes-API-Server. Sie finden diesen Wert in der [Amazon EKS-Konsole](https://console.aws.amazon.com/eks/home) oder mithilfe der Amazon DescribeCluster EKS-API.
  + `Type`: `String`
  + Erforderlich: Ja
+ `Method`: Die HTTP-Methode Ihrer Anfrage. Eins von: `GET`, `POST`, `PUT`, `DELETE`, `HEAD` oder von `PATCH`.
  + `Type`: `String`
  + Erforderlich: Ja
+ `Path`: Der HTTP-Pfad des Kubernetes-REST-API-Vorgangs.
  + `Type`: `String`
  + Erforderlich: Ja
+ `QueryParameters`: Die HTTP-Abfrageparameter des Kubernetes-REST-API-Vorgangs.
  + `Type: `Karte von bis `String` `List of Strings`
  + Erforderlich: Nein
  + Beispiel:

    ```
    "QueryParameters": {
      "labelSelector": [ "job-name=example-job" ]
    }
    ```
+ `RequestBody`: Der HTTP-Nachrichtentext des Kubernetes-REST-API-Vorgangs.
  + `Type`: `JSON` oder `String`
  + Erforderlich: Nein

Im Folgenden finden Sie einen `Task` Status, der verwendet wird, `eks:call` um die Pods aufzulisten, die zu dem Job gehören. `example-job`

```
{
  "StartAt": "Call EKS",
  "States": {
    "Call EKS": {
      "Type": "Task",
      "Resource": "arn:aws:states:::eks:call",
      "Arguments": {
        "ClusterName": "MyCluster",
        "CertificateAuthority": "ANPAJ2UCCR6DPCEXAMPLE",
        "Endpoint": "https://444455556666.yl4.us-east-1.eks.amazonaws.com",
        "Method": "GET",
        "Path": "/api/v1/namespaces/default/pods",
        "QueryParameters": {
          "labelSelector": [
            "job-name=example-job"
          ]
        }
      },
      "End": true
    }
  }
}
```

Der folgende Status enthält einen `Task` Status, der `eks:call` zum Löschen des Auftrags verwendet wird`example-job`, und legt den Status fest, `propagationPolicy` um sicherzustellen, dass die Pods des Auftrags ebenfalls gelöscht werden.

```
{
  "StartAt": "Call EKS",
  "States": {
    "Call EKS": {
      "Type": "Task",
      "Resource": "arn:aws:states:::eks:call",
      "Arguments": {
        "ClusterName": "MyCluster",
        "CertificateAuthority": "ANPAJ2UCCR6DPCEXAMPLE",
        "Endpoint": "https://444455556666.yl4.us-east-1.eks.amazonaws.com",
        "Method": "DELETE",
        "Path": "/apis/batch/v1/namespaces/default/jobs/example-job",
        "QueryParameters": {
          "propagationPolicy": [
            "Foreground"
          ]
        }
      },
      "End": true
    }
  }
}
```

## Optimiertes Amazon EKS APIs
<a name="connect-eks-apis"></a>

Zu den unterstützten Amazon EKS APIs und der Syntax gehören:
+ [https://docs.aws.amazon.com/eks/latest/APIReference/API_CreateCluster.html](https://docs.aws.amazon.com/eks/latest/APIReference/API_CreateCluster.html)
  +  [Erforderliche Syntax](https://docs.aws.amazon.com/eks/latest/APIReference/API_CreateCluster.html#API_CreateCluster_RequestSyntax) 
  +  [Antwortsyntax](https://docs.aws.amazon.com/eks/latest/APIReference/API_CreateCluster.html#API_CreateCluster_ResponseSyntax) 

    Wenn ein Amazon EKS-Cluster mithilfe der `eks:createCluster` Service-Integration erstellt wird, wird die IAM-Rolle als Administrator (mit system:masters-Berechtigungen) zur Kubernetes-RBAC-Autorisierungstabelle hinzugefügt. Anfänglich kann nur diese IAM-Entität den Kubernetes-API-Server aufrufen. Weitere Informationen finden Sie unter:
    + [Verwaltung von Benutzern oder IAM-Rollen für Ihren Cluster](https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html) im *Amazon EKS-Benutzerhandbuch* 
    + Der Abschnitt [Berechtigungen](#connect-eks-permissions) 

    Amazon EKS verwendet serviceverknüpfte Rollen, die die Berechtigungen enthalten, die Amazon EKS benötigt, um andere Services in Ihrem Namen aufzurufen. Wenn diese serviceverknüpften Rollen noch nicht in Ihrem Konto vorhanden sind, müssen Sie die `iam:CreateServiceLinkedRole` Berechtigung zu der von Step Functions verwendeten IAM-Rolle hinzufügen. Weitere Informationen finden Sie unter [Verwenden von serviceverknüpften Rollen](https://docs.aws.amazon.com/eks/latest/userguide/using-service-linked-roles.html) im *Amazon EKS-Benutzerhandbuch*.

    Die von Step Functions verwendete IAM-Rolle muss über `iam:PassRole` Berechtigungen verfügen, um die Cluster-IAM-Rolle an Amazon EKS weiterzugeben. Weitere Informationen finden Sie unter [Amazon EKS-Cluster-IAM-Rolle](https://docs.aws.amazon.com/eks/latest/userguide/service_IAM_role.html) im *Amazon EKS-Benutzerhandbuch*. 
+ [https://docs.aws.amazon.com/eks/latest/APIReference/API_DeleteCluster.html](https://docs.aws.amazon.com/eks/latest/APIReference/API_DeleteCluster.html)
  +  [Erforderliche Syntax](https://docs.aws.amazon.com/eks/latest/APIReference/API_DeleteCluster.html#API_DeleteCluster_RequestSyntax) 
  +  [Antwortsyntax](https://docs.aws.amazon.com/eks/latest/APIReference/API_DeleteCluster.html#API_DeleteCluster_ResponseSyntax) 

    Sie müssen alle Fargate-Profile oder Knotengruppen löschen, bevor Sie einen Cluster löschen.
+ [https://docs.aws.amazon.com/eks/latest/APIReference/API_CreateFargateProfile.html](https://docs.aws.amazon.com/eks/latest/APIReference/API_CreateFargateProfile.html)
  +  [Erforderliche Syntax](https://docs.aws.amazon.com/eks/latest/APIReference/API_CreateFargateProfile.html#API_CreateFargateProfile_RequestSyntax) 
  +  [Antwortsyntax](https://docs.aws.amazon.com/eks/latest/APIReference/API_CreateFargateProfile.html#API_CreateFargateProfile_ResponseSyntax) 

    Amazon EKS verwendet serviceverknüpfte Rollen, die die Berechtigungen enthalten, die Amazon EKS benötigt, um andere Services in Ihrem Namen aufzurufen. Wenn diese serviceverknüpften Rollen noch nicht in Ihrem Konto vorhanden sind, müssen Sie die `iam:CreateServiceLinkedRole` Berechtigung zu der von Step Functions verwendeten IAM-Rolle hinzufügen. Weitere Informationen finden Sie unter [Verwenden von serviceverknüpften Rollen](https://docs.aws.amazon.com/eks/latest/userguide/using-service-linked-roles.html) im *Amazon EKS-Benutzerhandbuch*.

    Amazon EKS on Fargate ist möglicherweise nicht in allen Regionen verfügbar. Informationen zur regionalen Verfügbarkeit finden Sie im Abschnitt über [Fargate](https://docs.aws.amazon.com/eks/latest/userguide/fargate.html) im *Amazon EKS-Benutzerhandbuch*.

    Die von Step Functions verwendete IAM-Rolle muss über `iam:PassRole` Berechtigungen verfügen, um die IAM-Rolle für die Pod-Ausführung an Amazon EKS weiterzugeben. Weitere Informationen finden Sie unter [Pod-Ausführungsrolle](https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html) im *Amazon EKS-Benutzerhandbuch*. 
+ [https://docs.aws.amazon.com/eks/latest/APIReference/API_DeleteFargateProfile.html](https://docs.aws.amazon.com/eks/latest/APIReference/API_DeleteFargateProfile.html)
  +  [Erforderliche Syntax](https://docs.aws.amazon.com/eks/latest/APIReference/API_DeleteFargateProfile.html#API_DeleteFargateProfile_RequestSyntax) 
  +  [Antwortsyntax](https://docs.aws.amazon.com/eks/latest/APIReference/API_DeleteFargateProfile.html#API_DeleteFargateProfile_ResponseSyntax) 
+ [https://docs.aws.amazon.com/eks/latest/APIReference/API_CreateNodegroup.html](https://docs.aws.amazon.com/eks/latest/APIReference/API_CreateNodegroup.html)
  +  [Erforderliche Syntax](https://docs.aws.amazon.com/eks/latest/APIReference/API_CreateNodegroup.html#API_CreateNodegroup_RequestSyntax) 
  +  [Antwortsyntax](https://docs.aws.amazon.com/eks/latest/APIReference/API_CreateNodegroup.html#API_CreateNodegroup_ResponseSyntax) 

    Amazon EKS verwendet serviceverknüpfte Rollen, die die Berechtigungen enthalten, die Amazon EKS benötigt, um andere Services in Ihrem Namen aufzurufen. Wenn diese serviceverknüpften Rollen noch nicht in Ihrem Konto vorhanden sind, müssen Sie die `iam:CreateServiceLinkedRole` Berechtigung zu der von Step Functions verwendeten IAM-Rolle hinzufügen. Weitere Informationen finden Sie unter [Verwenden von serviceverknüpften Rollen](https://docs.aws.amazon.com/eks/latest/userguide/using-service-linked-roles.html) im *Amazon EKS-Benutzerhandbuch*. 

    Die von Step Functions verwendete IAM-Rolle muss über `iam:PassRole` Berechtigungen verfügen, um die Knoten-IAM-Rolle an Amazon EKS weiterzugeben. Weitere Informationen finden Sie unter [Verwenden von serviceverknüpften Rollen](https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html) im *Amazon EKS-Benutzerhandbuch*.
+ [https://docs.aws.amazon.com/eks/latest/APIReference/API_DeleteNodegroup.html](https://docs.aws.amazon.com/eks/latest/APIReference/API_DeleteNodegroup.html)
  +  [Erforderliche Syntax](https://docs.aws.amazon.com/eks/latest/APIReference/API_DeleteNodegroup.html#API_DeleteNodegroup_RequestSyntax) 
  +  [Antwortsyntax](https://docs.aws.amazon.com/eks/latest/APIReference/API_DeleteNodegroup.html#API_DeleteNodegroup_ResponseSyntax) 

Das Folgende beinhaltet einen`Task`, der einen Amazon EKS-Cluster erstellt.

```
{
  "StartAt": "CreateCluster.sync",
  "States": {
    "CreateCluster.sync": {
      "Type": "Task",
      "Resource": "arn:aws:states:::eks:createCluster.sync",
      "Arguments": {
        "Name": "MyCluster",
        "ResourcesVpcConfig": {
          "SubnetIds": [
            "subnet-053e7c47012341234",
            "subnet-027cfea4b12341234"
          ]
        },
        "RoleArn": "arn:aws:iam::account-id:role/MyEKSClusterRole"
      },
      "End": true
    }
  }
}
```

Im Folgenden wird ein `Task` Status beschrieben, der einen Amazon EKS-Cluster löscht.

```
{
  "StartAt": "DeleteCluster.sync",
  "States": {
    "DeleteCluster.sync": {
      "Type": "Task",
      "Resource": "arn:aws:states:::eks:deleteCluster.sync",
      "Arguments": {
        "Name": "MyCluster"
      },
      "End": true
    }
  }
}
```

Im Folgenden wird ein `Task` Bundesstaat beschrieben, der ein Fargate-Profil erstellt.

```
{
  "StartAt": "CreateFargateProfile.sync",
  "States": {
    "CreateFargateProfile.sync": {
      "Type": "Task",
      "Resource": "arn:aws:states:::eks:createFargateProfile.sync",
      "Arguments": {
        "ClusterName": "MyCluster",
        "FargateProfileName": "MyFargateProfile",
        "PodExecutionRoleArn": "arn:aws:iam::account-id:role/MyFargatePodExecutionRole",
        "Selectors": [{
            "Namespace": "my-namespace",
            "Labels": { "my-label": "my-value" }
          }]
      },
      "End": true
    }
  }
}
```

Das Folgende beinhaltet einen `Task` Status, der ein Fargate-Profil löscht.

```
{
  "StartAt": "DeleteFargateProfile.sync",
  "States": {
    "DeleteFargateProfile.sync": {
      "Type": "Task",
      "Resource": "arn:aws:states:::eks:deleteFargateProfile.sync",
      "Arguments": {
        "ClusterName": "MyCluster",
        "FargateProfileName": "MyFargateProfile"
      },
      "End": true
    }
  }
}
```

Im Folgenden wird ein `Task` Status beschrieben, der eine Knotengruppe erstellt.

```
{
  "StartAt": "CreateNodegroup.sync",
  "States": {
    "CreateNodegroup.sync": {
      "Type": "Task",
      "Resource": "arn:aws:states:::eks:createNodegroup.sync",
      "Arguments": {
        "ClusterName": "MyCluster",
        "NodegroupName": "MyNodegroup",
        "NodeRole": "arn:aws:iam::account-id:role/MyNodeInstanceRole",
        "Subnets": ["subnet-09fb51df01234", "subnet-027cfea4b1234"] 
      },
      "End": true
    }
  }
}
```

Das Folgende beinhaltet einen `Task` Status, der eine Knotengruppe löscht.

```
{
  "StartAt": "DeleteNodegroup.sync",
  "States": {
    "DeleteNodegroup.sync": {
      "Type": "Task",
      "Resource": "arn:aws:states:::eks:deleteNodegroup.sync",
      "Arguments": {
        "ClusterName": "MyCluster",
        "NodegroupName": "MyNodegroup"
      },
      "End": true
    }
  }
}
```

## Berechtigungen
<a name="connect-eks-permissions"></a>

Wenn ein Amazon EKS-Cluster mithilfe der `eks:createCluster` Service-Integration erstellt wird, wird die IAM-Rolle als Administrator mit Berechtigungen zur Kubernetes-RBAC-Autorisierungstabelle hinzugefügt. `system:masters` Anfänglich kann nur diese IAM-Entität den Kubernetes-API-Server aufrufen. Beispielsweise können Sie **kubectl nicht verwenden, um mit Ihrem Kubernetes-API-Server** zu interagieren, es sei denn, Sie übernehmen dieselbe Rolle wie Ihre Step Functions Functions-Zustandsmaschine oder wenn Sie Kubernetes so konfigurieren, dass es zusätzlichen IAM-Entitäten Berechtigungen erteilt. Weitere Informationen finden Sie unter [Verwalten von Benutzern oder IAM-Rollen für Ihren Cluster](https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html) im *Amazon EKS-Benutzerhandbuch*. 

Sie können Berechtigungen für zusätzliche IAM-Entitäten wie Benutzer oder Rollen hinzufügen, indem Sie sie dem Namespace `aws-auth` `ConfigMap` in the kube-system hinzufügen. Wenn Sie Ihren Cluster aus Step Functions erstellen, verwenden Sie die `eks:call` Serviceintegration. 

Im Folgenden finden Sie einen `Task` Status, der eine `aws-auth` `ConfigMap` IAM-Rolle `arn:aws:iam::account-id:role/my-role` erstellt `arn:aws:iam::account-id:user/my-user` und dem Benutzer eine `system:masters` entsprechende Berechtigung erteilt.

```
{
  "StartAt": "Add authorized user",
  "States": {
    "Add authorized user": {
      "Type": "Task",
      "Resource": "arn:aws:states:::eks:call",
      "Arguments": {
        "ClusterName": "MyCluster",
        "CertificateAuthority": "LS0tLS1CRUd...UtLS0tLQo=",
        "Endpoint": "https://444455556666.yl4.region.eks.amazonaws.com",
        "Method": "POST",
        "Path": "/api/v1/namespaces/kube-system/configmaps",
        "RequestBody": {
           "apiVersion": "v1",
           "kind": "ConfigMap",
           "metadata": {
              "name": "aws-auth",
              "namespace": "kube-system"
           },
           "data": {
             "mapUsers": "[{ \"userarn\": \"arn:aws:iam::account-id:user/my-user\", \"username\": \"my-user\", \"groups\": [ \"system:masters\" ] } ]",
             "mapRoles": "[{ \"rolearn\": \"arn:aws:iam::account-id:role/my-role\", \"username\": \"my-role\", \"groups\": [ \"system:masters\" ] } ]"
           }
        }
      },
      "End": true
    }
  }
```

**Anmerkung**  
Möglicherweise wird der ARN für eine IAM-Rolle in einem Format angezeigt, das den Pfad **/service-role/** enthält, z. B. `arn:aws:iam::account-id:role/service-role/my-role` Dieses Pfadtoken für die **Dienstrolle** sollte nicht enthalten sein, wenn die Rolle in aufgeführt wird. `aws-auth`

Wenn Ihr Cluster zum ersten Mal erstellt `aws-auth` `ConfigMap` wird, ist er nicht vorhanden, wird aber automatisch hinzugefügt, wenn Sie ein Fargate-Profil erstellen. Sie können den aktuellen Wert von abrufen`aws-auth`, die zusätzlichen Berechtigungen und `PUT` eine neue Version hinzufügen. Es ist normalerweise einfacher, es `aws-auth` vor dem Fargate-Profil zu erstellen.

Wenn Ihr Cluster außerhalb von Step Functions erstellt wurde, können Sie **kubectl so konfigurieren, dass es mit Ihrem Kubernetes-API-Server** kommuniziert. Erstellen Sie dann einen neuen `aws-auth` `ConfigMap` mit `kubectl apply -f aws-auth.yaml` oder bearbeiten Sie einen, der bereits vorhanden ist, mit. `kubectl edit -n kube-system configmap/aws-auth` Weitere Informationen finden Sie unter:
+  [Erstellen Sie im Amazon EKS-Benutzerhandbuch eine kubeconfig für Amazon](https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html) *EKS*. 
+  [Verwaltung von Benutzern oder IAM-Rollen für Ihren Cluster](https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html) im *Amazon EKS-Benutzerhandbuch*. 

Wenn Ihre IAM-Rolle nicht über ausreichende Berechtigungen in Kubernetes verfügt, schlagen die `eks:call` oder `eks:runJob` Service-Integrationen mit dem folgenden Fehler fehl:

```
Error:
EKS.401

Cause:
{
  "ResponseBody": {
    "kind": "Status",
    "apiVersion": "v1",
    "metadata": {},
    "status": "Failure",
    "message": "Unauthorized",
    "reason": "Unauthorized",
    "code": 401
  },
  "StatusCode": 401,
  "StatusText": "Unauthorized"
}
```

## IAM-Richtlinien für das Aufrufen von Amazon EKS
<a name="eks-iam"></a>

Die folgenden Beispielvorlagen zeigen, wie IAM-Richtlinien auf der Grundlage der Ressourcen in Ihrer State-Machine-Definition AWS Step Functions generiert werden. Weitere Informationen erhalten Sie unter [So generiert Step Functions IAM-Richtlinien für integrierte Dienste](service-integration-iam-templates.md) und [Entdecken Sie Serviceintegrationsmuster in Step Functions](connect-to-resource.md).

### `CreateCluster`
<a name="eks-iam-createcluster"></a>

*Ressourcen*

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "eks:CreateCluster"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "eks:DescribeCluster",
                "eks:DeleteCluster"
            ],
            "Resource": "arn:aws:eks:us-east-1:444455556666:cluster/*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": [
                "arn:aws:iam::444455556666:role/StepFunctionsSample-EKSClusterManag-EKSServiceRole-ANPAJ2UCCR6DPCEXAMPLE"
            ],
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "eks.amazonaws.com"
                }
            }
        }
    ]
}
```

```


```

### `CreateNodeGroup`
<a name="eks-iam-createnodegroup"></a>

*Ressourcen*

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeSubnets",
                "eks:CreateNodegroup"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "eks:DescribeNodegroup",
                "eks:DeleteNodegroup"
            ],
            "Resource": "arn:aws:eks:us-east-1:444455556666:nodegroup/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:ListAttachedRolePolicies"
            ],
            "Resource": "arn:aws:iam::444455556666:role/*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": [
                "arn:aws:iam::444455556666:role/StepFunctionsSample-EKSClusterMan-NodeInstanceRole-ANPAJ2UCCR6DPCEXAMPLE"
            ],
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "eks.amazonaws.com"
                }
            }
        }
    ]
}
```

### `DeleteCluster`
<a name="eks-iam-deletecluster"></a>

*Ressourcen*

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "eks:DeleteCluster",
                "eks:DescribeCluster"
            ],
            "Resource": [
                "arn:aws:eks:us-east-1:444455556666:cluster/ExampleCluster"
            ]
        }
    ]
}
```

### `DeleteNodegroup`
<a name="eks-iam-deletenodegroup"></a>

*Ressourcen*

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "eks:DeleteNodegroup",
                "eks:DescribeNodegroup"
            ],
            "Resource": [
                "arn:aws:eks:us-east-1:444455556666:nodegroup/ExampleCluster/ExampleNodegroup/*"
            ]
        }
    ]
}
```

Weitere Informationen zur Verwendung von Amazon EKS mit Step Functions finden Sie unter[Amazon EKS-Cluster mit Step Functions erstellen und verwalten](#connect-eks).