

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.

# Limitations
<a name="pipelines-step-decorator-limit"></a>

Les sections suivantes décrivent les limites dont vous devez tenir compte lorsque vous utilisez le décorateur `@step` pour les étapes de votre pipeline.

## Limites des arguments des fonctions
<a name="pipelines-step-decorator-arg"></a>

Lorsque vous transmettez un argument d’entrée à la fonction décorée avec `@step`, les limites suivantes s’appliquent :
+ Vous pouvez transmettre les objets `DelayedReturn`, `Properties` (d’étapes d’autres types), `Parameter` et `ExecutionVariable` aux fonctions décorées avec `@step` en tant qu’arguments. Mais les fonctions décorées avec `@step` ne prennent pas en charge les objets `JsonGet` et `Join` en tant qu’arguments.
+ Vous ne pouvez pas accéder directement à une variable de pipeline à partir d’une fonction `@step`. L’exemple suivant génère une erreur :

  ```
  param = ParameterInteger(name="<parameter-name>", default_value=10)
  
  @step
  def func():
      print(param)
  
  func() # this raises a SerializationError
  ```
+ Vous ne pouvez pas imbriquer une variable de pipeline dans un autre objet et la transmettre à une fonction `@step`. L’exemple suivant génère une erreur :

  ```
  param = ParameterInteger(name="<parameter-name>", default_value=10)
  
  @step
  def func(arg):
      print(arg)
  
  func(arg=(param,)) # this raises a SerializationError because param is nested in a tuple
  ```
+ Les entrées et sorties d’une fonction étant sérialisées, le type de données pouvant être transmis en entrée ou en sortie à partir d’une fonction est soumis à des restrictions. Consultez la section *Sérialisation et désérialisation des données* de [Invoquer une fonction à distance](train-remote-decorator-invocation.md) pour plus de détails. Les mêmes restrictions s’appliquent aux fonctions décorées avec `@step`.
+ Tout objet doté d’un client boto ne peut pas être sérialisé. Vous ne pouvez donc pas transmettre de tels objets en entrée ou en sortie à partir d’une fonction décorée avec `@step`. Par exemple, les classes clientes du SDK SageMaker Python telles que `Estimator``Predictor`, et ne `Processor` peuvent pas être sérialisées.

## Importations de fonctions
<a name="pipelines-step-decorator-best-import"></a>

Vous devez importer les bibliothèques requises par l’étape à l’intérieur plutôt qu’à l’extérieur de la fonction. Si vous les importez à l’échelle mondiale, vous risquez une collision d’importation lors de la sérialisation de la fonction. Par exemple, `sklearn.pipeline.Pipeline` pourrait être remplacé par `sagemaker.workflow.pipeline.Pipeline`.

## Référencement des membres enfants de la valeur de retour de la fonction
<a name="pipelines-step-decorator-best-child"></a>

Si vous référencez des membres enfants d’une valeur de retour d’une fonction décorée avec `@step`, les limites suivantes s’appliquent :
+ Vous pouvez référencer les membres enfants avec `[]` si l’objet `DelayedReturn` représente un tuple, une liste ou un dict, comme indiqué dans l’exemple suivant :

  ```
  delayed_return[0]
  delayed_return["a_key"]
  delayed_return[1]["a_key"]
  ```
+ Vous ne pouvez pas décompresser la sortie d’un tuple ou d’une liste, car la longueur exacte du tuple ou de la liste sous-jacent(e) ne peut pas être connue lorsque vous invoquez la fonction. L’exemple suivant génère une erreur :

  ```
  a, b, c = func() # this raises ValueError
  ```
+ Vous ne pouvez pas itérer sur un objet `DelayedReturn`. L’exemple suivant déclenche une erreur :

  ```
  for item in func(): # this raises a NotImplementedError
  ```
+ Vous ne pouvez pas référencer des membres enfants arbitraires avec « `.` ». L’exemple suivant génère une erreur :

  ```
  delayed_return.a_child # raises AttributeError
  ```

## Fonctionnalités de pipeline existantes qui ne sont pas prises en charge
<a name="pipelines-step-decorator-best-unsupported"></a>

Vous ne pouvez pas utiliser le décorateur `@step` avec les fonctionnalités de pipeline suivantes :
+ [Mise en cache des étapes d’un pipeline](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-caching.html)
+ [Fichiers de propriétés](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-propertyfile.html#build-and-manage-propertyfile-property)