View a markdown version of this page

Publikasikan paket ke saluran conda Amazon S3 - Awan Batas Waktu

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

Publikasikan paket ke saluran conda Amazon S3

Anda dapat menerbitkan paket conda ke bucket Amazon Simple Storage Service (Amazon S3) sehingga pekerja Dead AWS line Cloud (Deadline Cloud) dapat menginstalnya untuk menjalankan pekerjaan. Per rattler-build publish intah bekerja dengan Amazon S3 dengan cara yang sama seperti dengan saluran sistem file lokal. Perintah dapat membuat resep dan mempublikasikan hasilnya, atau menerbitkan file paket yang sudah Anda buat. Dalam kedua kasus, perintah mengunggah paket ke bucket dan mengindeks saluran dalam satu langkah.

Per rattler-build publish intah diautentikasi dengan AWS menggunakan rantai kredensi standar, sehingga menggunakan AWS konfigurasi Anda seperti alat apa pun AWS . Untuk informasi selengkapnya tentang mengonfigurasi kredenSIAL, lihat Konfigurasi dan pengaturan file kredensia di AWS Command Line Interface (AWS CLI) Panduan Pengguna.

Prasyarat

Sebelum Anda menerbitkan paket ke Amazon S3, lengkapi prasyarat berikut:

  • pixi dan rattler-build — Instal pixi dari pixi.sh di situs web Pixi, lalu instal. rattler-build

    pixi global install rattler-build
  • git — Diperlukan untuk mengkloning repositori sampel. PadaWindows, git for Windows di situs web Git untuk Windows juga menyediakan bash shell, yang diperlukan beberapa resep Windows sampel.

  • Bucket Amazon S3 — Bucket Amazon S3 untuk digunakan sebagai saluran conda. Anda dapat menggunakan bucket lampiran pekerjaan dari farm Deadline Cloud Anda atau membuat bucket terpisah.

  • AWS kredenSIAL — Konfigurasikan kredenSIAL pada workstation Anda menggunakan aws configure perintah atau aws login perintah. Untuk informasi selengkapnya, lihat Menyiapkan AWS CLI di AWS Command Line Interface Panduan Pengguna.

  • Izin IAM — (Opsional) Untuk mengurangi cakupan izin yang dimiliki kredentif Anda, Anda dapat menggunakan kebijakan AWS Identity and Access Management (IAM) yang hanya memberikan izin berikut pada bucket Amazon S3 dan awalan saluran yang Anda gunakan (misalnya,/Conda/*):

    • s3:GetObject

    • s3:PutObject

    • s3:DeleteObject

    • s3:ListBucket

    • s3:GetBucketLocation

Menerbitkan paket ke saluran Amazon S3

Gunakan rattler-build publish dengan s3:// target untuk menerbitkan paket ke saluran conda Amazon S3 Anda. Jika saluran tidak ada di bucket, meng rattler-build inisialisasi saluran secara otomatis. Sebelum Anda mulai, pastikan Anda telah menyelesaikan prasyarat.

Contoh berikut menerbitkan resep sampel Blender 4.5 dari repositori deadline-cloud-sample di situs web. GitHub Anda dapat mengganti resep yang berbeda dari repositori sampel atau menggunakan resep Anda sendiri.

catatan

Aplikasi besar dapat membutuhkan puluhan GB ruang disk kosong untuk arsip sumber, file yang diekstraksi, dan output build. Pastikan Anda menggunakan disk dengan ruang yang cukup tersedia untuk output build paket.

Untuk menerbitkan paket ke saluran Amazon S3
  1. Kloning repositori sampel Deadline Cloud.

    git clone https://github.com/aws-deadline/deadline-cloud-samples.git
  2. Ubah ke direktori conda_recipes.

    cd deadline-cloud-samples/conda_recipes
  3. Jalankan perintah berikut. Ganti amzn-s3-demo-bucket dengan nama bucket Anda.

    rattler-build publish blender-4.5/recipe/recipe.yaml --to s3://amzn-s3-demo-bucket/Conda/Default --build-number=+1

    A /Conda/Default walan mengatur saluran di dalam bucket. Anda dapat menggunakan awalan yang berbeda, tetapi awalan harus konsisten di semua perintah dan konfigurasi antrian yang mereferensikan saluran.

Tentang nomor build

--build-number=+1Opsi ini secara otomatis memilih nomor build berikutnya berdasarkan apa yang sudah ada di saluran tujuan. Praktik terbaik adalah jangan pernah mengganti paket di saluran. Selalu buat ke nomor build baru jika paket memiliki nama file yang sama. Menggunakan --build-number=+1 mencapai hal ini saat Anda membangun ke saluran produksi atau saluran pementasan yang mencerminkan produksi.

Jika Anda ingin mengontrol nomor build secara langsung, Anda dapat mengaturnya dengan nilai tertentu seperti--build-number=7. Jika Anda menghilangkan opsi, gunakan rattler-build nomor build yang ditentukan dalam recipe.yaml file.

Jika resep paket Anda bergantung pada paket dari saluran tertentu, seperti conda-forge di situs web conda-forge, tambahkan -c conda-forge ke perintah.

Anda juga dapat menerbitkan file paket yang sudah Anda buat, misalnya, .conda file dari build lokal. Ganti amzn-s3-demo-bucket dengan nama bucket Anda.

rattler-build publish output/linux-64/blender-4.5.0-hb0f4dca_0.conda \ --to s3://amzn-s3-demo-bucket/Conda/Default

Menginisialisasi atau mengindeks ulang saluran

Saat Anda menggunakan rattler-build publish untuk menerbitkan paket, perintah menginisialisasi saluran secara otomatis jika saluran tersebut belum ada. Dalam kebanyakan kasus, Anda tidak perlu menginisialisasi atau mengindeks ulang saluran secara manual.

Anda mungkin perlu menginisialisasi atau mengindeks ulang saluran secara manual dalam situasi berikut:

  • Anda ingin membuat saluran kosong sebelum menerbitkan paket apa pun, misalnya, untuk memverifikasi bahwa lingkungan antrian Deadline Cloud Anda dapat terhubung ke saluran.

  • Anda mengunggah atau menghapus .conda file secara langsung dengan alat Amazon S3 alih-alih menggunakanrattler-build publish, dan indeks saluran sudah kedaluwarsa.

Menginisialisasi saluran kosong

Untuk menginisialisasi saluran kosong, buat repodata.json file dan unggah ke noarch subdirektori awalan saluran. Ganti amzn-s3-demo-bucket dengan nama bucket Anda.

echo '{"info":{"subdir":"noarch"},"packages":{},"packages.conda":{},"removed":[],"repodata_version":1}' > empty_channel_repodata.json aws s3api put-object --body empty_channel_repodata.json --key Conda/Default/noarch/repodata.json --bucket amzn-s3-demo-bucket

A /Conda/Default walan harus sesuai dengan awalan saluran yang digunakan lingkungan antrian Anda. Setelah menginisialisasi saluran, Anda dapat menerbitkan paket ke saluran dengan menggunakanrattler-build publish.

Mengindeks ulang saluran

Jika indeks saluran kedaluwarsa, gunakan rattler-index untuk membangun kembali indeks dari file paket di saluran. Pertama, instalrattler-index.

pixi global install rattler-index

Kemudian indeks ulang saluran. Ganti amzn-s3-demo-bucket dengan nama bucket Anda.

rattler-index s3 s3://amzn-s3-demo-bucket/Conda/Default

Menguji paket

Setelah Anda menerbitkan paket, buat proyek pixi sementara untuk memverifikasi bahwa paket berfungsi dengan benar. Proyek menginstal paket dari saluran Amazon S3.

Untuk menguji paket
  1. Buat direktori pengujian sementara dan inisialisasi proyek pixi dengan saluran Amazon S3. Ganti amzn-s3-demo-bucket dengan nama bucket Anda.

    mkdir package-test-env cd package-test-env pixi init --channel s3://amzn-s3-demo-bucket/Conda/Default
  2. Tambahkan paket ke proyek.

    pixi add blender=4.5
  3. Pastikan paket berfungsi dengan benar.

    pixi run blender --version

    Per pixi run intah mengaktifkan lingkungan conda untuk direktori proyek dan menjalankan perintah yang ditentukan di dalamnya. Lingkungan tetap ada di direktori proyek, sehingga Anda dapat menggunakan pixi run perintah yang sama dari terminal lain. Untuk informasi lebih lanjut, lihat pixi run perintah di situs web Pixi.

Menghapus paket dari saluran

Hindari menghapus paket dari saluran yang Anda gunakan untuk produksi, karena lockfiles mereferensikan paket tertentu dengan hash. Menghapus paket mencegah pembuatan ulang lingkungan dari file kunci tersebut. Untuk saluran pengembangan dan pengujian, Anda dapat menghapus paket tertentu dengan menghapus .conda file dari bucket dan kemudian mengindeks ulang saluran.

Hapus file paket dan kemudian indeks ulang saluran. Ganti amzn-s3-demo-bucket dengan nama bucket Anda.

aws s3 rm s3://amzn-s3-demo-bucket/Conda/Default/linux-64/blender-4.5.0-hb0f4dca_1.conda

Setelah menghapus file, indeks ulang saluran untuk memperbarui metadata saluran. Untuk petunjuk, lihat Meng indeks ulang saluran.

File paket disimpan dalam subdirektori khusus platform sepertilinux-64,, win-64 atau. osx-arm64 Untuk membuat daftar paket dalam subdirektori, jalankan perintah berikut.

aws s3 ls s3://amzn-s3-demo-bucket/Conda/Default/linux-64/

Membersihkan

Setelah pengujian, hapus direktori proyek uji.

Untuk membersihkan sumber daya pengujian
  • Hapus direktori proyek uji.

    Akti Linux f macOS kan dan, jalankan perintah berikut.

    rm -rf package-test-env

    Pada Windows (cmd), jalankan perintah berikut.

    rmdir /s /q package-test-env

Membangun Debugging

Jika build gagal, per rattler-build tahankan direktori build sehingga Anda dapat menyelidiki. Jalankan perintah berikut untuk membuka shell interaktif di lingkungan build dengan semua variabel lingkungan yang diatur seperti selama pembuatan.

rattler-build debug shell

Dari shell debug, Anda dapat memodifikasi file, menjalankan perintah build individual, dan menambahkan dependensi untuk mengisolasi masalah. Untuk informasi selengkapnya, lihat Debugging build di situs web prefix.dev.

Membangun paket untuk platform lain

Per rattler-build publish intah membangun paket untuk sistem operasi workstation tempat perintah berjalan. Jika armada Deadline Cloud Anda menggunakan sistem operasi yang berbeda dari workstation Anda, atau jika paket Anda memiliki persyaratan host lain, Anda memiliki opsi berikut:

  • J rattler-build publish alankan pada host yang cocok dengan sistem operasi target. Misalnya, gunakan instans Amazon Elastic Compute Cloud (Amazon EC2) yang sedang berjalan Linux untuk membuat paket untuk armadaLinux.

  • Gunakan antrian pembuatan paket Deadline Cloud untuk mengotomatiskan build pada platform target. Lihat Membuat antrian pembuatan paket.

  • (Lanjutan) Gunakan kompilasi silang untuk membangun paket untuk platform yang berbeda dari workstation Anda. Untuk informasi selengkapnya, lihat Cross-compilation di situs web prefix.dev.

Langkah selanjutnya

Setelah Anda menerbitkan paket ke saluran conda Amazon S3, konfigurasikan antrian Deadline Cloud untuk menggunakan saluran: