

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

# Menginstal dependensi Python
<a name="working-dags-dependencies"></a>

Ketergantungan Python adalah paket atau distribusi apa pun yang tidak termasuk dalam instalasi dasar Apache Airflow untuk versi Apache Airflow Anda di lingkungan Amazon Managed Workflow untuk Apache Airflow. Topik ini menjelaskan langkah-langkah untuk menginstal dependensi Apache Airflow Python di lingkungan Amazon MWAA menggunakan `requirements.txt` file di bucket Amazon S3 Anda.

**Contents**
+ [Prasyarat](#working-dags-dependencies-prereqs)
+ [Cara kerjanya](#working-dags-dependencies-how)
+ [Ikhtisar dependensi Python](#working-dags-dependencies-overview)
  + [Lokasi dependensi Python dan batas ukuran](#working-dags-dependencies-quota)
+ [Membuat file requirements.txt](#working-dags-dependencies-test-create)
  + [Langkah satu: Uji dependensi Python menggunakan utilitas Amazon MWAA CLI](#working-dags-dependencies-cli-utility)
  + [Langkah kedua: Buat `requirements.txt`](#working-dags-dependencies-syntax-create)
+ [Mengunggah `requirements.txt` ke Amazon S3](#configuring-dag-dependencies-upload)
  + [Menggunakan AWS CLI](#configuring-dag-dependencies-upload-cli)
  + [Menggunakan konsol Amazon S3](#configuring-dag-dependencies-upload-console)
+ [Menginstal dependensi Python di lingkungan Anda](#configuring-dag-dependencies-installing)
  + [Menentukan jalur ke `requirements.txt` di konsol Amazon MWAA (pertama kali)](#configuring-dag-dependencies-first)
  + [Menentukan `versi` requirements.txt di konsol Amazon MWAA](#working-dags-dependencies-mwaaconsole-version)
+ [Mengakses log untuk `requirements.txt Anda`](#working-dags-dependencies-logs)
+ [Apa selanjutnya?](#working-dags-dependencies-next-up)

## Prasyarat
<a name="working-dags-dependencies-prereqs"></a>

Anda akan memerlukan yang berikut sebelum Anda dapat menyelesaikan langkah-langkah di halaman ini.
+ **Iz ** in — Anda Akun AWS harus telah diberikan akses oleh administrator ke kebijakan kontrol [ AmazonMWAAFullConsoleAccess ](access-policies.md#console-full-access) akses untuk lingkungan Anda. Selain itu, lingkungan Amazon MWAA Anda harus diizinkan oleh peran [ eksekusi Anda ](mwaa-create-role.md) untuk mengakses AWS sumber daya yang digunakan oleh lingkungan Anda.
+ **Ak ** ses — Jika Anda memerlukan akses ke repositori publik untuk menginstal dependensi langsung pada server web, lingkungan Anda harus dikonfigurasi dengan akses server web jaringan ** ** publik. Untuk informasi lebih lanjut, lihat[Mode akses Apache Airflow](configuring-networking.md).
+ **Konfigurasi Amazon S3 ** — Bucket [ Amazon S3 yang ](mwaa-s3-bucket.md) digunakan untuk menyimpan DAG, plugin khusus di`plugins.zip`, dan dependensi Python Anda `requirements.txt` harus dikonfigurasi dengan Akses Pu * blik Diblokir * dan * Versi Diaktifkan. *

## Cara kerjanya
<a name="working-dags-dependencies-how"></a>

Di Amazon MWAA, Anda menginstal semua dependensi Python dengan mengunggah `requirements.txt` file ke bucket Amazon S3 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 di lingkungan Anda, Anda harus melakukan tiga hal:

1. Buat `requirements.txt` file secara lokal.

1. Unggah lokal `requirements.txt` ke bucket Amazon S3 Anda.

1. Tentukan versi file ini di ** bidang File Per ** syaratan 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
<a name="working-dags-dependencies-overview"></a>

Anda dapat menginstal tambahan Apache Airflow dan dependensi Python lainnya dari Python Package Index (PyPi.org), Python wheels (`.whl`), atau dependensi Python yang dihosting di Repo Compliant PyPi/PEP-503 pribadi di lingkungan Anda.

### Lokasi dependensi Python dan batas ukuran
<a name="working-dags-dependencies-quota"></a>

Penjadwal Apache Airflow 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 pustaka yang ukuran gabungannya kurang dari 1 GB. Semakin banyak pustaka yang perlu diinstal Amazon MWAA, semakin lama * waktu * startup di suatu 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
<a name="working-dags-dependencies-test-create"></a>

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
<a name="working-dags-dependencies-cli-utility"></a>
+ Utilitas antarmuka baris perintah (CLI) mereplikasi Alur Kerja Terkelola Amazon untuk lingkungan Apache Airflow secara lokal.
+ CLI membangun image kontainer Docker secara lokal yang mirip dengan gambar produksi Amazon MWAA. Anda dapat menggunakan ini untuk menjalankan lingkungan Apache Airflow lokal untuk mengembangkan dan menguji DAG, plugin khusus, dan dependensi sebelum menerapkan ke Amazon MWAA.
+ Untuk menjalankan CLI, lihat [ aws-mwaa-docker-images on](https://github.com/aws/amazon-mwaa-docker-images). GitHub

### Langkah kedua: Buat `requirements.txt`
<a name="working-dags-dependencies-syntax-create"></a>

Bagian berikut menjelaskan cara menentukan dependensi Python dari Indeks Paket [ Python ](https://pypi.org/) dalam `requirements.txt` file.

------
#### [ Apache Airflow v3 ]

1. **Uji secara lokal**. Tambahkan pustaka tambahan secara berulang untuk menemukan kombinasi paket yang tepat dan versinya, sebelum membuat `requirements.txt` file. Untuk menjalankan utilitas Amazon MWAA CLI, lihat [ aw ](https://github.com/aws/amazon-mwaa-docker-images) s-mwaa-docker-images on. GitHub

1. **Tinjau tambahan paket Apache Airflow**. Untuk mengakses daftar paket yang diinstal untuk Apache Airflow v3 di Amazon MWAA, lihat [ aws-mwa `requirements.txt`](https://github.com/aws/amazon-mwaa-docker-images/blob/main/requirements.txt) a-docker-images di situs web. GitHub 

1. **Tambahkan pernyataan kendala**. Tambahkan file batasan untuk lingkungan Apache Airflow v3 Anda di bagian atas `requirements.txt` file Anda. File batasan Apache Airflow menentukan versi penyedia yang tersedia pada saat rilis Apache Airflow.

    Dalam contoh berikut, ganti {{{Airflow-version}}} dengan versi Airflow lingkungan Anda. Ganti {{{Python-version}}} dengan versi Python yang kompatibel dengan lingkungan Anda. 

   Untuk informasi tentang versi Python yang kompatibel dengan lingkungan Apache Airflow Anda, lihat Versi [ Apache Airflow](airflow-versions.md#airflow-versions-official). 

   ```
   --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-{{{Airflow-version}}}/constraints-{{{Python-version}}}.txt"
   ```

    Jika file batasan menentukan bahwa `xyz==1.0` paket tidak kompatibel dengan paket lain di lingkungan Anda, `pip3 install` akan gagal mencegah pustaka yang tidak kompatibel diinstal ke lingkungan Anda. Jika instalasi gagal untuk paket apa pun, Anda dapat mengakses log kesalahan untuk setiap komponen Apache Airflow (penjadwal, pekerja, dan server web) di aliran log yang sesuai di CloudWatch Log. Untuk informasi selengkapnya tentang jenis log, lihat[Mengakses log Aliran Udara di Amazon CloudWatch](monitoring-airflow.md). 
**Memperbarui versi file kendala**  
Jika Anda perlu memperbarui versi dalam file [ batasan, lihat file Constraint. ](connections-packages.md#connections-packages-constraints)

1. **Paket Apache Airflow**. Tambahkan [ paket ekstra ](http://airflow.apache.org/docs/apache-airflow/2.5.1/extra-packages-ref.html) dan versi (`==`). Ini membantu mencegah paket dengan nama yang sama, tetapi versi yang berbeda, tidak diinstal di lingkungan Anda.

   ```
   apache-airflow[package-extra]==3.2.1
   ```

1. **Pustaka Python**. Tambahkan nama paket dan version (`==`) dalam `requirements.txt` file Anda. Ini membantu [ PyPi.org ](https://pypi.org) mencegah pembaruan yang rusak di masa mendatang agar tidak diterapkan secara otomatis.

   ```
   {{library}} == {{version}}
   ```  
**Example Boto3 dan psycopg2-biner**  

   Contoh ini disediakan untuk tujuan demonstrasi. Pustaka boto dan psycopg2-binary disertakan dengan instalasi dasar untuk Apache Airflow v3 dan tidak perlu ditentukan dalam file. `requirements.txt`

   ```
   boto3==1.42.84
   botocore==1.42.84
   psycopg2-binary==2.9.11
   ```

   Jika paket ditentukan tanpa versi, Amazon MWAA menginstal versi terbaru paket dari [ PyPi.org](https://pypi.org). Versi ini mungkin bertentangan dengan paket lain di Anda`requirements.txt`.

------
#### [ Apache Airflow v2 ]

1. **Uji secara lokal**. Tambahkan pustaka tambahan secara berulang untuk menemukan kombinasi paket yang tepat dan versinya, sebelum membuat `requirements.txt` file. Untuk menjalankan utilitas Amazon MWAA CLI, lihat [ aw ](https://github.com/aws/amazon-mwaa-docker-images) s-mwaa-docker-images on. GitHub

1. **Tinjau tambahan paket Apache Airflow**. Untuk mengakses daftar paket yang diinstal untuk Apache Airflow v2 di Amazon MWAA, akses [ aws-mwa `requirements.txt`](https://github.com/aws/amazon-mwaa-docker-images/blob/main/requirements.txt) a-docker-images di situs web. GitHub 

1. **Tambahkan pernyataan kendala**. Tambahkan file batasan untuk lingkungan Apache Airflow v2 Anda di bagian atas `requirements.txt` file Anda. File batasan Apache Airflow menentukan versi penyedia yang tersedia pada saat rilis Apache Airflow.

    Dimulai dengan Apache Airflow v2.7.2, file persyaratan Anda harus menyertakan `--constraint` pernyataan. Jika Anda tidak memberikan batasan, Amazon MWAA akan menentukan satu untuk Anda untuk memastikan paket yang tercantum dalam persyaratan Anda kompatibel dengan versi Apache Airflow yang Anda gunakan. 

   Dalam contoh berikut, ganti {{{Airflow-version}}} dengan versi Airflow lingkungan Anda. Ganti {{{Python-version}}} dengan versi Python yang kompatibel dengan lingkungan Anda.

   Untuk informasi tentang versi Python yang kompatibel dengan lingkungan Apache Airflow Anda, lihat Versi [ Apache Airflow](airflow-versions.md#airflow-versions-official).

   ```
   --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-{{{Airflow-version}}}/constraints-{{{Python-version}}}.txt"
   ```

   Jika file batasan menentukan bahwa `xyz==1.0` paket tidak kompatibel dengan paket lain di lingkungan Anda, `pip3 install` akan gagal mencegah pustaka yang tidak kompatibel diinstal ke lingkungan Anda. Jika instalasi gagal untuk paket apa pun, Anda dapat mengakses log kesalahan untuk setiap komponen Apache Airflow (penjadwal, pekerja, dan server web) di aliran log yang sesuai di CloudWatch Log. Untuk informasi selengkapnya tentang jenis log, lihat[Mengakses log Aliran Udara di Amazon CloudWatch](monitoring-airflow.md).
**Memperbarui versi file kendala**  
Jika Anda perlu memperbarui versi dalam file [ batasan, lihat file Constraint. ](connections-packages.md#connections-packages-constraints)

1. **Paket Apache Airflow**. Tambahkan [ paket ekstra ](http://airflow.apache.org/docs/apache-airflow/2.5.1/extra-packages-ref.html) dan versi (`==`). Ini membantu mencegah paket dengan nama yang sama, tetapi versi yang berbeda, tidak diinstal di lingkungan Anda.

   ```
   apache-airflow[package-extra]==2.5.1
   ```

1. **Pustaka Python**. Tambahkan nama paket dan version (`==`) dalam `requirements.txt` file Anda. Ini membantu [ PyPi.org ](https://pypi.org) mencegah pembaruan yang rusak di masa mendatang agar tidak diterapkan secara otomatis.

   ```
   {{library}} == {{version}}
   ```  
**Example Boto3 dan psycopg2-biner**  

   Contoh ini disediakan untuk tujuan demonstrasi. Pustaka boto dan psycopg2-binary disertakan dengan instalasi dasar Apache Airflow v2 dan tidak perlu ditentukan dalam file. `requirements.txt`

   ```
   boto3==1.17.54
   boto==2.49.0
   botocore==1.20.54
   psycopg2-binary==2.8.6
   ```

   Jika paket ditentukan tanpa versi, Amazon MWAA menginstal versi terbaru paket dari [ PyPi.org](https://pypi.org). Versi ini mungkin bertentangan dengan paket lain di Anda`requirements.txt`.

------

## Mengunggah `requirements.txt` ke Amazon S3
<a name="configuring-dag-dependencies-upload"></a>

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
<a name="configuring-dag-dependencies-upload-cli"></a>

 AWS Command Line Interface (AWS CLI) adalah alat open source yang dapat Anda gunakan untuk berinteraksi dengan AWS layanan menggunakan perintah di shell baris perintah Anda. Untuk menyelesaikan langkah-langkah di halaman ini, Anda memerlukan yang berikut:
+ [AWS CLI — Instal versi 2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html).
+ [AWS CLI — Konfigurasi cepat dengan `aws configure`](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).

**Untuk mengunggah menggunakan AWS CLI**

1. Gunakan perintah berikut untuk membuat daftar semua bucket Amazon S3 Anda.

   ```
   aws s3 ls
   ```

1. Gunakan perintah berikut untuk membuat daftar file dan folder di bucket Amazon S3 untuk lingkungan Anda.

   ```
   aws s3 ls s3://{{YOUR_S3_BUCKET_NAME}}
   ```

1. Perintah berikut mengunggah `requirements.txt` file ke bucket Amazon S3.

   ```
   aws s3 cp requirements.txt s3://{{amzn-s3-demo-bucket}}/requirements.txt
   ```

### Menggunakan konsol Amazon S3
<a name="configuring-dag-dependencies-upload-console"></a>

Konsol Amazon S3 adalah antarmuka pengguna berbasis web yang dapat Anda gunakan untuk membuat dan mengelola sumber daya di bucket Amazon S3 Anda.

**Untuk mengunggah menggunakan konsol Amazon S3**

1. Buka [ halaman ](https://console.aws.amazon.com/mwaa/home#/environments) Lingkungan di konsol Amazon MWAA.

1. Pilih lingkungan.

1. Pilih ** tautan bucket ** S3 di kode ** DAG di ** panel S3 untuk membuka bucket penyimpanan Anda di konsol.

1. Pilih **Unggah**.

1. Pilih ** Tambah file**.

1. Pilih salinan lokal Anda`requirements.txt`, pilih ** Unggah**.

## Menginstal dependensi Python di lingkungan Anda
<a name="configuring-dag-dependencies-installing"></a>

Bagian ini menjelaskan cara menginstal dependensi yang Anda unggah ke bucket Amazon S3 dengan menentukan jalur ke file requirements.txt, dan menentukan versi file requirements.txt setiap kali diperbarui.

### Menentukan jalur ke `requirements.txt` di konsol Amazon MWAA (pertama kali)
<a name="configuring-dag-dependencies-first"></a>

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.

1. Buka [ halaman ](https://console.aws.amazon.com/mwaa/home#/environments) Lingkungan di konsol Amazon MWAA.

1. Pilih lingkungan.

1. Pilih **Edit**.

1. Pada kode ** DAG di ** panel Amazon S3, pilih ** Jelajahi S3 yang ** berdekatan dengan file ** Persyaratan - ** bidang opsional.

1. Pilih `requirements.txt` file di bucket Amazon S3 Anda.

1. Pilih **Tutup**.

1. Pilih ** Berikutnya**, ** Perbarui lingkungan**.

Anda dapat mulai menggunakan paket baru segera setelah lingkungan Anda selesai memperbarui.

### Menentukan `versi` requirements.txt di konsol Amazon MWAA
<a name="working-dags-dependencies-mwaaconsole-version"></a>

Anda perlu menentukan versi `requirements.txt` file Anda di konsol Amazon MWAA setiap kali Anda mengunggah versi baru file Anda `requirements.txt` di bucket Amazon S3 Anda.

1. Buka [ halaman ](https://console.aws.amazon.com/mwaa/home#/environments) Lingkungan di konsol Amazon MWAA.

1. Pilih lingkungan.

1. Pilih **Edit**.

1. Pada kode ** DAG di ** panel Amazon S3, pilih `requirements.txt` versi dalam daftar dropdown.

1. Pilih ** Berikutnya**, ** Perbarui lingkungan**.

Anda dapat mulai menggunakan paket baru segera setelah lingkungan Anda selesai memperbarui.

## Mengakses log untuk `requirements.txt Anda`
<a name="working-dags-dependencies-logs"></a>

Anda dapat melihat log Apache Airflow untuk penjadwal yang menjadwalkan alur kerja Anda dan mengurai folder Anda. `dags` Langkah-langkah berikut menjelaskan cara membuka grup log untuk penjadwal di konsol Amazon MWAA, dan mengakses log Apache Airflow di konsol CloudWatch Logs.

**Untuk mengakses log untuk `requirements.txt`**

1. Buka [ halaman ](https://console.aws.amazon.com/mwaa/home#/environments) Lingkungan di konsol Amazon MWAA.

1. Pilih lingkungan.

1. Pilih grup log penjadwal ** aliran udara ** di ** panel ** Monitoring.

1. Pilih `requirements_install_ip` log stream ** log masuk**.

1. Lihat daftar paket yang diinstal pada lingkungan di`/usr/local/airflow/.local/bin`. 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))
   ```

1. Tinjau daftar paket dan apakah salah satu dari ini mengalami kesalahan selama instalasi. Jika terjadi kesalahan, Anda mendapatkan kesalahan yang mirip dengan berikut ini:

   ```
   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?
<a name="working-dags-dependencies-next-up"></a>

Uji DAG, plugin khusus, dan dependensi Python Anda secara lokal menggunakan [ aws- ](https://github.com/aws/amazon-mwaa-docker-images) mwaa-docker-images on. GitHub