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

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AWS::Serverless::StateMachine

Crea una macchina a AWS Step Functions stati, che puoi utilizzare per orchestrare AWS Lambda funzioni e altre AWS risorse per formare flussi di lavoro complessi e robusti.

Per ulteriori informazioni su Step Functions, consulta la AWS Step Functions Guida per sviluppatori di .

Nota

Quando lo distribuisci su AWS CloudFormation, AWS SAM trasforma le tue risorse in risorse. AWS SAM AWS CloudFormation Per ulteriori informazioni, consulta AWS CloudFormationRisorse generate.

Sintassi

Per dichiarare questa entità nel tuo modello AWS Serverless Application Model (AWS SAM), usa la seguente sintassi.

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

Proprietà

AutoPublishAlias

Il nome dell'alias della macchina a stati. Per ulteriori informazioni sull'utilizzo degli alias delle macchine a stati Step Functions, consulta Gestire le distribuzioni continue con versioni e alias nella Developer Guide.AWS Step Functions

Utilizzalo DeploymentPreference per configurare le preferenze di distribuzione per il tuo alias. Se non lo specifichiDeploymentPreference, AWS SAM configurerà il traffico in modo che passi alla versione più recente della macchina a stati contemporaneamente.

AWS SAM imposta la versione DeletionPolicy e la versione UpdateReplacePolicy di Retain default. Le versioni precedenti non verranno eliminate automaticamente.

Tipo: stringa

Required: No

AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla Name proprietà di una AWS::StepFunctions::StateMachineAlias risorsa.

Definition

La definizione della macchina a stati è un oggetto, in cui il formato dell'oggetto corrisponde al formato del file AWS SAM modello, ad esempio JSON o YAML. Le definizioni delle macchine a stati aderiscono ad Amazon States Language.

Per un esempio di definizione di macchina a stati in linea, vedere. Esempi

È necessario fornire un Definition o unDefinitionUri.

Tipo: Mappa

Required: Conditional

AWS CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente.

DefinitionSubstitutions

Una string-to-string mappa che specifica le mappature per le variabili segnaposto nella definizione della macchina a stati. Ciò consente di inserire i valori ottenuti in fase di esecuzione (ad esempio, da funzioni intrinseche) nella definizione della macchina a stati.

Tipo: Mappa

Required: No

AWS CloudFormation compatibilità: questa proprietà è simile alla DefinitionSubstitutions proprietà di una AWS::StepFunctions::StateMachine risorsa. Se vengono specificate funzioni intrinseche in una definizione di macchina a stati in linea, AWS SAM aggiunge voci a questa proprietà per inserirle nella definizione della macchina a stati.

DefinitionUri

L'URI di Amazon Simple Storage Service (Amazon S3) o il percorso del file locale della definizione della macchina a stati scritta in Amazon States Language.

Se fornisci un percorso di file locale, il modello deve passare attraverso il flusso di lavoro che include il sam package comando sam deploy o per trasformare correttamente la definizione. A tale scopo, è necessario utilizzare la versione 0.52.0 o successiva della CLI AWS SAM .

È necessario fornire un o unDefinition. DefinitionUri

Tipo: String | S3Location

Required: Conditional

AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla DefinitionS3Location proprietà di una AWS::StepFunctions::StateMachine risorsa.

DeploymentPreference

Le impostazioni che abilitano e configurano l'implementazione graduale di macchine a stati. Per ulteriori informazioni sulle distribuzioni graduali di Step Functions, consulta Manage continuous deployments with versions and alias nella Developer Guide.AWS Step Functions

Specificare prima di configurare questa proprietà. AutoPublishAlias DeploymentPreferenceLe impostazioni verranno applicate all'alias specificato con. AutoPublishAlias

Quando si specificaDeploymentPreference, AWS SAM genera automaticamente il valore della StateMachineVersionArn sottoproprietà.

Tipo: DeploymentPreference

Required: No

AWS CloudFormation compatibilità: AWS SAM genera e attribuisce il valore della StateMachineVersionArn proprietà DeploymentPreference e lo passa DeploymentPreference alla DeploymentPreference proprietà di una AWS::StepFunctions::StateMachineAlias risorsa.

Events

Speciifica gli eventi che attivano questa macchina a stati. Gli eventi sono costituiti da un tipo e da un insieme di proprietà che dipendono dal tipo.

Tipo: EventSource

Required: No

AWS CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente.

Logging

Definisce quali eventi della cronologia di esecuzione vengono registrati e dove vengono registrati.

Tipo: LoggingConfiguration

Required: No

AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla LoggingConfiguration proprietà di una AWS::StepFunctions::StateMachine risorsa.

Name

Il nome della macchina a stati.

Tipo: stringa

Required: No

AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla StateMachineName proprietà di una AWS::StepFunctions::StateMachine risorsa.

PermissionsBoundary

L'ARN di un limite di autorizzazioni da utilizzare per il ruolo di esecuzione di questa macchina a stati. Questa proprietà funziona solo se il ruolo viene generato automaticamente.

Tipo: stringa

Required: No

AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla PermissionsBoundary proprietà di una AWS::IAM::Role risorsa.

Policies

Politiche di autorizzazione per questa macchina a stati. Le politiche verranno aggiunte al ruolo di esecuzione predefinito AWS Identity and Access Management (IAM) della macchina a stati.

Questa proprietà accetta un singolo valore o un elenco di valori. I valori autorizzati includono:

Nota

Se si imposta la Role proprietà, questa proprietà viene ignorata.

Tipo: Stringa | Elenco | Mappa

Required: No

AWS CloudFormation compatibilità: Questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente.

PropagateTags

Indica se passare o meno i tag dalla Tags proprietà alle risorse AWS::Serverless::StateMachine generate. TrueSpecificate di propagare i tag nelle risorse generate.

Tipo: Booleano

Required: No

Default: False

AWS CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente.

Role

L'ARN di un ruolo IAM da utilizzare come ruolo di esecuzione di questa macchina a stati.

Tipo: stringa

Required: Conditional

AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla RoleArn proprietà di una AWS::StepFunctions::StateMachine risorsa.

RolePath

Il percorso del ruolo di esecuzione IAM della macchina a stati.

Usa questa proprietà quando il ruolo viene generato per te. Non utilizzare quando il ruolo è specificato con la Role proprietà.

Tipo: stringa

Required: Conditional

AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla Path proprietà di una AWS::IAM::Role risorsa.

Tags

Una string-to-string mappa che specifica i tag aggiunti alla macchina a stati e il ruolo di esecuzione corrispondente. Per informazioni sulle chiavi e i valori validi per i tag, vedete la proprietà Tags di una AWS::StepFunctions::StateMachinerisorsa.

Tipo: Mappa

Required: No

AWS CloudFormation compatibilità: questa proprietà è simile alla Tags proprietà di una AWS::StepFunctions::StateMachine risorsa. AWS SAM aggiunge automaticamente un stateMachine:createdBy:SAM tag a questa risorsa e al ruolo predefinito generato per essa.

Tracing

Seleziona se AWS X-Ray è abilitato o meno per la macchina a stati. Per ulteriori informazioni sull'utilizzo di X-Ray con Step Functions, vedere AWS X-Ray Step Functions nella AWS Step Functions Developer Guide.

Tipo: TracingConfiguration

Required: No

AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla TracingConfiguration proprietà di una AWS::StepFunctions::StateMachine risorsa.

Type

Il tipo di macchina a stati.

Valori validi: STANDARD o EXPRESS

Tipo: stringa

Required: No

Default: STANDARD

AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla StateMachineType proprietà di una AWS::StepFunctions::StateMachine risorsa.

Valori restituiti

Ref

Quando fornisci l'ID logico di questa risorsa alla funzione intrinseca Ref, Ref restituisce l'Amazon Resource Name (ARN) della risorsa sottostante. AWS::StepFunctions::StateMachine

Per ulteriori informazioni sull'uso della Ref funzione, consulta Refla Guida per l'AWS CloudFormation utente.

Fn: GetAtt

Fn::GetAtt restituisce un valore per un attributo specificato di questo tipo. Di seguito sono riportati gli attributi disponibili e i valori restituiti di esempio.

Per ulteriori informazioni sull'utilizzoFn::GetAtt, consulta Fn::GetAttla Guida per l'AWS CloudFormation utente.

Name

Restituisce il nome della macchina a stati, ad esempioHelloWorld-StateMachine.

Esempi

File di definizione della macchina a stati

Di seguito è riportato un esempio di definizione di macchina a stati in linea che consente a una funzione lambda di richiamare una macchina a stati. Si noti che questo esempio prevede che la Role proprietà configuri una politica appropriata per consentire l'invocazione. Il my_state_machine.asl.json file deve essere scritto in Amazon States Language.

In questo esempio, le DefinitionSubstitution voci consentono alla macchina a stati di includere risorse dichiarate nel file AWS SAM modello.

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

Definizione della macchina a stati in linea

Di seguito è riportato un esempio di definizione di macchina a stati in linea.

In questo esempio, il file AWS SAM modello è scritto in YAML, quindi anche la definizione della macchina a stati è in YAML. Per dichiarare una definizione di macchina a stati in linea in JSON, scrivi il file modello in JSON. AWS SAM

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