Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Halaman ini menjelaskan cara mengonfigurasi layanan SMTP untuk lingkungan Cloud Composer Anda.
Sebelum memulai
Jika lingkungan Cloud Composer Anda dikonfigurasi untuk IP Pribadi, pastikan lingkungan tersebut memiliki konektivitas ke endpoint API untuk layanan email eksternal Anda (seperti
https://api.sendgrid.com
, atau server SMTP pilihan Anda).
Mengonfigurasi layanan email SendGrid
Untuk menerima notifikasi, konfigurasi variabel lingkungan Anda untuk mengirim email melalui layanan email SendGrid.
Mendaftar dengan SendGrid
Jika belum, daftar ke SendGrid di konsol Google Cloud , klik Manage On Provider untuk membuka domain SendGrid, lalu klik Settings untuk mengambil nama pengguna dan membuat kunci API. Sebagai developer Google Cloud , Anda dapat memulai dengan 12.000 email gratis per bulan.
Mengonfigurasi variabel
SendGrid menggunakan kunci API dan alamat email "Dari" untuk mengirim email. Anda dapat memberikan informasi ini dengan salah satu opsi berikut:
(Direkomendasikan) Simpan nilai di Secret Manager
Menyimpan nilai di Secret Manager
Untuk menyimpan nilai di Secret Manager:
Konfigurasi Secret Manager untuk lingkungan Anda. Pastikan untuk menyiapkan izin dan opsi konfigurasi Airflow untuk backend secret.
Ganti opsi konfigurasi Airflow berikut:
Bagian Kunci Nilai email
email_conn_id
sendgrid_default
email
email_backend
airflow.providers.sendgrid.utils.emailer.send_email
Buat secret untuk koneksi SendGrid bernama
airflow-connections-sendgrid_default
. Tetapkan nilai secret ke URI koneksi. Contoh:sendgrid://<username>:<sendgrid_api_key>@smtp.sendgrid.net:587
Untuk mengetahui informasi selengkapnya tentang menyimpan koneksi di Secret Manager, lihat Mengelola koneksi Airflow.
Konfigurasi alamat email untuk SendGrid. Alamat email tidak dapat disiapkan melalui rahasia. Sebagai gantinya, ganti opsi konfigurasi Airflow berikut:
Bagian Kunci Nilai email
from_email
Alamat email Dari, seperti noreply@example.com
.
Menyimpan nilai di Airflow
Ganti opsi konfigurasi Airflow berikut:
Bagian Kunci Nilai email
email_conn_id
sendgrid_default
email
email_backend
airflow.providers.sendgrid.utils.emailer.send_email
Di Airflow, konfigurasi koneksi bernama
sendgrid_default
. Tentukan kunci API SendGrid di URI koneksi. Contoh:gcloud composer environments run ENVIRONMENT_NAME \ --location LOCATION \ connections add -- \ --conn-uri "sendgrid://USERNAME:SENDGRID_API_KEY@smtp.sendgrid.net:587" \ sendgrid_default
Ganti kode berikut:
ENVIRONMENT_NAME
: nama lingkungan Anda.LOCATION
: region tempat lingkungan berada.USERNAME
: nama pengguna SendGrid.SENDGRID_API_KEY
: kunci API SendGrid.
Konfigurasi alamat email untuk SendGrid. Alamat email tidak dapat disiapkan melalui rahasia. Sebagai gantinya, ganti opsi konfigurasi Airflow berikut:
Bagian Kunci Nilai email
from_email
Alamat email Dari, seperti noreply@example.com
.
Menguji konfigurasi SendGrid Anda
Untuk menguji konfigurasi SendGrid:
- Buat DAG pengujian yang menggunakan
EmailOperator
. Contoh:
- Upload DAG ke lingkungan Anda dan periksa apakah tugas berhasil.
- Login ke SendGrid dengan kredensial SendGrid Anda.
- Di UI SendGrid, buka halaman Activity.
- Telusuri email dalam daftar. Anda akan melihat bahwa SendGrid memproses dan mengirimkan email.
Jika email tidak diproses dan dikirim:
- Periksa konfigurasi SendGrid Anda.
- Pastikan Anda telah mengaktifkan backend Secret Manager. Pastikan Anda memberikan izin tambahan dan menetapkan penggantian untuk opsi konfigurasi Airflow.
- Periksa filter spam di program email Anda.
Mengonfigurasi layanan SMTP pihak ketiga
Untuk mengirim email melalui layanan SMTP pihak ketiga, ganti opsi konfigurasi Airflow email_backend
dan konfigurasi parameter terkait SMTP lainnya.
Untuk mengonfigurasi layanan SMTP pihak ketiga, ganti opsi konfigurasi Airflow berikut:
Bagian | Kunci | Nilai |
---|---|---|
email |
email_backend |
airflow.utils.email.send_email_smtp |
smtp |
smtp_host |
Nama host untuk server SMTP. |
smtp |
smtp_user |
Nama pengguna di server SMTP. |
smtp |
smtp_port |
Port untuk server SMTP. Port 25 tidak tersedia. Anda dapat menggunakan port lain, seperti port SMTP standar 465 dan 587. |
smtp |
smtp_password |
Menetapkan sandi melalui smtp_password tidak didukung. Untuk menyetel sandi SMTP, ikuti petunjuk yang diberikan di Mengonfigurasi sandi SMTP. |
smtp |
smtp_mail_from |
Alamat email Dari, seperti noreply-composer@ . |
smtp |
smtp_starttls |
Untuk keamanan yang lebih baik, setel ke True . |
smtp |
smtp_ssl |
Untuk keamanan yang lebih baik, setel ke True . |
Mengonfigurasi sandi SMTP untuk layanan SMTP pihak ketiga
Menyimpan sandi SMTP dalam teks biasa di file konfigurasi Airflow adalah praktik keamanan yang buruk. Itulah sebabnya Cloud Composer tidak mendukung metode ini. Sebagai gantinya, Anda dapat menggunakan dua metode lain untuk mengonfigurasi sandi SMTP.
Menggunakan perintah untuk mengambil sandi SMTP
Anda tidak dapat mengambil sandi SMTP menggunakan perintah di Cloud Composer 1. Memberikan sandi melalui perintah akan memicu error saat mengakses Konfigurasi > Admin di UI Airflow.
Menggunakan secret yang disimpan di Secret Manager untuk mengambil sandi SMTP
Anda dapat mengonfigurasi Secret Manager sebagai backend secret Airflow Anda.
Setelah mengonfigurasi Secret Manager untuk lingkungan Composer, Anda dapat menyimpan sandi SMTP di Secret Manager:
Buat secret baru:
echo -n "SMTP_PASSWORD" | gcloud beta secrets create \ airflow-config-smtp-password \ --data-file=- \ --replication-policy=automatic
Ganti
SMTP_PASSWORD
dengan sandi SMTP Anda.Konfigurasi Airflow untuk mendapatkan sandi SMTP dari Secret Manager. Untuk melakukannya, ganti opsi konfigurasi Airflow berikut:
Bagian Kunci Nilai smtp
smtp_password_secret
smtp-password