Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menginstal dependensi Python
Ketergantungan Python adalah paket atau distribusi apa pun yang tidak termasuk dalam instalasi dasar Apache Airflow untuk versi Apache Airflow Anda di Amazon Managed Workflows untuk lingkungan Apache Airflow Anda. Topik ini menjelaskan langkah-langkah untuk menginstal dependensi Apache Airflow Python di lingkungan Amazon MWAA Anda menggunakan file requirements.txt
di bucket Amazon S3 Anda.
Daftar Isi
Prasyarat
Anda akan memerlukan yang berikut ini sebelum Anda dapat menyelesaikan langkah-langkah di halaman ini.
-
Izin — AWS Akun Anda harus telah diberikan akses oleh administrator Anda ke kebijakan kontrol MWAAFull ConsoleAccess akses Amazon untuk lingkungan Anda. Selain itu, lingkungan Amazon MWAA Anda harus diizinkan oleh peran eksekusi Anda untuk mengakses AWS sumber daya yang digunakan oleh lingkungan Anda.
-
Akses — Jika Anda memerlukan akses ke repositori publik untuk menginstal dependensi langsung di server web, lingkungan Anda harus dikonfigurasi dengan akses server web jaringan publik. Untuk informasi selengkapnya, lihat Mode akses Apache Airflow.
-
Konfigurasi Amazon S3 - Bucket Amazon S3 yang digunakan untuk menyimpan plugin kustom DAGs Anda
plugins.zip
, dan dependensi Python harus dikonfigurasi dengan Akses Publik Diblokir danrequirements.txt
Diaktifkan Versi.
Cara kerjanya
Di Amazon MWAA, Anda menginstal semua dependensi Python dengan mengunggah file ke bucket Amazon S3 requirements.txt
Anda, lalu menentukan versi file di konsol Amazon MWAA setiap kali Anda memperbarui file. Amazon MWAA berjalan pip3 install -r requirements.txt
untuk menginstal dependensi Python pada penjadwal Apache Airflow dan masing-masing pekerja.
Untuk menjalankan dependensi Python pada lingkungan Anda, Anda harus melakukan tiga hal:
-
Buat
requirements.txt
file secara lokal. -
Unggah lokal
requirements.txt
ke bucket Amazon S3 Anda. -
Tentukan versi file ini di bidang file Persyaratan di konsol Amazon MWAA.
catatan
Jika ini adalah pertama kalinya Anda membuat dan mengunggah requirements.txt
ke bucket Amazon S3 Anda, Anda juga perlu menentukan jalur ke file di konsol Amazon MWAA. Anda hanya perlu menyelesaikan langkah ini sekali.
Ikhtisar dependensi Python
Anda dapat menginstal tambahan Apache Airflow dan dependensi Python lainnya dari Python Package Index (PyPi.org), roda Python (), atau dependensi Python yang dihosting pada Repo Compliant .whl
/PEP-503 pribadi di lingkungan Anda. PyPi
Ketergantungan Python lokasi dan batas ukuran
Penjadwal Aliran Udara Apache dan Pekerja mencari paket dalam requirements.txt
file dan paket diinstal pada lingkungan di. /usr/local/airflow/.local/bin
-
Batas ukuran. Kami merekomendasikan
requirements.txt
file yang mereferensikan perpustakaan yang ukuran gabungannya kurang dari 1 GB. Semakin banyak perpustakaan Amazon MWAA perlu menginstal, semakin lama waktu startup di lingkungan. Meskipun Amazon MWAA tidak membatasi ukuran pustaka yang diinstal secara eksplisit, jika dependensi tidak dapat diinstal dalam sepuluh menit, layanan Fargate akan habis waktu dan mencoba mengembalikan lingkungan ke keadaan stabil.
Membuat file requirements.txt
Langkah-langkah berikut menjelaskan langkah-langkah yang kami sarankan untuk membuat file requirements.txt secara lokal.
Langkah satu: Uji dependensi Python menggunakan utilitas Amazon MWAA CLI
-
Utilitas antarmuka baris perintah (CLI) mereplikasi Alur Kerja Terkelola Amazon untuk lingkungan Apache Airflow secara lokal.
-
CLI membangun image container Docker secara lokal yang mirip dengan image produksi Amazon MWAA. Ini memungkinkan Anda menjalankan lingkungan Apache Airflow lokal untuk mengembangkan dan menguji DAGs, plugin khusus, dan dependensi sebelum menerapkan ke Amazon MWAA.
-
Untuk menjalankan CLI, lihat di. aws-mwaa-local-runner
GitHub
Langkah kedua: Buat requirements.txt
Bagian berikut menjelaskan cara menentukan dependensi Python dari Indeks Paketrequirements.txt
Mengunggah requirements.txt
ke Amazon S3
Anda dapat menggunakan konsol Amazon S3 atau AWS Command Line Interface (AWS CLI) untuk mengunggah requirements.txt
file ke bucket Amazon S3 Anda.
Menggunakan AWS CLI
The AWS Command Line Interface (AWS CLI) adalah alat open source yang memungkinkan Anda berinteraksi dengan AWS layanan menggunakan perintah di shell baris perintah Anda. Untuk menyelesaikan langkah-langkah di halaman ini, Anda memerlukan yang berikut:
Untuk mengunggah menggunakan AWS CLI
-
Gunakan perintah berikut untuk membuat daftar semua bucket Amazon S3 Anda.
aws s3 ls
-
Gunakan perintah berikut untuk mencantumkan file dan folder di bucket Amazon S3 untuk lingkungan Anda.
aws s3 ls s3://
YOUR_S3_BUCKET_NAME
-
Perintah berikut mengunggah
requirements.txt
file ke bucket Amazon S3.aws s3 cp requirements.txt s3://
YOUR_S3_BUCKET_NAME
/requirements.txt
Menggunakan konsol Amazon S3
Konsol Amazon S3 adalah antarmuka pengguna berbasis web yang memungkinkan Anda membuat dan mengelola sumber daya di bucket Amazon S3 Anda.
Untuk mengunggah menggunakan konsol Amazon S3
-
Buka halaman Lingkungan
di konsol Amazon MWAA. -
Pilih lingkungan.
-
Pilih tautan bucket S3 di kode DAG di panel S3 untuk membuka bucket penyimpanan Anda di konsol Amazon S3.
-
Pilih Unggah.
-
Pilih Tambahkan file.
-
Pilih salinan lokal Anda
requirements.txt
, pilih Unggah.
Menginstal dependensi Python di lingkungan Anda
Bagian ini menjelaskan cara menginstal dependensi yang Anda unggah ke bucket Amazon S3 Anda dengan menentukan jalur ke file requirements.txt, dan menentukan versi file requirements.txt setiap kali diperbarui.
Menentukan jalur ke requirements.txt
konsol Amazon MWAA (pertama kali)
Jika ini adalah pertama kalinya Anda membuat dan mengunggah requirements.txt
ke bucket Amazon S3 Anda, Anda juga perlu menentukan jalur ke file di konsol Amazon MWAA. Anda hanya perlu menyelesaikan langkah ini sekali.
-
Buka halaman Lingkungan
di konsol Amazon MWAA. -
Pilih lingkungan.
-
Pilih Edit.
-
Pada kode DAG di panel Amazon S3, pilih Jelajahi S3 di sebelah berkas Persyaratan - bidang opsional.
-
Pilih
requirements.txt
file di bucket Amazon S3 Anda. -
Pilih Tutup.
-
Pilih Berikutnya, Perbarui lingkungan.
Anda dapat mulai menggunakan paket baru segera setelah lingkungan Anda selesai memperbarui.
Menentukan requirements.txt
versi di konsol Amazon MWAA
Anda perlu menentukan versi requirements.txt
file Anda di konsol Amazon MWAA setiap kali Anda mengunggah versi baru Anda requirements.txt
di bucket Amazon S3 Anda.
-
Buka halaman Lingkungan
di konsol Amazon MWAA. -
Pilih lingkungan.
-
Pilih Edit.
-
Pada kode DAG di panel Amazon S3, pilih
requirements.txt
versi dalam daftar tarik-turun. -
Pilih Berikutnya, Perbarui lingkungan.
Anda dapat mulai menggunakan paket baru segera setelah lingkungan Anda selesai memperbarui.
Melihat log untuk Anda requirements.txt
Anda dapat melihat log Apache Airflow untuk Scheduler yang menjadwalkan alur kerja Anda dan mengurai folder Anda. dags
Langkah-langkah berikut menjelaskan cara membuka grup log untuk Scheduler di konsol Amazon MWAA, dan melihat log Apache Airflow di konsol Log. CloudWatch
Untuk melihat log untuk requirements.txt
-
Buka halaman Lingkungan
di konsol Amazon MWAA. -
Pilih lingkungan.
-
Pilih grup log penjadwal aliran udara di panel Pemantauan.
-
Pilih
requirements_install_ip
log masuk Aliran log. -
Anda akan melihat daftar paket yang diinstal pada lingkungan di
/usr/local/airflow/.local/bin
. Sebagai contoh:Collecting appdirs==1.4.4 (from -r /usr/local/airflow/.local/bin (line 1)) Downloading https://files.pythonhosted.org/packages/3b/00/2344469e2084fb28kjdsfiuyweb47389789vxbmnbjhsdgf5463acd6cf5e3db69324/appdirs-1.4.4-py2.py3-none-any.whl Collecting astroid==2.4.2 (from -r /usr/local/airflow/.local/bin (line 2))
-
Tinjau daftar paket dan apakah salah satu dari ini mengalami kesalahan selama instalasi. Jika terjadi kesalahan, Anda mungkin melihat kesalahan yang mirip dengan yang berikut:
2021-03-05T14:34:42.731-07:00 No matching distribution found for LibraryName==1.0.0 (from -r /usr/local/airflow/.local/bin (line 4)) No matching distribution found for LibraryName==1.0.0 (from -r /usr/local/airflow/.local/bin (line 4))
Apa selanjutnya?
-
Uji plugin khusus DAGs, dan dependensi Python Anda secara lokal menggunakan on. aws-mwaa-local-runner
GitHub