

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
<a name="sam-resource-statemachine"></a>

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 ](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html).

**Nota**  
Quando lo distribuisci su AWS CloudFormation, AWS SAM trasforma le tue risorse in risorse. AWS SAM CloudFormation Per ulteriori informazioni, consulta [CloudFormation Risorse generate per AWS SAM](sam-specification-generated-resources.md).

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

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

### 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}}
```

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

 `AutoPublishAlias`   <a name="sam-statemachine-autopublishalias"></a>
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](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-cd-aliasing-versioning.html) nella Developer Guide.AWS Step Functions *  
Utilizzalo `DeploymentPreference` per configurare le preferenze di distribuzione per il tuo alias. Se non lo specifichi`DeploymentPreference`, 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  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla ` [ Name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachinealias.html#cfn-stepfunctions-statemachinealias-name)` proprietà di una `AWS::StepFunctions::StateMachineAlias` risorsa.

 `UseAliasAsEventTarget`   <a name="sam-statemachine-usealiasaseventtarget"></a>
Indica se passare o meno l'alias, creato utilizzando la `AutoPublishAlias` proprietà, alla destinazione dell'origine degli eventi definita con [Events](#sam-statemachine-events).  
`True`Specificare di utilizzare l'alias come destinazione degli eventi.  
*Tipo*: Booleano  
*Obbligatorio:* no  
*Default*: `False`  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

 `Definition`   <a name="sam-statemachine-definition"></a>
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](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html).  
Per un esempio di definizione di macchina a stati in linea, vedere. [Esempi](#sam-resource-statemachine--examples)  
È necessario fornire un `Definition` o un`DefinitionUri`.  
*Tipo*: Mappa  
*Required*: Conditional  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

 `DefinitionSubstitutions`   <a name="sam-statemachine-definitionsubstitutions"></a>
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*  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà è simile alla `[DefinitionSubstitutions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-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`   <a name="sam-statemachine-definitionuri"></a>
L'URI di Amazon Simple Storage Service (Amazon S3) o il percorso del file locale della definizione della macchina a stati scritta in [Amazon](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html) 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 un`Definition`. `DefinitionUri`  
*Tipo*: String \| [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitions3location)  
*Required*: Conditional  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[DefinitionS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitions3location)` proprietà di una `AWS::StepFunctions::StateMachine` risorsa.

 `DeploymentPreference`   <a name="sam-statemachine-deploymentpreference"></a>
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](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-cd-aliasing-versioning.html) nella Developer Guide.AWS Step Functions *  
Specificare prima di configurare questa proprietà. `AutoPublishAlias` `DeploymentPreference`Le impostazioni verranno applicate all'alias specificato con. `AutoPublishAlias`  
Quando si specifica`DeploymentPreference`, AWS SAM genera automaticamente il valore della `StateMachineVersionArn` sottoproprietà.  
*Tipo:* [DeploymentPreference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachinealias-deploymentpreference.html)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: AWS SAM genera e attribuisce il valore della `StateMachineVersionArn` proprietà `DeploymentPreference` e lo passa `DeploymentPreference` alla `[DeploymentPreference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachinealias.html#cfn-stepfunctions-statemachinealias-deploymentpreference)` proprietà di una `AWS::StepFunctions::StateMachineAlias` risorsa. 

 `Events`   <a name="sam-statemachine-events"></a>
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](sam-property-statemachine-statemachineeventsource.md)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

 `Logging`   <a name="sam-statemachine-logging"></a>
Definisce quali eventi della cronologia di esecuzione vengono registrati e dove vengono registrati.  
*Tipo:* [LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-loggingconfiguration)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-loggingconfiguration)` proprietà di una `AWS::StepFunctions::StateMachine` risorsa.

 `Name`   <a name="sam-statemachine-name"></a>
Il nome della macchina a stati.  
▬*Tipo:* stringa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[StateMachineName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-statemachinename)` proprietà di una `AWS::StepFunctions::StateMachine` risorsa.

 `PermissionsBoundary`   <a name="sam-statemachine-permissionsboundary"></a>
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  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[PermissionsBoundary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary)` proprietà di una `AWS::IAM::Role` risorsa.

 `Policies`   <a name="sam-statemachine-policies"></a>
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:  
+ [AWS SAM modelli di policy](serverless-policy-templates.md).
+ ARNDi una [politica AWS gestita o di una politica](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) [gestita dal cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies).
+ Il nome di una politica AWS gestita dall'[elenco](https://github.com/aws/serverless-application-model/blob/develop/samtranslator/internal/data/aws_managed_policies.json) seguente.
+ Una [politica IAM in linea](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies) formattata YAML come mappa.
Se si imposta la `Role` proprietà, questa proprietà viene ignorata.
*Tipo*: Stringa \| Elenco \| Mappa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: Questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

`PropagateTags`  <a name="sam-statemachine-propagatetags"></a>
Indica se passare o meno i tag dalla `Tags` proprietà alle risorse [AWS::Serverless::StateMachine](sam-specification-generated-resources-statemachine.md) generate. `True`Specificate di propagare i tag nelle risorse generate.  
*Tipo*: Booleano  
*Obbligatorio:* no  
*Default*: `False`  
*CloudFormation compatibilità*: questa proprietà è unica AWS SAM e non ha un CloudFormation equivalente.

 `Role`   <a name="sam-statemachine-role"></a>
L'ARN di un ruolo IAM da utilizzare come ruolo di esecuzione di questa macchina a stati.  
▬*Tipo:* stringa  
*Required*: Conditional  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[ RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-rolearn)` proprietà di una `AWS::StepFunctions::StateMachine` risorsa.

 `RolePath`   <a name="sam-statemachine-rolepath"></a>
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  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[Path](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-path)` proprietà di una `AWS::IAM::Role` risorsa.

 `Tags`   <a name="sam-statemachine-tags"></a>
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](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tags) di una [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)risorsa.  
*Tipo*: Mappa  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà è simile alla `[Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-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`   <a name="sam-statemachine-tracing"></a>
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](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-xray-tracing.html) nella *AWS Step Functions Developer* Guide.  
*Tipo:* [TracingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration)  
*Obbligatorio:* no  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[TracingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration)` proprietà di una `AWS::StepFunctions::StateMachine` risorsa.

 `Type`   <a name="sam-statemachine-type"></a>
Il tipo di macchina a stati.  
*Valori validi*: `STANDARD` o `EXPRESS`  
▬*Tipo:* stringa  
*Obbligatorio:* no  
*Default*: `STANDARD`  
*CloudFormation compatibilità*: questa proprietà viene passata direttamente alla `[StateMachineType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-statemachinetype)` proprietà di una `AWS::StepFunctions::StateMachine` risorsa.

## Valori restituiti
<a name="sam-resource-statemachine-return-values"></a>

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

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 [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)la Guida per l'AWS CloudFormation utente.* 

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

`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'utilizzo`Fn::GetAtt`, consulta [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)la *Guida per l'AWS CloudFormation utente*. 

`Name`  <a name="Name-fn::getatt"></a>
Restituisce il nome della macchina a stati, ad esempio`HelloWorld-StateMachine`.

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

### File di definizione della macchina a stati
<a name="sam-resource-statemachine--examples--state-machine-definition-file"></a>

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](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html).

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

#### 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
```

### Definizione della macchina a stati in linea
<a name="sam-resource-statemachine--examples--inline-state-machine-definition"></a>

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
<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
```