

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

# Kustomisasi add-on
<a name="customization"></a>

## Templat
<a name="customization-template"></a>

Template adalah konfigurasi ruang kerja yang dapat digunakan kembali yang berfungsi sebagai cetak biru yang dikendalikan admin untuk pembuatan ruang kerja. Mereka menyediakan default untuk nilai konfigurasi ruang kerja, dan pagar pembatas untuk mengontrol apa yang dapat dilakukan para ilmuwan data. Template ada di tingkat cluster, dan dapat digunakan kembali di seluruh ruang nama. 

SageMaker Spaces membuat dua templat sistem sebagai titik awal bagi ilmuwan data, satu untuk Editor Kode dan satu untuk JupyterLab. Template sistem ini dikelola oleh addon dan tidak dapat diedit secara langsung. Sebagai gantinya, admin dapat membuat template baru dan mengaturnya sebagai default.

## Tata Kelola Tugas
<a name="customization-governabce"></a>

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: WorkspaceTemplate
metadata:
  name: my-jupyter-template
  namespace: my-namespace
  labels:
    kueue.x-k8s.io/priority-class: <user-input>-priority
spec:
  displayName: "My Custom Jupyter Lab"
  description: "Custom Jupyter Lab with specific configurations"
  defaultImage: "public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu"
  allowedImages:
    - "public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu"
    - "public.ecr.aws/sagemaker/sagemaker-distribution:latest-gpu"
  defaultResources:
    requests:
      cpu: "1"
      memory: "4Gi"
    limits:
      cpu: "4"
      memory: "16Gi"
  primaryStorage:
    defaultSize: "10Gi"
    minSize: "5Gi"
    maxSize: "50Gi"
    defaultStorageClassName: "sagemaker-spaces-default-storage-class"
    defaultMountPath: "/home/sagemaker-user"
  defaultContainerConfig:
    command: ["/opt/amazon/sagemaker/workspace/bin/entrypoint-workspace-jupyterlab"]
  defaultPodSecurityContext:
    fsGroup: 1000
  defaultOwnershipType: "Public"
  defaultAccessStrategy:
    name: "hyperpod-access-strategy"
  allowSecondaryStorages: true
  appType: "jupyterlab"
```

## Gambar SMD/Kustom
<a name="customization-image"></a>

Pelanggan dapat mengonfigurasi kebijakan gambar melalui templat dengan menyediakan gambar default dan daftar gambar yang diizinkan. Selain itu, administrator dapat memilih apakah akan mengizinkan ilmuwan data untuk membawa gambar kustom mereka sendiri. Sistem default menggunakan SageMaker Distribusi terbaru, tetapi jika Anda ingin menyematkan ke versi tertentu, Anda dapat menentukan versi SMD yang tepat untuk digunakan dalam templat.

Persyaratan gambar khusus:
+ `curl`jika Anda ingin menggunakan shutdown idle
+ pelabuhan 8888
+ akses jarak jauh

## Persyaratan IDE Jarak Jauh
<a name="remote-ide-requirement"></a>

### Persyaratan versi VS Code
<a name="remote-ide-requirement-vscode"></a>

VS Code versi [v1.90](https://code.visualstudio.com/updates/v1_90) atau lebih tinggi diperlukan. Kami merekomendasikan menggunakan [versi stabil terbaru dari VS Code](https://code.visualstudio.com/updates).

### Persyaratan sistem operasi
<a name="remote-ide-requirement-operate"></a>

Anda memerlukan salah satu sistem operasi berikut untuk terhubung dari jarak jauh ke ruang Studio:
+ macOS 13\$1
+ Windows 10
  + [Dukungan Windows 10 berakhir pada 14 Oktober 2025](https://support.microsoft.com/en-us/windows/windows-10-support-ends-on-october-14-2025-2ca8b313-1946-43d3-b55c-2b95b107f281)
+ Windows 11
+ Linux
+ Instal [Microsoft VS Code resmi untuk Linux](https://code.visualstudio.com/docs/setup/linux)
  + bukan versi open source

### Prasyarat mesin lokal
<a name="remote-ide-requirement-machine"></a>

Sebelum menghubungkan Kode Visual Studio lokal Anda ke ruang Studio, pastikan mesin lokal Anda memiliki dependensi dan akses jaringan yang diperlukan.

**catatan**  
Lingkungan dengan batasan instalasi perangkat lunak dapat mencegah pengguna menginstal dependensi yang diperlukan. AWS Toolkit for Visual Studio Code secara otomatis mencari dependensi ini saat memulai koneksi jarak jauh dan akan meminta instalasi jika ada yang hilang. Berkoordinasi dengan departemen TI Anda untuk memastikan komponen ini tersedia.

**Dependensi lokal yang diperlukan**

Mesin lokal Anda harus memiliki komponen berikut yang diinstal:
+ **[https://code.visualstudio.com/docs/remote/ssh](https://code.visualstudio.com/docs/remote/ssh)**
+ - Ekstensi Standar VS Code Marketplace untuk pengembangan jarak jauh
+ **[Plugin Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html)** - Diperlukan untuk manajemen sesi yang aman
+ **Klien SSH** - Komponen standar pada sebagian besar mesin ([OpenSSH direkomendasikan](https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse) untuk Windows)
+ **[https://code.visualstudio.com/docs/configure/command-line](https://code.visualstudio.com/docs/configure/command-line)**
+  Biasanya disertakan dengan instalasi VS Code

**Persyaratan khusus platform**
+ **Pengguna Windows** - PowerShell 5.1 atau yang lebih baru diperlukan untuk koneksi terminal SSH

**Persyaratan konektivitas jaringan**

Mesin lokal Anda harus memiliki akses jaringan ke [endpoint Session Manager](https://docs.aws.amazon.com/general/latest/gr/ssm.html). Misalnya, di AS Timur (Virginia N.) (us-east-1) ini dapat berupa:
+ `[ssm.us-east-1.amazonaws.com](http://ssm.us-east-1.amazonaws.com)`
+ `ssm.us-east-1.api.aws`
+ `[ssmmessages.us-east-1.amazonaws.com](http://ssmmessages.us-east-1.amazonaws.com)`
+ `[ec2messages.us-east-1.amazonaws.com](http://ec2messages.us-east-1.amazonaws.com)`

### Persyaratan gambar
<a name="remote-ide-requirement-image"></a>

**SageMaker Gambar distribusi**

Saat menggunakan SageMaker Distribusi dengan akses jarak jauh, gunakan [SageMaker Distribusi](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-distribution.html) versi 2.7 atau yang lebih baru.

**Gambar kustom**

Saat Anda [Membawa gambar Anda sendiri (BYOI)](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-byoi.html) dengan akses jarak jauh, pastikan Anda mengikuti [spesifikasi gambar khusus](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-byoi-specs.html) dan memastikan dependensi berikut diinstal:
+ `curl`atau `wget` - Diperlukan untuk mengunduh AWS CLI komponen
+ `unzip`- Diperlukan untuk mengekstrak file AWS CLI instalasi
+ `tar`— Diperlukan untuk ekstraksi arsip
+ `gzip`- Diperlukan untuk penanganan file terkompresi

### Persyaratan instans
<a name="remote-ide-requirement-instance"></a>
+ **Memori** - 8GB atau lebih
+ Gunakan instans dengan memori minimal 8GB. Jenis instance berikut *tidak* didukung karena memori yang tidak mencukupi (kurang dari 8GB):`ml.t3.medium`,,`ml.c7i.large`, `ml.c6i.large``ml.c6id.large`, dan`ml.c5.large`. Untuk daftar jenis instans yang lebih lengkap, lihat halaman Harga Sesuai [Permintaan Amazon EC2](https://aws.amazon.com/ec2/pricing/on-demand/)

## Mengoptimalkan Waktu Startup Kubernetes dengan Pre-Warming Container Images
<a name="remote-ide-optimize-image"></a>

Kinerja penarikan gambar kontainer telah menjadi hambatan yang signifikan bagi banyak pelanggan EKS, terutama karena AI/ML beban kerja bergantung pada gambar kontainer yang semakin besar. Menarik dan membongkar gambar-gambar besar ini biasanya membutuhkan waktu beberapa menit saat pertama kali digunakan pada setiap simpul EKS. Penundaan ini menambah latensi besar saat meluncurkan SageMaker Spaces dan secara langsung memengaruhi pengalaman pengguna—terutama di lingkungan di mana startup cepat sangat penting, seperti notebook, pekerjaan pengembangan interaktif. 

Pra-pemanasan gambar adalah teknik yang digunakan untuk memuat gambar kontainer tertentu ke setiap node di EKS/HyperPod cluster sebelum dibutuhkan. Alih-alih menunggu pod untuk memicu tarikan pertama dari gambar besar, cluster secara proaktif mengunduh dan menyimpan gambar di semua node. Ini memastikan bahwa ketika beban kerja diluncurkan, gambar yang diperlukan sudah tersedia secara lokal, menghilangkan penundaan awal dingin yang lama. Pra-pemanasan gambar meningkatkan kecepatan startup SageMaker Spaces dan memberikan pengalaman yang lebih dapat diprediksi dan responsif bagi pengguna akhir.

### Pra-Pemanasan melalui DaemonSet
<a name="remote-ide-optimize-image-dae"></a>

Sebaiknya gunakan a DaemonSet untuk memuat gambar terlebih dahulu. A DaemonSet memastikan bahwa satu pod berjalan pada setiap node di cluster. Setiap kontainer di dalam DaemonSet pod mereferensikan gambar yang ingin Anda cache. Ketika Kubernetes memulai pod, ia secara otomatis menarik gambar, menghangatkan cache pada setiap node.

Contoh berikut menunjukkan cara membuat pramuat dua gambar GPU. DaemonSet Setiap kontainer menjalankan `sleep infinity` perintah ringan untuk menjaga pod tetap aktif dengan overhead minimal.

```
cat <<EOF | kubectl apply -n "namespace_1" -f -
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: image-preload-ds
spec:
  selector:
    matchLabels:
      app: image-preloader
  template:
    metadata:
      labels:
        app: image-preloader
    spec:
      containers:
      - name: preloader-3-4-2
        image: public.ecr.aws/sagemaker/sagemaker-distribution:3.4.2-gpu
        command: ["sleep"]
        args: ["infinity"]
        resources:
          requests:
            cpu: 1m
            memory: 16Mi
          limits:
            cpu: 5m
            memory: 32Mi
      - name: preloader-3-3-2
        image: public.ecr.aws/sagemaker/sagemaker-distribution:3.3.2-gpu
        command: ["sleep"]
        args: ["infinity"]
        resources:
          requests:
            cpu: 1m
            memory: 16Mi
          limits:
            cpu: 5m
            memory: 32Mi
EOF
```

### Cara Kerjanya
<a name="remote-ide-optimize-image-how"></a>
+ Setiap wadah mereferensikan satu gambar.
+ Kubernetes harus mengunduh setiap gambar sebelum memulai penampung.
+ Setelah pod berjalan di setiap node, gambar di-cache secara lokal.
+ Beban kerja apa pun yang menggunakan gambar-gambar ini sekarang dimulai jauh lebih cepat.

## Penyimpanan default ruang (EBS)
<a name="space-storage"></a>

Sistem menggunakan driver EBS CSI secara default untuk menyediakan volume penyimpanan EBS untuk setiap ruang kerja. SageMaker membuat kelas penyimpanan EBS untuk digunakan dengan ruang kerja, dan administrator dapat menyesuaikan ukuran default dan maksimum volume ini menggunakan pengaturan templat. Untuk pengguna tingkat lanjut yang bekerja dengan alat CLI, Anda juga dapat menyesuaikan kelas penyimpanan ruang kerja, yang memungkinkan pengguna untuk memanfaatkan kelas penyimpanan lain termasuk mengonfigurasi kunci KMS yang dikelola pelanggan untuk volume EBS mereka.

Perhatikan bahwa volume EBS terikat pada AZ tertentu, yang berarti ruang kerja hanya dapat dijadwalkan pada node di AZ yang sama dengan volume penyimpanannya. Hal ini dapat menyebabkan kegagalan penjadwalan jika kapasitas cluster ada tetapi tidak di AZ yang benar.

## Penyimpanan tambahan
<a name="space-additional-storage"></a>

SageMaker Spaces mendukung pemasangan volume penyimpanan tambahan seperti Amazon EFS, FSx untuk Lustre, atau S3 Mountpoint ke ruang pengembangan Anda. Ini memungkinkan Anda mengakses kumpulan data bersama, berkolaborasi dalam proyek, atau menggunakan penyimpanan berkinerja tinggi untuk beban kerja Anda.

### Prasyarat
<a name="space-additional-storage-prereq"></a>

Sebelum memasang penyimpanan tambahan ke ruang, Anda harus:

1. **Instal add-on driver CSI yang sesuai melalui add-on** [EKS (](https://docs.aws.amazon.com/eks/latest/userguide/workloads-add-ons-available-eks.html)Amazon EFS CSI Driver, Amazon FSx untuk Lustre CSI Driver, atau Mountpoint untuk Amazon S3 CSI Driver)

1. **Siapkan sumber daya penyimpanan dan PersistentVolumeClaims** ikuti dokumentasi driver CSI untuk jenis penyimpanan spesifik Anda

1. **Pastikan PVC tersedia** di namespace yang sama di mana Anda berencana untuk membuat ruang Anda

### Melampirkan penyimpanan ke ruang
<a name="space-additional-storage-attach"></a>

Setelah Anda memiliki PersistentVolumeClaim konfigurasi, Anda dapat melampirkannya ke spasi menggunakan HyperPod CLI atau kubectl.

**HyperPod CLI**

```
hyp create hyp-space \
    --name my-space \
    --display-name "My Space with FSx" \
    --memory 8Gi \
    --volume name=shared-fsx,mountPath=/shared,persistentVolumeClaimName=my-fsx-pvc
```

**kubectl**

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:
  name: my-space
spec:
  displayName: "My Space with FSx"
  desiredStatus: Running
  volumes:
  - name: shared-fsx
    mountPath: /shared
    persistentVolumeClaimName: my-fsx-pvc
```

### Beberapa volume
<a name="space-additional-storage-multiple"></a>

Anda dapat melampirkan beberapa volume penyimpanan tambahan ke satu spasi dengan menentukan beberapa `--volume` flag dengan CLI atau beberapa entri dalam array dengan kubectl. `volumes`

**HyperPod CLI**

```
hyp create hyp-space \
    --name my-space \
    --display-name "My Space with Multiple Storage" \
    --memory 8Gi \
    --volume name=shared-efs,mountPath=/shared,persistentVolumeClaimName=my-efs-pvc \
    --volume name=datasets,mountPath=/datasets,persistentVolumeClaimName=my-s3-pvc
```

**kubectl**

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:
  name: my-space
spec:
  displayName: "My Space with Multiple Storage"
  desiredStatus: Running
  volumes:
  - name: shared-efs
    mountPath: /shared
    persistentVolumeClaimName: my-efs-pvc
  - name: datasets
    mountPath: /datasets
    persistentVolumeClaimName: my-s3-pvc
```

## Konfigurasi sumber daya
<a name="space-resource-configuration"></a>

SageMaker Spaces memungkinkan Anda mengonfigurasi sumber daya komputasi untuk lingkungan pengembangan Anda, termasuk sumber daya CPU, memori, dan GPU agar sesuai dengan persyaratan beban kerja Anda.

### Konfigurasi GPU
<a name="space-gpu-configuration"></a>

SageMaker Spaces mendukung seluruh alokasi GPU dan partisi GPU menggunakan teknologi NVIDIA Multi-Instance GPU (MIG). Ini memungkinkan Anda mengoptimalkan pemanfaatan GPU untuk berbagai jenis beban kerja pembelajaran mesin.

#### Seluruh alokasi GPU
<a name="space-gpu-whole"></a>

**HyperPod CLI**

```
hyp create hyp-space \
    --name gpu-space \
    --display-name "GPU Development Space" \
    --image public.ecr.aws/sagemaker/sagemaker-distribution:latest-gpu \
    --memory 16Gi \
    --gpu 1 \
    --gpu-limit 1
```

**kubectl**

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:
  name: gpu-space
spec:
  displayName: "GPU Development Space"
  image: "public.ecr.aws/sagemaker/sagemaker-distribution:latest-gpu"
  desiredStatus: Running
  resources:
    requests:
      memory: "16Gi"
      nvidia.com/gpu: "1"
    limits:
      memory: "16Gi"
      nvidia.com/gpu: "1"
```

#### Partisi GPU (MIG)
<a name="space-gpu-mig"></a>

Partisi GPU menggunakan teknologi NVIDIA Multi-Instance GPU (MIG) memungkinkan Anda mempartisi satu GPU menjadi instance yang lebih kecil dan terisolasi. HyperPod Cluster Anda harus memiliki node GPU yang mendukung MIG dan memiliki profil MIG yang dikonfigurasi. Untuk informasi selengkapnya tentang pengaturan MIG di HyperPod cluster Anda, lihat [partisi GPU menggunakan NVIDIA MIG.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-gpu-partitioning-setup.html)

**HyperPod CLI**

```
hyp create hyp-space \
    --name mig-space \
    --display-name "MIG GPU Space" \
    --image public.ecr.aws/sagemaker/sagemaker-distribution:latest-gpu \
    --memory 8Gi \
    --accelerator-partition-type mig-3g.20gb \
    --accelerator-partition-count 1
```

**kubectl**

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:
  name: mig-space
spec:
  displayName: "MIG GPU Space"
  image: "public.ecr.aws/sagemaker/sagemaker-distribution:latest-gpu"
  desiredStatus: Running
  resources:
    requests:
      memory: "8Gi"
      nvidia.com/mig-3g.20gb: "1"
    limits:
      memory: "8Gi"
      nvidia.com/mig-3g.20gb: "1"
```

## Siklus hidup
<a name="space-lifecycle"></a>

Konfigurasi siklus hidup menyediakan skrip startup yang berjalan saat ruang kerja dibuat atau dimulai. Skrip ini memungkinkan administrator untuk menyesuaikan lingkungan ruang kerja selama startup. Ini adalah skrip bash dengan ukuran maksimum 1 KB. Jika Anda memerlukan konfigurasi pengaturan yang lebih besar, kami sarankan menambahkan skrip ke gambar kontainer dan memicu skrip dari konfigurasi siklus hidup.

[Kami memanfaatkan kait siklus hidup kontainer Kubernetes untuk menyediakan fungsionalitas ini https://kubernetes. io/docs/concepts/containers/container-kait siklus hidup/](https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/). Perhatikan bahwa Kubernetes tidak memberikan jaminan kapan skrip startup akan dijalankan sehubungan dengan entrypoint dari container. 

## Shutdown idle
<a name="space-idle-shutdown"></a>

Konfigurasikan shutdown otomatis ruang kerja idle untuk mengoptimalkan penggunaan sumber daya.

### Shutdown idle
<a name="space-idle-shutdown-spec"></a>

```
idleShutdown:
  enabled: true
  idleShutdownTimeoutMinutes: 30
  detection:
    httpGet:
      path: /api/idle
      port: 8888
      scheme: HTTP
```

### Parameter
<a name="space-idle-shutdown-parameter"></a>

**enabled** (boolean, required) - Mengaktifkan atau menonaktifkan shutdown idle untuk ruang kerja.

**idleShutdownTimeoutMenit** (bilangan bulat, diperlukan) - Jumlah menit tidak aktif sebelum ruang kerja dimatikan. Nilai minimum adalah 1.

**detection** (object, required) - Mendefinisikan cara mendeteksi keadaan idle ruang kerja.

**Detection.httpGet** (objek, opsional) - Konfigurasi titik akhir HTTP untuk deteksi idle. Menggunakan spesifikasi Kubernetes Action. HTTPGet
+ **path** - jalur HTTP untuk meminta
+ **port** - Nomor port atau nama
+ **skema** - HTTP atau HTTPS (default: HTTP)

### Lokasi Konfigurasi
<a name="space-idle-shutdown-configure"></a>

**Konfigurasi Ruang Kerja**

Tentukan shutdown idle secara langsung dalam spesifikasi ruang kerja:

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:

      name: my-workspace
spec:
  displayName: "Development Workspace"
  image:
      jupyter/scipy-notebook:latest
  idleShutdown:
    enabled: true

      idleShutdownTimeoutMinutes: 30
    detection:
      httpGet:
        path:
      /api/idle
        port: 8888
```

**Konfigurasi Template**

Tentukan perilaku shutdown idle default di: WorkspaceTemplate

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: WorkspaceTemplate
metadata:
  name: jupyter-template
spec:
  displayName: "Jupyter Template"
  defaultImage: jupyter/scipy-notebook:latest
  defaultIdleShutdown:
    enabled: true
    idleShutdownTimeoutMinutes: 30
    detection:
      httpGet:
        path: /api/idle
        port: 8888
  idleShutdownOverrides:
    allow: true
    minTimeoutMinutes: 60
    maxTimeoutMinutes: 240
```

### Template Warisan dan Penggantian
<a name="space-idle-shutdown-inherit"></a>

Ruang kerja menggunakan template secara otomatis mewarisi konfigurasi template. `defaultIdleShutdown` Ruang kerja dapat mengganti konfigurasi ini jika templat mengizinkannya.

**Mengesampingkan Kebijakan**

Template mengontrol perilaku mengesampingkan melalui`idleShutdownOverrides`:

**allow** (boolean, default: true) - Apakah ruang kerja dapat mengganti konfigurasi shutdown idle default.

**minTimeoutMinutes**(integer, opsional) - Nilai batas waktu minimum yang diizinkan untuk penggantian ruang kerja.

**maxTimeoutMinutes**(integer, opsional) - Nilai batas waktu maksimum yang diizinkan untuk penggantian ruang kerja.

**Contoh Warisan**

Ruang kerja mewarisi default template:

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:
  name: my-workspace
spec:
  displayName: "My Workspace"
  templateRef:
    name: jupyter-template
  # Inherits defaultIdleShutdown from template
```

**Contoh Ganti**

Ruang kerja mengganti default template:

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:
  name: my-workspace
spec:
  displayName: "My Workspace"
  templateRef:
    name: jupyter-template
  idleShutdown:
    enabled: true
    idleShutdownTimeoutMinutes: 60  # Must be within template bounds
    detection:
      httpGet:
        path: /api/idle
        port: 8888
```

**Konfigurasi Terkunci**

Mencegah penggantian ruang kerja:

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: WorkspaceTemplate
metadata:
  name: locked-template
spec:
  displayName: "Locked Template"
  defaultImage: jupyter/scipy-notebook:latest
  defaultIdleShutdown:
    enabled: true
    idleShutdownTimeoutMinutes: 30
    detection:
      httpGet:
        path: /api/idle
        port: 8888
  idleShutdownOverrides:
    allow: false  # Workspaces cannot override
```

### Perilaku
<a name="space-idle-shutdown-behavior"></a>

Ketika shutdown idle diaktifkan, sistem secara berkala memeriksa ruang kerja untuk aktivitas menggunakan titik akhir HTTP yang dikonfigurasi. Jika titik akhir menunjukkan ruang kerja tidak digunakan untuk durasi batas waktu yang ditentukan, ruang kerja akan berhenti secara otomatis. Anda dapat me-restart ruang kerja secara manual bila diperlukan.

## Pembaruan Template
<a name="customization-template-updates"></a>

Alat klien seperti Kubectl atau Hyperpod CLI dan SDK dapat digunakan untuk mengelola Spaces dalam klaster EKS. Administrator dapat menyediakan Template Space untuk konfigurasi Space default, sementara Data Scientist dapat menyesuaikan lingkungan pengembangan terintegrasi mereka tanpa perlu memahami kompleksitas Kubernetes yang mendasarinya. Untuk petunjuk penggunaan terperinci, silakan merujuk ke dokumentasi CLI dan SDK di. [https://sagemaker-hyperpod-cli.readthedocs.io/en/latest/index.html](https://sagemaker-hyperpod-cli.readthedocs.io/en/latest/index.html)

Administrator dapat melakukan operasi CRUD pada Template Space, yang berfungsi sebagai konfigurasi dasar saat membuat Space. Ilmuwan Data dapat melakukan operasi CRUD di Spaces dan mengganti berbagai parameter, termasuk profil GPU Multi-Instance untuk node komputasi tertentu. Mereka dapat memulai, berhenti, dan terhubung ke Spaces melalui VSCode akses jarak jauh dan UI Web. Ketika Template Space diperbarui, Space yang dibuat selanjutnya akan dikonfigurasi dengan pengaturan di template yang diperbarui. Pemeriksaan kepatuhan akan dilakukan saat Spasi yang ada diperbarui atau dimulai. Jika ada pengaturan di luar batas atau tidak cocok, Spaces akan gagal untuk memperbarui atau memulai.

## Menggunakan hyp cli dan kubectl
<a name="customization-hyp-cli"></a>

Pengguna dapat melakukan CRUD pada template dengan Hyperpod CLI

```
### 1. Create a Space Template
hyp create hyp-space-template --file template.yaml

### 2. List Space Templates
hyp list hyp-space-template
hyp list hyp-space-template --output json

### 3. Describe a Space Template
hyp describe hyp-space-template --name my-template
hyp describe hyp-space-template --name my-template --output json

### 4. Update a Space Template
hyp update hyp-space-template --name my-template --file updated-template.yaml

### 5. Delete a Space Template
hyp delete hyp-space-template --name my-template
```

Untuk membuat templat khusus, Anda dapat menggunakan templat sistem kami sebagai titik awal. Template ini akan bekerja untuk gambar seperti SMD, namun dapat disesuaikan berdasarkan gambar yang digunakan oleh admin.

Contoh JupyterLab template kustom:

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: WorkspaceTemplate
metadata:
  name: my-jupyter-template
  namespace: my-namespace
spec:
  displayName: "My Custom Jupyter Lab"
  description: "Custom Jupyter Lab with specific configurations"
  defaultImage: "public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu"
  allowedImages:
    - "public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu"
    - "public.ecr.aws/sagemaker/sagemaker-distribution:latest-gpu"
  defaultResources:
    requests:
      cpu: "1"
      memory: "4Gi"
    limits:
      cpu: "4"
      memory: "16Gi"
  primaryStorage:
    defaultSize: "10Gi"
    minSize: "5Gi"
    maxSize: "50Gi"
    defaultStorageClassName: "sagemaker-spaces-default-storage-class"
    defaultMountPath: "/home/sagemaker-user"
  defaultContainerConfig:
    command: ["/opt/amazon/sagemaker/workspace/bin/entrypoint-workspace-jupyterlab"]
  defaultPodSecurityContext:
    fsGroup: 1000
  defaultOwnershipType: "Public"
  defaultAccessStrategy:
    name: "hyperpod-access-strategy"
  allowSecondaryStorages: true
  appType: "jupyterlab"
```

Contoh template Editor Kode kustom:

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: WorkspaceTemplate
metadata:
  name: my-code-editor-template
  namespace: my-namespace
spec:
  displayName: "My Custom Code Editor"
  description: "Custom Code Editor with specific configurations"
  defaultImage: "public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu"
  allowedImages:
    - "public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu"
    - "public.ecr.aws/sagemaker/sagemaker-distribution:latest-gpu"
  defaultResources:
    requests:
      cpu: "1"
      memory: "4Gi"
    limits:
      cpu: "4"
      memory: "16Gi"
  primaryStorage:
    defaultSize: "10Gi"
    minSize: "5Gi"
    maxSize: "50Gi"
    defaultStorageClassName: "sagemaker-spaces-default-storage-class"
    defaultMountPath: "/home/sagemaker-user"
  defaultContainerConfig:
    command: ["/opt/amazon/sagemaker/workspace/bin/entrypoint-workspace-code-editor"]
  defaultPodSecurityContext:
    fsGroup: 1000
  defaultOwnershipType: "Public"
  defaultAccessStrategy:
    name: "hyperpod-access-strategy"
  allowSecondaryStorages: true
  appType: "code-editor"
```