Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Einschränkungen
In den folgenden Abschnitten werden die Einschränkungen beschrieben, die Sie beachten sollten, wenn Sie den @step
Decorator für Ihre Pipeline-Schritte verwenden.
Einschränkungen bei Funktionsargumenten
Wenn Sie ein Eingabeargument an die @step
mit -dekorierte Funktion übergeben, gelten die folgenden Einschränkungen:
Sie können die Objekte
DelayedReturn
,Properties
(von Schritten anderer Typen) undExecutionVariable
-Objekte alsParameter
Argumente an@step
mit -dekorierte Funktionen übergeben. Mit@step
-dekorierten Funktionen werdenJoin
Objekte jedoch nicht alsJsonGet
Argumente unterstützt.Sie können von einer
@step
Funktion aus nicht direkt auf eine Pipeline-Variable zugreifen. Das folgende Beispiel erzeugt einen Fehler:param = ParameterInteger(name="
<parameter-name>
", default_value=10) @step def func(): print(param) func() # this raises a SerializationErrorSie können eine Pipeline-Variable nicht in einem anderen Objekt verschachteln und an eine
@step
Funktion übergeben. Das folgende Beispiel erzeugt einen Fehler: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 tupleDa Eingaben und Ausgaben einer Funktion serialisiert sind, gibt es Einschränkungen hinsichtlich der Art der Daten, die als Eingabe oder Ausgabe von einer Funktion übergeben werden können. Weitere Informationen finden Sie im Abschnitt Datenserialisierung und Deserialisierung vonRufen Sie eine Remote-Funktion auf. Dieselben Einschränkungen gelten für Funktionen, die mit -dekoriert sind.
@step
Jedes Objekt, das über einen Boto-Client verfügt, kann nicht serialisiert werden. Daher können Sie solche Objekte nicht als Eingabe oder Ausgabe einer
@step
mit -dekorierten Funktion übergeben. SageMaker SDKPython-Clientklassen wieEstimator
Predictor
, undProcessor
können beispielsweise nicht serialisiert werden.
Funktionsimporte
Sie sollten die Bibliotheken importieren, die für den Schritt innerhalb und nicht außerhalb der Funktion erforderlich sind. Wenn Sie sie auf globaler Ebene importieren, riskieren Sie bei der Serialisierung der Funktion eine Importkollision. sklearn.pipeline.Pipeline
Könnte beispielsweise überschrieben werden durch. sagemaker.workflow.pipeline.Pipeline
Verweisen auf untergeordnete Elemente des Funktionsrückgabewerts
Wenn Sie auf untergeordnete Elemente des Rückgabewerts einer @step
mit -dekorierten Funktion verweisen, gelten die folgenden Einschränkungen:
Sie können auf die untergeordneten Elemente verweisen,
[]
wenn dasDelayedReturn
Objekt ein Tupel, eine Liste oder ein Diktat darstellt, wie im folgenden Beispiel gezeigt:delayed_return[0] delayed_return["a_key"] delayed_return[1]["a_key"]
Sie können eine Tupel- oder Listenausgabe nicht entpacken, da die genaue Länge des zugrunde liegenden Tupels oder der zugrunde liegenden Liste nicht bekannt sein kann, wenn Sie die Funktion aufrufen. Das folgende Beispiel erzeugt einen Fehler:
a, b, c = func() # this raises ValueError
Sie können nicht über ein
DelayedReturn
Objekt iterieren. Das folgende Beispiel löst einen Fehler aus:for item in func(): # this raises a NotImplementedError
Sie können nicht mit '
.
' auf beliebige untergeordnete Elemente verweisen. Das folgende Beispiel erzeugt einen Fehler:delayed_return.a_child # raises AttributeError
Bestehende Pipeline-Funktionen, die nicht unterstützt werden
Sie können den @step
Decorator nicht mit den folgenden Pipeline-Funktionen verwenden: