Kustomisasi instance SageMaker notebook menggunakan LCC skrip - Amazon SageMaker

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

Kustomisasi instance SageMaker notebook menggunakan LCC skrip

penting

IAMKebijakan khusus yang memungkinkan Amazon SageMaker Studio atau Amazon SageMaker Studio Classic membuat SageMaker sumber daya Amazon juga harus memberikan izin untuk menambahkan tag ke sumber daya tersebut. Izin untuk menambahkan tag ke sumber daya diperlukan karena Studio dan Studio Classic secara otomatis menandai sumber daya apa pun yang mereka buat. Jika IAM kebijakan mengizinkan Studio dan Studio Classic membuat sumber daya tetapi tidak mengizinkan penandaan, kesalahan "AccessDenied" dapat terjadi saat mencoba membuat sumber daya. Untuk informasi selengkapnya, lihat Berikan izin untuk menandai sumber daya SageMaker.

AWS Kebijakan Terkelola untuk Amazon SageMakeryang memberikan izin untuk membuat SageMaker sumber daya sudah menyertakan izin untuk menambahkan tag saat membuat sumber daya tersebut.

Konfigurasi siklus hidup (LCC) menyediakan skrip shell yang berjalan hanya saat Anda membuat instance notebook atau kapan pun Anda memulainya. Saat Anda membuat instance notebook, Anda dapat membuat yang baru LCC atau melampirkan LCC yang sudah Anda miliki. Skrip konfigurasi siklus hidup berguna untuk kasus penggunaan berikut:

  • Menginstal paket atau contoh notebook pada instance notebook

  • Mengkonfigurasi jaringan dan keamanan untuk instance notebook

  • Menggunakan skrip shell untuk menyesuaikan instance notebook

Anda juga dapat menggunakan skrip konfigurasi siklus hidup untuk mengakses AWS layanan dari buku catatan Anda. Misalnya, Anda dapat membuat skrip yang memungkinkan Anda menggunakan buku catatan untuk mengontrol AWS sumber daya lain, seperti EMR instans Amazon.

Kami memelihara repositori publik skrip konfigurasi siklus hidup notebook yang menangani kasus penggunaan umum untuk menyesuaikan instance notebook di -. https://github.com/aws-samples/ amazon-sagemaker-notebook-instance lifecycle-config-samples

catatan

Setiap skrip memiliki batas 16384 karakter.

Nilai variabel $PATH lingkungan yang tersedia untuk kedua skrip adalah/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin. Direktori kerja, yang merupakan nilai variabel $PWD lingkungan, adalah/.

Lihat CloudWatch Log untuk konfigurasi siklus hidup instance notebook di grup /aws/sagemaker/NotebookInstances log dalam aliran log. [notebook-instance-name]/[LifecycleConfigHook]

Skrip tidak dapat berjalan lebih dari 5 menit. Jika skrip berjalan lebih dari 5 menit, skrip gagal dan instance notebook tidak dibuat atau dimulai. Untuk membantu mengurangi waktu berjalan skrip, coba yang berikut ini:

  • Kurangi langkah-langkah yang diperlukan. Misalnya, batasi lingkungan conda mana untuk menginstal paket besar.

  • Jalankan tugas dalam proses paralel.

  • Gunakan nohup perintah dalam skrip Anda.

Anda dapat melihat daftar konfigurasi siklus hidup instance notebook yang sebelumnya dibuat dengan memilih Konfigurasi Siklus Hidup di konsol. SageMaker Anda dapat melampirkan instance notebook LCC saat membuat instance notebook baru. Untuk informasi selengkapnya tentang membuat instance notebook, lihatMembuat instance SageMaker notebook Amazon.

Praktik Terbaik Konfigurasi Siklus Hidup

Berikut ini adalah praktik terbaik untuk menggunakan konfigurasi siklus hidup:

penting

Kami tidak menyarankan untuk menyimpan informasi sensitif dalam skrip konfigurasi siklus hidup Anda.

  • Konfigurasi siklus hidup berjalan sebagai pengguna. root Jika skrip Anda membuat perubahan dalam /home/ec2-user/SageMaker direktori, (misalnya, menginstal paket denganpip), gunakan perintah sudo -u ec2-user untuk menjalankan sebagai ec2-user pengguna. Ini adalah pengguna yang sama dengan yang SageMaker dijalankan Amazon.

  • SageMaker instance notebook menggunakan conda lingkungan untuk mengimplementasikan kernel yang berbeda untuk notebook Jupyter. Jika Anda ingin menginstal paket yang tersedia untuk satu atau lebih kernel notebook, lampirkan perintah untuk menginstal paket dengan perintah conda lingkungan yang mengaktifkan lingkungan conda yang berisi kernel tempat Anda ingin menginstal paket.

    Misalnya, jika Anda ingin menginstal paket hanya untuk python3 lingkungan, gunakan kode berikut:

    #!/bin/bash sudo -u ec2-user -i <<EOF # This will affect only the Jupyter kernel called "conda_python3". source activate python3 # Replace myPackage with the name of the package you want to install. pip install myPackage # You can also perform "conda install" here as well. source deactivate EOF

    Jika Anda ingin menginstal paket di semua lingkungan conda dalam instance notebook, gunakan kode berikut:

    #!/bin/bash sudo -u ec2-user -i <<EOF # Note that "base" is special environment name, include it there as well. for env in base /home/ec2-user/anaconda3/envs/*; do source /home/ec2-user/anaconda3/bin/activate $(basename "$env") # Installing packages in the Jupyter system environment can affect stability of your SageMaker # Notebook Instance. You can remove this check if you'd like to install Jupyter extensions, etc. if [ $env = 'JupyterSystemEnv' ]; then continue fi # Replace myPackage with the name of the package you want to install. pip install --upgrade --quiet myPackage # You can also perform "conda install" here as well. source /home/ec2-user/anaconda3/bin/deactivate done EOF
  • Anda harus menyimpan semua lingkungan conda di folder lingkungan default (/home/user/anaconda3/envs).

penting

Saat Anda membuat atau mengubah skrip, sebaiknya gunakan editor teks yang menyediakan jeda baris bergaya Unix, seperti editor teks yang tersedia di konsol saat Anda membuat buku catatan. Menyalin teks dari sistem operasi non-Linux mungkin menyebabkan jeda baris yang tidak kompatibel dan mengakibatkan kesalahan yang tidak terduga.