

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Limitações
<a name="pipelines-step-decorator-limit"></a>

As seções a seguir descrevem as limitações que você deve conhecer ao usar o decorador `@step` nas etapas do pipeline.

## Limitações de argumentos de função
<a name="pipelines-step-decorator-arg"></a>

Quando você passa um argumento de entrada para a função decorada por `@step`, as seguintes limitações se aplicam:
+ Você pode passar `DelayedReturn`, `Properties` (de etapas de outros tipos), `Parameter` e objetos `ExecutionVariable` para funções decoradas por `@step` como argumentos. Mas as funções decoradas por `@step` não oferecem apoio a `JsonGet` e objetos `Join` como argumentos.
+ Você não pode acessar diretamente uma variável de pipeline a partir de uma função `@step`. O seguinte exemplo produz um erro:

  ```
  param = ParameterInteger(name="<parameter-name>", default_value=10)
  
  @step
  def func():
      print(param)
  
  func() # this raises a SerializationError
  ```
+ Você não pode aninhar uma variável de pipeline em outro objeto e passá-la para uma função `@step`. O seguinte exemplo produz um erro:

  ```
  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
  ```
+ Como as entradas e saídas de uma função são serializadas, há restrições quanto ao tipo de dados que pode ser passado como entrada ou saída de uma função. Consulte a seção *Serialização e desserialização de dados* de [Invocar uma função remota](train-remote-decorator-invocation.md) para obter mais detalhes. As mesmas restrições se aplicam às funções decoradas por `@step`.
+ Qualquer objeto que tenha um cliente boto não pode ser serializado, portanto, você não pode passar esses objetos como entrada ou saída de uma função decorada por `@step`. Por exemplo, classes de cliente do SDK do SageMaker Python`Estimator`, como, e`Predictor`, não `Processor` podem ser serializadas.

## Importações de funções
<a name="pipelines-step-decorator-best-import"></a>

Você deve importar as bibliotecas exigidas pela etapa dentro da função, ao invés de fora. Se você importá-las em âmbito global, corre o risco de uma colisão de importação ao serializar a função. Por exemplo, `sklearn.pipeline.Pipeline` pode ser substituído por `sagemaker.workflow.pipeline.Pipeline`.

## Como referenciar membros filhos do valor de retorno da função
<a name="pipelines-step-decorator-best-child"></a>

Se você fizer referência a membros filhos do valor de retorno de uma função decorada por `@step`, as seguintes limitações se aplicam:
+ Você pode referenciar os membros secundários com `[]` se o objeto `DelayedReturn` representar uma tupla, lista ou dicionário, conforme mostrado no seguinte exemplo:

  ```
  delayed_return[0]
  delayed_return["a_key"]
  delayed_return[1]["a_key"]
  ```
+ Você não pode descompactar uma saída de tupla ou lista porque não é possível saber o comprimento exato da tupla ou lista subjacente quando você invoca a função. O seguinte exemplo produz um erro:

  ```
  a, b, c = func() # this raises ValueError
  ```
+ Você não pode repetir um objeto `DelayedReturn`. Veja a seguir um exemplo com erro:

  ```
  for item in func(): # this raises a NotImplementedError
  ```
+ Você não pode referenciar membros secundários arbitrários com “`.`”. O seguinte exemplo produz um erro:

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

## Atributos de pipeline existentes que não são compatíveis
<a name="pipelines-step-decorator-best-unsupported"></a>

Você não pode usar o decorador `@step` com os seguintes atributos de pipeline:
+ [Cache de etapas de pipeline](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-caching.html)
+ [Arquivo de propriedades](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-propertyfile.html#build-and-manage-propertyfile-property)