

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.

# AWS::Serverless::StateMachine
<a name="sam-resource-statemachine"></a>

Erstellt eine AWS Step Functions Zustandsmaschine, mit der Sie AWS Lambda Funktionen und andere AWS Ressourcen orchestrieren können, um komplexe und robuste Workflows zu bilden.

Weitere Informationen zu Step Functions finden Sie im [AWS Step Functions Developer Guide](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html).

**Anmerkung**  
Bei der Bereitstellung werden AWS CloudFormation Ihre AWS SAM Ressourcen in Ressourcen umgewandelt CloudFormation . AWS SAM Weitere Informationen finden Sie unter [Generierte CloudFormation Ressourcen für AWS SAM](sam-specification-generated-resources.md).

## Syntax
<a name="sam-resource-statemachine-syntax"></a>

Verwenden Sie die folgende Syntax, um diese Entität in Ihrer AWS Serverless Application Model (AWS SAM) -Vorlage zu deklarieren.

### YAML
<a name="sam-resource-statemachine-syntax.yaml"></a>

```
Type: AWS::Serverless::StateMachine
Properties:
  AutoPublishAlias: {{String}}
  UseAliasAsEventTarget: {{Boolean}}
  [Definition](#sam-statemachine-definition): {{Map}}
  [DefinitionSubstitutions](#sam-statemachine-definitionsubstitutions): {{Map}}
  [DefinitionUri](#sam-statemachine-definitionuri): {{String | [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitions3location)}}
  DeploymentPreference: {{[DeploymentPreference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachinealias-deploymentpreference.html)}}
  [Events](#sam-statemachine-events): {{EventSource}}
  [Logging](#sam-statemachine-logging): {{[LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-loggingconfiguration)}}
  [Name](#sam-statemachine-name): {{String}}
  [PermissionsBoundary](#sam-statemachine-permissionsboundary): {{String}}
  [Policies](#sam-statemachine-policies): {{String | List | Map}}
  PropagateTags: {{Boolean}}
  [RolePath](#sam-statemachine-rolepath): {{String}}
  [Role](#sam-statemachine-role): {{String}}
  [Tags](#sam-statemachine-tags): {{Map}}
  [Tracing](#sam-statemachine-tracing): {{[TracingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration)}}
  [Type](#sam-statemachine-type): {{String}}
```

## Eigenschaften
<a name="sam-resource-statemachine-properties"></a>

 `AutoPublishAlias`   <a name="sam-statemachine-autopublishalias"></a>
Der Name des Alias für die Zustandsmaschine. *Weitere Informationen zur Verwendung von Step Functions Functions-Zustandsmaschinenaliasen finden Sie unter [Manage Continuous Deployments with versions and aliases im AWS Step Functions Developer](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-cd-aliasing-versioning.html) Guide.*  
Wird verwendet`DeploymentPreference`, um die Bereitstellungseinstellungen für Ihren Alias zu konfigurieren. Wenn Sie nichts angeben`DeploymentPreference`, AWS SAM wird der Datenverkehr so konfiguriert, dass er auf einmal zur neueren State-Machine-Version wechselt.  
AWS SAM legt `Retain` standardmäßig die Version `DeletionPolicy` und `UpdateReplacePolicy` auf fest. Frühere Versionen werden nicht automatisch gelöscht.  
*Typ:* Zeichenfolge  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft wird direkt an die ` [ Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachinealias.html#cfn-stepfunctions-statemachinealias-name)` Eigenschaft einer `AWS::StepFunctions::StateMachineAlias` Ressource übergeben.

 `UseAliasAsEventTarget`   <a name="sam-statemachine-usealiasaseventtarget"></a>
[Geben Sie an, ob der mit der `AutoPublishAlias` Eigenschaft erstellte Alias an das mit Events definierte Ziel der Ereignisquelle übergeben werden soll oder nicht.](#sam-statemachine-events)  
Geben Sie `True` an, dass der Alias als Ziel der Ereignisse verwendet werden soll.  
*Typ*: Boolesch  
*Required*: No  
*Standardwert*: `False`  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

 `Definition`   <a name="sam-statemachine-definition"></a>
Die State-Machine-Definition ist ein Objekt, bei dem das Format des Objekts dem Format Ihrer AWS SAM Vorlagendatei entspricht, z. B. JSON oder YAML. State Machine-Definitionen halten sich an die [Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html).  
Ein Beispiel für eine Inline-State-Machine-Definition finden Sie unter[Beispiele](#sam-resource-statemachine--examples).  
Sie müssen entweder a `Definition` oder a angeben`DefinitionUri`.  
*Typ*: Karte  
*Required*: Conditional  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

 `DefinitionSubstitutions`   <a name="sam-statemachine-definitionsubstitutions"></a>
Eine string-to-string Map, die die Zuordnungen für Platzhaltervariablen in der State-Machine-Definition spezifiziert. Auf diese Weise können Sie Werte, die Sie zur Laufzeit erhalten haben (z. B. aus systeminternen Funktionen), in die Zustandsmaschinen-Definition einfügen.  
*Typ: Karte*  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft ähnelt der `[DefinitionSubstitutions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitionsubstitutions)` Eigenschaft einer `AWS::StepFunctions::StateMachine` Ressource. Wenn in einer Inline-State-Machine-Definition irgendwelche systemeigenen Funktionen angegeben sind, AWS SAM fügt dieser Eigenschaft Einträge hinzu, um sie in die Zustandsmaschinen-Definition einzufügen.

 `DefinitionUri`   <a name="sam-statemachine-definitionuri"></a>
Die Amazon Simple Storage Service (Amazon S3) -URI oder der lokale Dateipfad der Zustandsmaschinen-Definition, geschrieben in der [Sprache Amazon States](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html).  
Wenn Sie einen lokalen Dateipfad angeben, muss die Vorlage den Workflow durchlaufen, der den `sam package` Befehl `sam deploy` or enthält, um die Definition korrekt zu transformieren. Dazu müssen Sie Version 0.52.0 oder höher der AWS SAM CLI verwenden.  
Sie müssen entweder a `Definition` oder a `DefinitionUri` angeben.  
*Typ*: Zeichenfolge \| [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitions3location)  
*Required*: Conditional  
*CloudFormation Kompatibilität*: Diese Eigenschaft wird direkt an die `[DefinitionS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitions3location)` Eigenschaft einer `AWS::StepFunctions::StateMachine` Ressource übergeben.

 `DeploymentPreference`   <a name="sam-statemachine-deploymentpreference"></a>
Die Einstellungen, die die schrittweise Bereitstellung von Zustandsmaschinen ermöglichen und konfigurieren. *Weitere Informationen zu schrittweisen Bereitstellungen von Step Functions finden Sie unter [Manage Continuous Deployments with versions and aliases im AWS Step Functions Developer](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-cd-aliasing-versioning.html) Guide.*  
Geben Sie dies an, `AutoPublishAlias` bevor Sie diese Eigenschaft konfigurieren. Ihre `DeploymentPreference` Einstellungen werden auf den mit angegebenen Alias angewendet`AutoPublishAlias`.  
Wenn Sie angeben`DeploymentPreference`, AWS SAM wird der Wert der `StateMachineVersionArn` Untereigenschaft automatisch generiert.  
*Typ:* [DeploymentPreference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachinealias-deploymentpreference.html)  
*Required*: No  
*CloudFormation Kompatibilität*: AWS SAM generiert den `StateMachineVersionArn` Eigenschaftswert, hängt ihn an `DeploymentPreference` und leitet ihn `DeploymentPreference` an die `[DeploymentPreference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachinealias.html#cfn-stepfunctions-statemachinealias-deploymentpreference)` Eigenschaft einer `AWS::StepFunctions::StateMachineAlias` Ressource weiter. 

 `Events`   <a name="sam-statemachine-events"></a>
Gibt die Ereignisse an, die diese Zustandsmaschine auslösen. Ereignisse bestehen aus einem Typ und einer Reihe von Eigenschaften, die vom Typ abhängen.  
*Typ:* [EventSource](sam-property-statemachine-statemachineeventsource.md)  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

 `Logging`   <a name="sam-statemachine-logging"></a>
Definiert, welche Ereignisse im Ausführungsverlauf protokolliert werden und wo sie protokolliert werden.  
*Typ:* [LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-loggingconfiguration)  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft wird direkt an die `[LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-loggingconfiguration)` Eigenschaft einer `AWS::StepFunctions::StateMachine` Ressource übergeben.

 `Name`   <a name="sam-statemachine-name"></a>
Der Name des Zustandsautomaten.  
*Typ:* Zeichenfolge  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft wird direkt an die `[StateMachineName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-statemachinename)` Eigenschaft einer `AWS::StepFunctions::StateMachine` Ressource übergeben.

 `PermissionsBoundary`   <a name="sam-statemachine-permissionsboundary"></a>
Der ARN einer Berechtigungsgrenze, die für die Ausführungsrolle dieser Zustandsmaschine verwendet werden soll. Diese Eigenschaft funktioniert nur, wenn die Rolle für Sie generiert wurde.  
*Typ:* Zeichenfolge  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft wird direkt an die `[PermissionsBoundary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary)` Eigenschaft einer `AWS::IAM::Role` Ressource übergeben.

 `Policies`   <a name="sam-statemachine-policies"></a>
Berechtigungsrichtlinien für diesen Zustandsmaschine. Richtlinien werden an die standardmäßige Ausführungsrolle AWS Identity and Access Management (IAM) des Zustandsmaschinen angehängt.  
Diese Eigenschaft akzeptiert einen einzelnen Wert oder eine Liste von Werten. Gültige Werte sind:  
+ [AWS SAM Richtlinienvorlagen](serverless-policy-templates.md).
+ Die ARN einer [AWS verwalteten Richtlinie](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) oder einer vom [Kunden verwalteten Richtlinie](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies).
+ Der Name einer AWS verwalteten Richtlinie aus der folgenden [Liste](https://github.com/aws/serverless-application-model/blob/develop/samtranslator/internal/data/aws_managed_policies.json).
+ Eine [Inline-IAM-Richtlinie](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies), die YAML als Map formatiert ist.
Wenn Sie die `Role` Eigenschaft festlegen, wird diese Eigenschaft ignoriert.
*Typ*: Zeichenfolge \| Liste \| Karte  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

`PropagateTags`  <a name="sam-statemachine-propagatetags"></a>
Geben Sie an, ob Tags von der `Tags` Eigenschaft an Ihre [AWS::Serverless::StateMachine](sam-specification-generated-resources-statemachine.md) generierten Ressourcen weitergegeben werden sollen oder nicht. Geben Sie `True` an, dass Tags in Ihren generierten Ressourcen verbreitet werden sollen.  
*Typ*: Boolesch  
*Required*: No  
*Standardwert*: `False`  
*CloudFormation Kompatibilität*: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

 `Role`   <a name="sam-statemachine-role"></a>
Der ARN einer IAM-Rolle, die als Ausführungsrolle dieser Zustandsmaschine verwendet werden soll.  
*Typ:* Zeichenfolge  
*Required*: Conditional  
*CloudFormation Kompatibilität*: Diese Eigenschaft wird direkt an die `[ RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-rolearn)` Eigenschaft einer `AWS::StepFunctions::StateMachine` Ressource übergeben.

 `RolePath`   <a name="sam-statemachine-rolepath"></a>
Der Pfad zur IAM-Ausführungsrolle der Zustandsmaschine.  
Verwenden Sie diese Eigenschaft, wenn die Rolle für Sie generiert wird. Nicht verwenden, wenn die Rolle mit der `Role` Eigenschaft angegeben ist.  
*Typ:* Zeichenfolge  
*Required*: Conditional  
*CloudFormation Kompatibilität*: Diese Eigenschaft wird direkt an die `[Path](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-path)` Eigenschaft einer `AWS::IAM::Role` Ressource übergeben.

 `Tags`   <a name="sam-statemachine-tags"></a>
Eine string-to-string Map, die die zur Zustandsmaschine hinzugefügten Tags und die entsprechende Ausführungsrolle angibt. Informationen zu gültigen Schlüsseln und Werten für Tags finden Sie in der [Tags-Eigenschaft](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tags) einer [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html)Ressource.  
*Typ*: Karte  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft ähnelt der `[Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tags)` Eigenschaft einer `AWS::StepFunctions::StateMachine` Ressource. AWS SAM fügt dieser Ressource und der dafür generierten Standardrolle automatisch ein `stateMachine:createdBy:SAM` Tag hinzu.

 `Tracing`   <a name="sam-statemachine-tracing"></a>
Wählt aus, ob sie für die Zustandsmaschine aktiviert AWS X-Ray ist oder nicht. Weitere Informationen zur Verwendung von X-Ray mit Step Functions finden Sie unter [AWS X-Ray und Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-xray-tracing.html) im *AWS Step Functions Entwicklerhandbuch*.  
*Typ:* [TracingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration)  
*Required*: No  
*CloudFormation Kompatibilität*: Diese Eigenschaft wird direkt an die `[TracingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration)` Eigenschaft einer `AWS::StepFunctions::StateMachine` Ressource übergeben.

 `Type`   <a name="sam-statemachine-type"></a>
Der Typ der Zustandsmaschine.  
*Zulässige Werte*: `STANDARD` oder `EXPRESS`.  
*Typ:* Zeichenfolge  
*Required*: No  
*Standardwert*: `STANDARD`  
*CloudFormation Kompatibilität*: Diese Eigenschaft wird direkt an die `[StateMachineType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-statemachinetype)` Eigenschaft einer `AWS::StepFunctions::StateMachine` Ressource übergeben.

## Rückgabewerte
<a name="sam-resource-statemachine-return-values"></a>

### Punkt
<a name="sam-resource-statemachine-return-values-ref"></a>

Wenn Sie die logische ID dieser Ressource für die intrinsische Funktion Ref angeben, gibt Ref den Amazon-Ressourcennamen (ARN) der zugrunde liegenden `AWS::StepFunctions::StateMachine` Ressource zurück.

Weitere Informationen zur Verwendung der `Ref` Funktion finden Sie [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)im *AWS CloudFormation Benutzerhandbuch*. 

### Fn:: GetAtt
<a name="sam-resource-statemachine-return-values-fn--getatt"></a>

`Fn::GetAtt` gibt einen Wert für ein angegebenes Attribut dieses Typs zurück. Im Folgenden sehen Sie die verfügbaren Attribute und Beispielrückgabewerte. 

Weitere Informationen zur Verwendung `Fn::GetAtt` finden Sie [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html)im *AWS CloudFormation Benutzerhandbuch*. 

`Name`  <a name="Name-fn::getatt"></a>
Gibt den Namen der Zustandsmaschine zurück, z. `HelloWorld-StateMachine` B.

## Beispiele
<a name="sam-resource-statemachine--examples"></a>

### Definitionsdatei für Zustandsmaschinen
<a name="sam-resource-statemachine--examples--state-machine-definition-file"></a>

Im Folgenden finden Sie ein Beispiel für eine Inline-State-Machine-Definition, die es einer Lambda-Funktion ermöglicht, eine Zustandsmaschine aufzurufen. Beachten Sie, dass in diesem Beispiel davon ausgegangen wird, dass die `Role` Eigenschaft die richtige Richtlinie konfiguriert, um den Aufruf zu ermöglichen. Die `my_state_machine.asl.json` Datei muss in der [Sprache der Amazonas-Staaten](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html) verfasst sein.

In diesem Beispiel ermöglichen die `DefinitionSubstitution` Einträge der Zustandsmaschine, Ressourcen einzubeziehen, die in der AWS SAM Vorlagendatei deklariert sind.

#### YAML
<a name="sam-resource-statemachine--examples--state-machine-definition-file--yaml"></a>

```
MySampleStateMachine:
  Type: AWS::Serverless::StateMachine
  Properties:
    DefinitionUri: statemachine/my_state_machine.asl.json
    Role: arn:aws:iam::123456123456:role/service-role/my-sample-role
    Tracing:
      Enabled: true
    DefinitionSubstitutions:
      MyFunctionArn: !GetAtt MyFunction.Arn
      MyDDBTable: !Ref TransactionTable
```

### Definition von Inline-Zustandsmaschinen
<a name="sam-resource-statemachine--examples--inline-state-machine-definition"></a>

Im Folgenden finden Sie ein Beispiel für eine Inline-State-Machine-Definition.

In diesem Beispiel ist die AWS SAM Vorlagendatei in YAML geschrieben, sodass die Zustandsmaschinen-Definition auch in YAML geschrieben ist. Um eine Inline-State-Machine-Definition in JSON zu deklarieren, schreiben Sie Ihre AWS SAM Vorlagendatei in JSON.

#### YAML
<a name="sam-resource-statemachine--examples--inline-state-machine-definition--yaml"></a>

```
MySampleStateMachine:
  Type: AWS::Serverless::StateMachine
  Properties:
    Definition:
      StartAt: MyLambdaState
      States:
        MyLambdaState:
          Type: Task
          Resource: arn:aws:lambda:us-east-1:123456123456:function:my-sample-lambda-app
          End: true
    Role: arn:aws:iam::123456123456:role/service-role/my-sample-role
    Tracing:
      Enabled: true
```