Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Halaman ini memberikan informasi pemecahan masalah untuk masalah yang mungkin Anda temui saat memperbarui atau mengupgrade lingkungan Cloud Composer.
Untuk informasi pemecahan masalah terkait pembuatan lingkungan, lihat Memecahkan masalah pembuatan lingkungan.
Saat lingkungan Cloud Composer diupdate, sebagian besar masalah terjadi karena alasan berikut:
- Masalah izin akun layanan
- Masalah dependensi PyPI
- Ukuran database Airflow
Izin tidak memadai untuk memperbarui atau mengupgrade lingkungan
Jika Cloud Composer tidak dapat memperbarui atau mengupgrade lingkungan karena izin yang tidak memadai, Cloud Composer akan menampilkan pesan error berikut:
ERROR: (gcloud.composer.environments.update) PERMISSION_DENIED: The caller does not have permission
Solusi: Tetapkan peran ke akun Anda dan akun layanan lingkungan Anda seperti yang dijelaskan dalam Kontrol akses.
Akun layanan lingkungan tidak memiliki izin yang memadai
Saat membuat lingkungan Cloud Composer, Anda menentukan akun layanan yang melakukan sebagian besar operasi lingkungan. Jika akun layanan ini tidak memiliki izin yang memadai untuk operasi yang diminta, Cloud Composer akan menampilkan error:
UPDATE operation on this environment failed 3 minutes ago with the
following error message:
Composer Backend timed out. Currently running tasks are [stage:
CP_COMPOSER_AGENT_RUNNING
description: "No agent response published."
response_timestamp {
seconds: 1618203503
nanos: 291000000
}
].
Solusi: Tetapkan peran ke Akun Google Anda dan ke akun layanan lingkungan Anda seperti yang dijelaskan dalam Kontrol akses.
Ukuran database Airflow terlalu besar untuk melakukan operasi
Operasi upgrade mungkin gagal karena ukuran database Airflow terlalu besar sehingga operasi upgrade gagal.
Jika ukuran database Airflow lebih dari 20 GB, Cloud Composer akan menampilkan error berikut:
Airflow database uses more than 20 GB. Please clean the database before upgrading.
Solusi: Lakukan pembersihan database Airflow, seperti yang dijelaskan dalam Membersihkan database Airflow.
Upgrade ke versi Cloud Composer baru gagal karena konflik paket PyPI
Saat mengupgrade lingkungan dengan paket PyPI kustom yang diinstal, Anda mungkin mengalami error terkait konflik paket PyPI. Hal ini dapat terjadi karena build Airflow baru berisi versi paket bawaan yang lebih baru. Hal ini dapat menyebabkan konflik dependensi dengan paket PyPI yang Anda instal di lingkungan Anda.
Solusi:
- Untuk mendapatkan informasi mendetail tentang konflik paket, jalankan pemeriksaan upgrade.
- Melonggarkan batasan versi untuk paket PyPI kustom yang diinstal. Misalnya,
daripada menentukan versi sebagai
==1.0.1
, tentukan sebagai>=1.0.1
. - Untuk mengetahui informasi selengkapnya tentang cara mengubah persyaratan versi untuk mengatasi dependensi yang bertentangan, lihat dokumentasi pip.
Memeriksa peringatan migrasi yang gagal
Saat mengupgrade Airflow ke versi yang lebih baru, terkadang batasan baru diterapkan ke database Airflow. Jika batasan ini tidak dapat diterapkan, Airflow akan membuat tabel baru untuk menyimpan baris yang batasannya tidak dapat diterapkan. UI Airflow menampilkan pesan peringatan hingga tabel data yang dipindahkan diganti namanya atau dihapus.
Solusi:
Anda dapat menggunakan dua DAG berikut untuk memeriksa data yang dipindahkan dan mengganti nama tabel.
DAG list_moved_tables_after_upgrade_dag
mencantumkan baris yang dipindahkan dari setiap tabel tempat batasan tidak dapat diterapkan. Periksa data dan putuskan apakah Anda ingin menyimpannya atau tidak. Untuk mempertahankannya, Anda harus memperbaiki data secara manual di
database Airflow. Misalnya, dengan menambahkan kembali baris dengan data yang benar.
Jika Anda tidak memerlukan data atau jika Anda telah memperbaikinya, Anda dapat menjalankan DAG
rename_moved_tables_after_upgrade_dag
. DAG ini mengganti nama tabel yang dipindahkan.
Tabel dan datanya tidak dihapus, sehingga Anda dapat meninjau data tersebut di lain waktu.