

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

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

Bagian berikut menguraikan batasan yang harus Anda waspadai ketika Anda menggunakan `@step` dekorator untuk langkah-langkah pipa Anda.

## Keterbatasan argumen fungsi
<a name="pipelines-step-decorator-arg"></a>

Saat Anda meneruskan argumen input ke fungsi `@step` -decorated, batasan berikut berlaku:
+ Anda dapat meneruskan`DelayedReturn`, `Properties` (langkah dari jenis lain),`Parameter`, dan `ExecutionVariable` objek ke fungsi `@step` -decorated sebagai argumen. Tapi fungsi `@step` yang didekorasi tidak mendukung `JsonGet` dan `Join` objek sebagai argumen.
+ Anda tidak dapat langsung mengakses variabel pipeline dari suatu `@step` fungsi. Contoh berikut menghasilkan kesalahan:

  ```
  param = ParameterInteger(name="<parameter-name>", default_value=10)
  
  @step
  def func():
      print(param)
  
  func() # this raises a SerializationError
  ```
+ Anda tidak dapat membuat sarang variabel pipeline di objek lain dan meneruskannya ke `@step` fungsi. Contoh berikut menghasilkan kesalahan:

  ```
  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
  ```
+ Karena input dan output dari suatu fungsi diserialisasi, ada batasan pada jenis data yang dapat diteruskan sebagai input atau output dari suatu fungsi. Lihat bagian *Serialisasi dan deserialisasi data* [Memanggil fungsi jarak jauh](train-remote-decorator-invocation.md) untuk detail selengkapnya. Pembatasan yang sama berlaku untuk fungsi `@step` yang didekorasi.
+ Objek apa pun yang memiliki klien boto tidak dapat diserialisasi, oleh karena itu Anda tidak dapat meneruskan objek seperti input ke atau output dari fungsi `@step` -decorated. Misalnya, kelas klien SDK SageMaker Python seperti`Estimator`,`Predictor`, dan tidak `Processor` dapat diserialisasi.

## Impor fungsi
<a name="pipelines-step-decorator-best-import"></a>

Anda harus mengimpor pustaka yang diperlukan oleh langkah di dalam daripada di luar fungsi. Jika Anda mengimpornya di lingkup global, Anda berisiko mengalami tabrakan impor saat membuat serial fungsi. Misalnya, `sklearn.pipeline.Pipeline` bisa diganti dengan. `sagemaker.workflow.pipeline.Pipeline`

## Mereferensikan anggota anak dari nilai pengembalian fungsi
<a name="pipelines-step-decorator-best-child"></a>

Jika Anda mereferensikan anggota turunan dari nilai pengembalian fungsi `@step` -decorated, batasan berikut berlaku:
+ Anda dapat mereferensikan anggota anak dengan `[]` jika `DelayedReturn` objek mewakili Tuple, list atau dict, seperti yang ditunjukkan pada contoh berikut:

  ```
  delayed_return[0]
  delayed_return["a_key"]
  delayed_return[1]["a_key"]
  ```
+ Anda tidak dapat membongkar keluaran tuple atau daftar karena panjang yang tepat dari tupel atau daftar yang mendasarinya tidak dapat diketahui saat Anda menjalankan fungsi tersebut. Contoh berikut menghasilkan kesalahan:

  ```
  a, b, c = func() # this raises ValueError
  ```
+ Anda tidak dapat mengulangi `DelayedReturn` objek. Contoh berikut menimbulkan kesalahan:

  ```
  for item in func(): # this raises a NotImplementedError
  ```
+ Anda tidak dapat mereferensikan anggota anak yang sewenang-wenang dengan '`.`'. Contoh berikut menghasilkan kesalahan:

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

## Fitur pipeline yang ada yang tidak didukung
<a name="pipelines-step-decorator-best-unsupported"></a>

Anda tidak dapat menggunakan `@step` dekorator dengan fitur pipeline berikut:
+ [Caching langkah pipa](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-caching.html)
+ [File properti](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-propertyfile.html#build-and-manage-propertyfile-property)