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
As seções a seguir descrevem as limitações que você deve conhecer ao usar o @step
decorador nas etapas do pipeline.
Limitações do argumento da função
Quando você passa um argumento de entrada para a função @step
-decorada, as seguintes limitações se aplicam:
Você pode passar o
DelayedReturn
,Properties
(de etapas de outros tipos) eExecutionVariable
objetos para funções@step
-decoradas como argumentos.Parameter
Mas as funções@step
-decoradas não suportamJsonGet
Join
objetos como argumentos.Você não pode acessar diretamente uma variável de pipeline a partir de uma
@step
função. O exemplo a seguir produz um erro:param = ParameterInteger(name="
<parameter-name>
", default_value=10) @step def func(): print(param) func() # this raises a SerializationErrorVocê não pode aninhar uma variável de pipeline em outro objeto e passá-la para uma
@step
função. O exemplo a seguir 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 tupleComo as entradas e saídas de uma função são serializadas, há restrições quanto ao tipo de dados que podem ser passados como entrada ou saída de uma função. Consulte a seção Serialização e desserialização de dados Invocar uma função remota para obter mais detalhes. As mesmas restrições se aplicam às funções
@step
decoradas.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
@step
decorada. Por exemplo, classes de SDK clientes do SageMaker PythonEstimator
, como, ePredictor
, nãoProcessor
podem ser serializadas.
Importações de funções
Você deve importar as bibliotecas exigidas pela etapa interna em vez de fora da função. Se você importá-los no escopo 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
Referenciando membros filhos do valor de retorno da função
Se você fizer referência a membros filhos do valor de retorno de uma função @step
-decorada, as seguintes limitações se aplicam:
Você pode referenciar os membros secundários com
[]
se oDelayedReturn
objeto representar uma tupla, lista ou ditado, conforme mostrado no exemplo a seguir: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 o comprimento exato da tupla ou lista subjacente não pode ser conhecido quando você invoca a função. O exemplo a seguir produz um erro:
a, b, c = func() # this raises ValueError
Você não pode iterar sobre um
DelayedReturn
objeto. O exemplo a seguir gera um erro:for item in func(): # this raises a NotImplementedError
Você não pode referenciar membros secundários arbitrários com '
.
'. O exemplo a seguir produz um erro:delayed_return.a_child # raises AttributeError
Recursos de pipeline existentes que não são suportados
Você não pode usar o @step
decorador com os seguintes recursos de pipeline: