

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# AWS Step Functions invoquer une référence d'action
<a name="action-reference-StepFunctions"></a>

Une AWS CodePipeline action qui effectue les opérations suivantes :
+ Démarre l'exécution AWS Step Functions d'une machine à états à partir de votre pipeline.
+ Fournit un état initial à la machine d'état via une propriété dans la configuration de l'action ou un fichier situé dans un artefact de pipeline à transmettre en entrée.
+ Définit éventuellement un préfixe d'ID d'exécution pour identifier les exécutions provenant de l'action.
+ Prend en charge les machines d’état [Standard et Express](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html) .

**Note**  
L'action Step Functions s'exécute sur Lambda, et ses quotas de taille d'artefact sont donc les mêmes que ceux des fonctions Lambda. Pour plus d'informations, consultez la section [Quotas Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html) dans le guide du développeur Lambda.

## Type d'action
<a name="action-reference-StepFunctions-type"></a>
+ Catégorie : `Invoke`
+ Propriétaire : `AWS`
+ Fournisseur : `StepFunctions`
+ Version : `1`

## Paramètres de configuration
<a name="action-reference-StepFunctions-config"></a>

**StateMachineArn**  
Obligatoire : oui  
ARN (Amazon Resource Name) de la machine d'état à appeler.

**ExecutionNamePrefix**  
Obligatoire : non  
Par défaut, l'ID d'exécution de l'action est utilisé comme nom d'exécution de la machine d'état. Si un préfixe est fourni, il est ajouté à l'ID d'exécution de l'action avec un trait d'union et utilisé conjointement comme nom d'exécution de la machine d'état.  

```
myPrefix-1624a1d1-3699-43f0-8e1e-6bafd7fde791
```
Pour une machine d’état Express, le nom doit uniquement contenir 0-9, A-Z, a-z, - et \$1.

**InputType**  
Obligatoire : non  
+ **Littéral** (par défaut) : lorsqu'elle est spécifiée, la valeur du champ **Entrée** est transmise directement à l'entrée de la machine d'état.

  Exemple d'entrée pour le champ **Entrée** lorsque **Littéral** est sélectionné :

  ```
  {"action": "test"}
  ```
+ **FilePath**: Le contenu d'un fichier dans l'artefact d'entrée spécifié par le champ **Entrée** est utilisé comme entrée pour l'exécution de la machine à états. Un artefact d'entrée est requis lorsqu'il **InputType**est défini sur. **FilePath**

  Exemple d'entrée pour le champ de **saisie** lorsqu'il **FilePath**est sélectionné :

  ```
  assets/input.json
  ```

**Input**  
Obligatoire : Conditionnelle  
+ **Littéral** : lorsqu'il **InputType**est défini sur **Littéral** (par défaut), ce champ est facultatif. 

  S'il est renseigné, le champ **Entrée** est utilisé directement comme entrée pour l'exécution de la machine d'état. Sinon, la machine d'état est appelée avec un objet JSON `{}` vide.
+ **FilePath**: Lorsque ce champ **InputType**est défini sur **FilePath**, ce champ est obligatoire.

  Un artefact d'entrée est également requis lorsqu'il **InputType**est défini sur. **FilePath**

  Le contenu du fichier dans l'artefact d'entrée spécifié est utilisé comme entrée pour l'exécution de la machine d'état.

## Artefacts d'entrée
<a name="action-reference-StepFunctions-input"></a>
+ **Nombre d'objets :** `0 to 1`
+ **Description :** S'il **InputType**est défini sur **FilePath**, cet artefact est obligatoire et est utilisé pour obtenir l'entrée pour l'exécution de la machine à états.

## Artefacts de sortie
<a name="action-reference-StepFunctions-output"></a>
+ **Nombre d'objets :** `0 to 1` 
+ **Description :**
  + **Machines d'état standard**: s'il est fourni, l'artefact de sortie est renseigné avec la sortie de la machine d'état. Ceci est obtenu à partir de la `output` propriété de la réponse de l'[ DescribeExecution API Step Functions](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeExecution.html) une fois que l'exécution de la machine à états s'est terminée avec succès.
  + **Machines d'état Express** : non prises en charge.

## Variables de sortie
<a name="action-reference-StepFunctions-variables"></a>

Cette action produit des variables de sortie qui peuvent être référencées par la configuration d'action d'une action en aval dans le pipeline.

Pour de plus amples informations, veuillez consulter [Référence aux variables](reference-variables.md).

**StateMachineArn**  
ARN de la machine d'état.

**ExecutionArn**  
ARN de l'exécution de la machine d'état. Machines d'état standard uniquement.

## Autorisations relatives aux rôles de service : `StepFunctions` action
<a name="edit-role-stepfunctions"></a>

En ce qui `StepFunctions` concerne l'action, les autorisations minimales requises pour créer des pipelines avec une action d'appel Step Functions sont les suivantes.

```
{
    "Effect": "Allow",
    "Action": [
        "states:DescribeStateMachine",
        "states:DescribeExecution",
        "states:StartExecution"
    ],
    "Resource": "resource_ARN"
},
```

## Exemple de configuration d'action
<a name="action-reference-StepFunctions-example"></a>

### Exemple pour l'entrée par défaut
<a name="action-reference-StepFunctions-example-default"></a>

------
#### [ YAML ]

```
Name: ActionName
ActionTypeId:
  Category: Invoke
  Owner: AWS
  Version: 1
  Provider: StepFunctions
OutputArtifacts:
  - Name: myOutputArtifact
Configuration:
  StateMachineArn: arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine
  ExecutionNamePrefix: my-prefix
```

------
#### [ JSON ]

```
{
    "Name": "ActionName",
    "ActionTypeId": {
        "Category": "Invoke",
        "Owner": "AWS",
        "Version": 1,
        "Provider": "StepFunctions"
    },
    "OutputArtifacts": [
        {
            "Name": "myOutputArtifact"
        }
    ],
    "Configuration": {
        "StateMachineArn": "arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine",
        "ExecutionNamePrefix": "my-prefix"
    }
}
```

------

### Exemple pour l'entrée littérale
<a name="action-reference-StepFunctions-example-literal"></a>

------
#### [ YAML ]

```
Name: ActionName
ActionTypeId:
  Category: Invoke
  Owner: AWS
  Version: 1
  Provider: StepFunctions
OutputArtifacts:
  - Name: myOutputArtifact
Configuration:
  StateMachineArn: arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine
  ExecutionNamePrefix: my-prefix
  Input: '{"action": "test"}'
```

------
#### [ JSON ]

```
{
    "Name": "ActionName",
    "ActionTypeId": {
        "Category": "Invoke",
        "Owner": "AWS",
        "Version": 1,
        "Provider": "StepFunctions"
    },
    "OutputArtifacts": [
        {
            "Name": "myOutputArtifact"
        }
    ],
    "Configuration": {
        "StateMachineArn": "arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine",
        "ExecutionNamePrefix": "my-prefix",
        "Input": "{\"action\": \"test\"}"
    }
}
```

------

### Exemple pour le fichier d'entrée
<a name="action-reference-StepFunctions-example-filepath"></a>

------
#### [ YAML ]

```
Name: ActionName
InputArtifacts:
  - Name: myInputArtifact
ActionTypeId:
  Category: Invoke
  Owner: AWS
  Version: 1
  Provider: StepFunctions
OutputArtifacts:
  - Name: myOutputArtifact
Configuration:
  StateMachineArn: 'arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine'
  ExecutionNamePrefix: my-prefix
  InputType: FilePath
  Input: assets/input.json
```

------
#### [ JSON ]

```
{
    "Name": "ActionName",
    "InputArtifacts": [
        {
            "Name": "myInputArtifact"
        }
    ],
    "ActionTypeId": {
        "Category": "Invoke",
        "Owner": "AWS",
        "Version": 1,
        "Provider": "StepFunctions"
    },
    "OutputArtifacts": [
        {
            "Name": "myOutputArtifact"
        }
    ],
    "Configuration": {
        "StateMachineArn": "arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine",
        "ExecutionNamePrefix": "my-prefix",
        "InputType": "FilePath",
        "Input": "assets/input.json"
    }
}
```

------

## Comportement
<a name="action-reference-StepFunctions-types"></a>

Au cours d'une version, CodePipeline exécute la machine à états configurée à l'aide de l'entrée spécifiée dans la configuration de l'action.

Lorsqu'il **InputType**est défini sur **Literal**, le contenu du champ de configuration de l'action **d'entrée** est utilisé comme entrée pour la machine à états. Lorsque l'entrée littérale n'est pas fournie, l'exécution de la machine d'état utilise un objet JSON `{}` vide. Pour plus d'informations sur l'exécution d'une exécution par machine à états sans saisie, consultez l'[ StartExecutionAPI Step Functions](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html).

Lorsque **InputType**ce paramètre est défini sur **FilePath**, l'action décompresse l'artefact d'entrée et utilise le contenu du fichier spécifié dans le champ Configuration de l'action **d'entrée** comme entrée pour la machine à états. Lorsqu'il **FilePath**est spécifié, le champ de **saisie** est obligatoire et un artefact d'entrée doit exister ; sinon, l'action échoue.

Après un démarrage d’exécution réussi, le comportement diverge pour les deux types de machines d'état, *standard* et *express*.

### Machines d'état standard
<a name="action-reference-StepFunctions-types-standard"></a>

Si l'exécution de la machine à états standard a démarré avec succès, CodePipeline interroge l'`DescribeExecution`API jusqu'à ce que l'exécution atteigne le statut de terminal. Si l'exécution se termine correctement, l'action réussit ; sinon, elle échoue.

Si un artefact de sortie est configuré, l'artefact contiendra la valeur de retour de la machine d'état. Ceci est obtenu à partir de la `output` propriété de la réponse de l'[ DescribeExecution API Step Functions](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeExecution.html) une fois que l'exécution de la machine à états s'est terminée avec succès. Remarque : des contraintes de longueur de sortie sont appliquées sur cette API.

#### Gestion des erreurs
<a name="action-reference-StepFunctions-types-standard-handling"></a>
+ Si l'action ne parvient pas à démarrer l'exécution d'une machine d'état, l'exécution de l'action échoue.
+ Si l'exécution de la machine à états ne parvient pas à atteindre le statut de terminal avant que l'action CodePipeline Step Functions n'atteigne son délai d'expiration (7 jours par défaut), l'exécution de l'action échoue. La machine d'état peut continuer malgré cet échec. Pour plus d'informations sur les délais d'exécution des machines à états dans Step Functions, voir [Standard vs. Express Workflows](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html).
**Note**  
Vous pouvez demander une augmentation du quota pour le délai d'expiration de l'action d'appel pour le compte avec l'action. Toutefois, l'augmentation du quota s'applique à toutes les actions de ce type dans toutes les régions pour ce compte.
+ Si l'exécution de la machine d'état atteint un statut terminal de FAILED, TIMED\$1OUT ou ABORTED, l'exécution de l'action échoue.

### Machines d'état express
<a name="action-reference-StepFunctions-types-express"></a>

Si l'exécution de la machine d'état express a été démarrée avec succès, l'exécution de l'action d'appel se termine avec succès.

Considérations relatives aux actions configurées pour les machines d’état express :
+ Vous ne pouvez pas désigner un artefact de sortie.
+ L'action n'attend pas la fin de l'exécution de la machine d'état.
+ Une fois l'exécution de l'action démarrée CodePipeline, l'exécution de l'action réussit même si l'exécution de la machine à états échoue.

#### Gestion des erreurs
<a name="action-reference-StepFunctions-types-express-handling"></a>
+ Si CodePipeline l'exécution d'une machine à états échoue, l'exécution de l'action échoue. Sinon, l'action réussit immédiatement. L'action réussit CodePipeline quel que soit le temps nécessaire à l'exécution de la machine à états ou son résultat.

## Consultez aussi
<a name="action-reference-StepFunctions-links"></a>

Les ressources connexes suivantes peuvent s'avérer utiles dans le cadre de l'utilisation de cette action.
+ [AWS Step Functions Guide du développeur](https://docs.aws.amazon.com/step-functions/latest/dg/) — Pour plus d'informations sur les machines à états, les exécutions et les entrées pour les machines à états, consultez le *guide du AWS Step Functions développeur*.
+ [Tutoriel : Utiliser une AWS Step Functions action d'appel dans un pipeline](tutorials-step-functions.md)— Ce didacticiel vous permet de démarrer avec un exemple de machine à états standard et vous montre comment utiliser la console pour mettre à jour un pipeline en ajoutant une action d'appel Step Functions.