AWS::Serverless::StateMachine - AWS Serverless Application Model

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

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.

Anmerkung

Bei der Bereitstellung werden AWS CloudFormation Ihre AWS SAM Ressourcen in Ressourcen umgewandelt AWS CloudFormation . AWS SAM Weitere Informationen finden Sie unter Generierte AWS CloudFormation Ressourcen.

Syntax

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

YAML

Type: AWS::Serverless::StateMachine Properties: AutoPublishAlias: String Definition: Map DefinitionSubstitutions: Map DefinitionUri: String | S3Location DeploymentPreference: DeploymentPreference Events: EventSource Logging: LoggingConfiguration Name: String PermissionsBoundary: String Policies: String | List | Map PropagateTags: Boolean RolePath: String Role: String Tags: Map Tracing: TracingConfiguration Type: String

Eigenschaften

AutoPublishAlias

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 Guide.

Wird verwendetDeploymentPreference, um die Bereitstellungseinstellungen für Ihren Alias zu konfigurieren. Wenn Sie nichts angebenDeploymentPreference, 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

AWS CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die Name Eigenschaft einer AWS::StepFunctions::StateMachineAlias Ressource übergeben.

Definition

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.

Ein Beispiel für eine Inline-State-Machine-Definition finden Sie unterBeispiele.

Sie müssen entweder a Definition oder a angebenDefinitionUri.

Typ: Karte

Required: Conditional

AWS CloudFormation Kompatibilität: Diese Eigenschaft ist einzigartig AWS SAM und hat kein AWS CloudFormation Äquivalent.

DefinitionSubstitutions

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

AWS CloudFormation Kompatibilität: Diese Eigenschaft ähnelt der DefinitionSubstitutions Eigenschaft einer AWS::StepFunctions::StateMachine Ressource. Wenn in einer Inline-Zustandsmaschinen-Definition systeminterne Funktionen angegeben sind, AWS SAM fügt dieser Eigenschaft Einträge hinzu, um sie in die Zustandsmaschinen-Definition einzufügen.

DefinitionUri

Die Amazon Simple Storage Service (Amazon S3) -URI oder der lokale Dateipfad der Zustandsmaschinen-Definition, geschrieben in der Sprache Amazon States.

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

Required: Conditional

AWS CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die DefinitionS3Location Eigenschaft einer AWS::StepFunctions::StateMachine Ressource übergeben.

DeploymentPreference

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 Guide.

Geben Sie dies an, AutoPublishAlias bevor Sie diese Eigenschaft konfigurieren. Ihre DeploymentPreference Einstellungen werden auf den mit angegebenen Alias angewendetAutoPublishAlias.

Wenn Sie angebenDeploymentPreference, AWS SAM wird der Wert der StateMachineVersionArn Untereigenschaft automatisch generiert.

Typ: DeploymentPreference

Required: No

AWS CloudFormation Kompatibilität: AWS SAM generiert den StateMachineVersionArn Eigenschaftswert einer Ressource, hängt ihn an DeploymentPreference und leitet DeploymentPreference ihn an die DeploymentPreference Eigenschaft einer AWS::StepFunctions::StateMachineAlias Ressource weiter.

Events

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

Required: No

AWS CloudFormation Kompatibilität: Diese Eigenschaft ist einzigartig AWS SAM und hat kein AWS CloudFormation Äquivalent.

Logging

Definiert, welche Ereignisse im Ausführungsverlauf protokolliert werden und wo sie protokolliert werden.

Typ: LoggingConfiguration

Required: No

AWS CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die LoggingConfiguration Eigenschaft einer AWS::StepFunctions::StateMachine Ressource übergeben.

Name

Der Name des Zustandsautomaten.

Typ: Zeichenfolge

Required: No

AWS CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die StateMachineName Eigenschaft einer AWS::StepFunctions::StateMachine Ressource übergeben.

PermissionsBoundary

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

AWS CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die PermissionsBoundary Eigenschaft einer AWS::IAM::Role Ressource übergeben.

Policies

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:

Anmerkung

Wenn Sie die Role Eigenschaft festlegen, wird diese Eigenschaft ignoriert.

Typ: Zeichenfolge | Liste | Karte

Required: No

AWS CloudFormation Kompatibilität: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein AWS CloudFormation Äquivalent.

PropagateTags

Geben Sie an, ob Tags von der Tags Eigenschaft an Ihre AWS::Serverless::StateMachine 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

AWS CloudFormation Kompatibilität: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein AWS CloudFormation Äquivalent.

Role

Der ARN einer IAM-Rolle, die als Ausführungsrolle dieser Zustandsmaschine verwendet werden soll.

Typ: Zeichenfolge

Required: Conditional

AWS CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die RoleArn Eigenschaft einer AWS::StepFunctions::StateMachine Ressource übergeben.

RolePath

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

AWS CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die Path Eigenschaft einer AWS::IAM::Role Ressource übergeben.

Tags

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 einer AWS::StepFunctions::StateMachineRessource.

Typ: Karte

Required: No

AWS CloudFormation Kompatibilität: Diese Eigenschaft ähnelt der Tags Eigenschaft einer AWS::StepFunctions::StateMachine Ressource. AWS SAM fügt dieser Ressource und der Standardrolle, die für sie generiert wurde, automatisch ein stateMachine:createdBy:SAM Tag hinzu.

Tracing

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 im AWS Step Functions Entwicklerhandbuch.

Typ: TracingConfiguration

Required: No

AWS CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die TracingConfiguration Eigenschaft einer AWS::StepFunctions::StateMachine Ressource übergeben.

Type

Der Typ der Zustandsmaschine.

Zulässige Werte: STANDARD oder EXPRESS.

Typ: Zeichenfolge

Required: No

Standardwert: STANDARD

AWS CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die StateMachineType Eigenschaft einer AWS::StepFunctions::StateMachine Ressource übergeben.

Rückgabewerte

Punkt

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 Refim AWS CloudFormation Benutzerhandbuch.

Fn:: GetAtt

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 Fn::GetAttim AWS CloudFormation Benutzerhandbuch.

Name

Gibt den Namen der Zustandsmaschine zurück, z. HelloWorld-StateMachine B.

Beispiele

Definitionsdatei für Zustandsmaschinen

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 verfasst sein.

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

YAML

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 einer Inline-Zustandsmaschine

Das Folgende ist ein Beispiel für eine Inline-State-Machine-Definition.

In diesem Beispiel ist die AWS SAM Vorlagendatei in YAML geschrieben, sodass die State-Machine-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

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