Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Limitaciones
En las siguientes secciones se describen las limitaciones que debes tener en cuenta cuando utilices el @step
decorador en las etapas de tu proceso.
Limitaciones de los argumentos de función
Al pasar un argumento de entrada a la función @step
-decorated, se aplican las siguientes limitaciones:
Puedes pasar los
DelayedReturn
ExecutionVariable
objetosProperties
(de pasos de otros tipos) y a funciones@step
decoradas como argumentos.Parameter
Sin embargo, las funciones@step
decoradas con símbolos no admitenJsonGet
Join
objetos como argumentos.No se puede acceder directamente a una variable de canalización desde una
@step
función. El siguiente ejemplo produce un error:param = ParameterInteger(name="
<parameter-name>
", default_value=10) @step def func(): print(param) func() # this raises a SerializationErrorNo se puede anidar una variable de canalización en otro objeto y pasarla a una
@step
función. El siguiente ejemplo produce un error: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 las entradas y salidas de una función están serializadas, existen restricciones en cuanto al tipo de datos que se pueden transmitir como entrada o salida desde una función. Consulte la sección de serialización y deserialización de datos de Invoca una función remota para obtener más información. Las mismas restricciones se aplican a las funciones decoradas con letras.
@step
Cualquier objeto que tenga un cliente boto no se puede serializar, por lo que no se pueden pasar dichos objetos como entrada o salida desde una
@step
función decorada. Por ejemplo, las clases de SDK cliente de SageMaker Python comoEstimator
Predictor
, y no seProcessor
pueden serializar.
Importaciones de funciones
Debe importar las bibliotecas requeridas para el paso interno y no externo a la función. Si las importa a escala global, corre el riesgo de que se produzca un error de importación al serializar la función. Por ejemplo, sklearn.pipeline.Pipeline
podría ser anulado por. sagemaker.workflow.pipeline.Pipeline
Al hacer referencia a los miembros secundarios de la función, devuelve el valor
Si haces referencia a los miembros secundarios del valor devuelto @step
de una función decorada con símbolos, se aplican las siguientes limitaciones:
Puedes hacer referencia a los miembros secundarios
[]
si elDelayedReturn
objeto representa una tupla, una lista o un dictado, como se muestra en el siguiente ejemplo:delayed_return[0] delayed_return["a_key"] delayed_return[1]["a_key"]
No se puede desempaquetar el resultado de una tupla o lista porque no se puede conocer la longitud exacta de la tupla o lista subyacente al invocar la función. El siguiente ejemplo produce un error:
a, b, c = func() # this raises ValueError
No se puede iterar sobre un
DelayedReturn
objeto. El siguiente ejemplo genera un error:for item in func(): # this raises a NotImplementedError
No se puede hacer referencia a miembros secundarios arbitrarios con '
.
'. El siguiente ejemplo produce un error:delayed_return.a_child # raises AttributeError
Funciones de canalización existentes que no son compatibles
No puedes usar el @step
decorador con las siguientes funciones de canalización: