

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

# Jadwalkan pekerjaan untuk Amazon RDS untuk PostgreSQL dan Aurora PostgreSQL dengan menggunakan Lambda dan Secrets Manager
<a name="schedule-jobs-for-amazon-rds-for-postgresql-and-aurora-postgresql-by-using-lambda-and-secrets-manager"></a>

*Yaser Raja, Amazon Web Services*

## Ringkasan
<a name="schedule-jobs-for-amazon-rds-for-postgresql-and-aurora-postgresql-by-using-lambda-and-secrets-manager-summary"></a>

**Untuk database lokal dan database yang di-host di instans Amazon Elastic Compute Cloud (Amazon EC2), administrator database sering menggunakan utilitas cron untuk menjadwalkan pekerjaan.** 

Misalnya, pekerjaan untuk ekstraksi data atau pekerjaan untuk pembersihan data dapat dengan mudah dijadwalkan menggunakan **cron**. Untuk pekerjaan ini, kredensi database biasanya dikodekan keras atau disimpan dalam file properti. **Namun, saat Anda bermigrasi ke Amazon Relational Database Service (Amazon RDS) atau Amazon Aurora PostgreSQL Compatible Edition, Anda kehilangan kemampuan untuk masuk ke instans host untuk menjadwalkan tugas cron.** 

Pola ini menjelaskan cara menggunakan AWS Lambda dan menjadwalkan pekerjaan AWS Secrets Manager untuk Amazon RDS for PostgreSQL dan database yang kompatibel dengan Aurora PostgreSQL setelah migrasi.  

## Prasyarat dan batasan
<a name="schedule-jobs-for-amazon-rds-for-postgresql-and-aurora-postgresql-by-using-lambda-and-secrets-manager-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS
+ Database yang kompatibel dengan Amazon RDS for PostgreSQL atau Aurora PostgreSQL

**Batasan**
+ Pekerjaan harus diselesaikan dalam waktu 15 menit, yang merupakan batas waktu tunggu fungsi Lambda. Untuk batasan lainnya, lihat [AWS Lambda dokumentasi](https://docs.aws.amazon.com/lambda/latest/dg/limits.html).
+ Kode Job harus ditulis dalam [bahasa yang didukung oleh Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html).

## Arsitektur
<a name="schedule-jobs-for-amazon-rds-for-postgresql-and-aurora-postgresql-by-using-lambda-and-secrets-manager-architecture"></a>

**Tumpukan teknologi sumber**

Tumpukan ini menampilkan pekerjaan yang ditulis dalam bahasa seperti Bash, Python, dan Java. **Kredensi database disimpan dalam file properti, dan pekerjaan dijadwalkan menggunakan Linux cron.**

**Tumpukan teknologi target**

Tumpukan ini memiliki fungsi Lambda yang menggunakan kredensil yang disimpan di Secrets Manager untuk terhubung ke database dan untuk melakukan aktivitas. Fungsi Lambda dimulai pada interval terjadwal dengan menggunakan Amazon Events. CloudWatch 

**Arsitektur target**

![\[CloudWatch acara memulai fungsi Lambda yang menjadwalkan pekerjaan untuk instans RDS DB.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/8e0d1c90-0599-4909-a800-26a89b87f686/images/61f9ca34-9157-4565-96ba-5234d389ac2a.png)


## Alat
<a name="schedule-jobs-for-amazon-rds-for-postgresql-and-aurora-postgresql-by-using-lambda-and-secrets-manager-tools"></a>
+ [Amazon CloudWatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) memberikan aliran peristiwa sistem yang mendekati real-time yang menjelaskan perubahan AWS sumber daya. Dengan menggunakan aturan sederhana yang dapat Anda atur dengan cepat, Anda dapat mencocokkan acara dan mengarahkannya ke satu atau lebih fungsi atau aliran target. CloudWatch Peristiwa menjadi sadar akan perubahan operasional saat terjadi. Ini menanggapi perubahan operasional ini dan mengambil tindakan korektif seperlunya, dengan mengirim pesan untuk menanggapi lingkungan, mengaktifkan fungsi, membuat perubahan, dan menangkap informasi negara. **Anda juga dapat menggunakan CloudWatch Acara untuk menjadwalkan tindakan otomatis yang dimulai sendiri pada waktu-waktu tertentu menggunakan ekspresi **cron** atau rate.**
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) adalah layanan komputasi yang memungkinkan Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Lambda menjalankan kode Anda hanya saat diperlukan dan menskalakan secara otomatis, dari beberapa permintaan per hari hingga ribuan per detik. Anda hanya membayar untuk waktu komputasi yang Anda konsumsi; tidak ada biaya ketika kode Anda tidak berjalan. Dengan Lambda, Anda dapat menjalankan kode untuk hampir semua jenis aplikasi atau layanan backend tanpa administrasi. Lambda menjalankan kode Anda pada infrastruktur komputasi ketersediaan tinggi dan mengelola semua sumber daya komputasi, termasuk pemeliharaan server dan sistem operasi, penyediaan kapasitas dan penskalaan otomatis, pemantauan kode, dan pencatatan. Yang perlu Anda lakukan adalah memberikan kode Anda dalam salah satu [bahasa yang didukung Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html).
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)membantu Anda melindungi rahasia untuk mengakses aplikasi, layanan, dan sumber daya TI Anda. Anda dapat dengan mudah memutar, mengelola, dan mengambil kredenal database, kunci API, dan rahasia lainnya sepanjang siklus hidupnya. Pengguna dan aplikasi mengambil rahasia dengan memanggil Secrets Manager APIs, yang menghilangkan kebutuhan untuk hard-code informasi sensitif dalam teks biasa. Secrets Manager menawarkan rotasi rahasia dengan integrasi bawaan untuk Amazon RDS, Amazon Redshift, dan Amazon DocumentDB. Layanan ini dapat diperluas ke jenis rahasia lainnya, termasuk kunci API dan OAuth token. Secrets Manager memungkinkan Anda mengontrol akses ke rahasia menggunakan izin halus dan mengaudit rotasi rahasia secara terpusat untuk sumber daya di, layanan pihak ketiga AWS Cloud, dan di tempat.

## Epik
<a name="schedule-jobs-for-amazon-rds-for-postgresql-and-aurora-postgresql-by-using-lambda-and-secrets-manager-epics"></a>

### Simpan kredensil database di Secrets Manager
<a name="store-database-credentials-in-asm"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat pengguna database untuk fungsi Lambda. | Ini adalah praktik yang baik untuk menggunakan pengguna database terpisah untuk berbagai bagian aplikasi Anda. Jika pengguna database terpisah sudah ada untuk pekerjaan cron Anda, gunakan itu. Jika tidak, buat pengguna database baru. Untuk informasi selengkapnya, lihat [Mengelola pengguna dan peran PostgreSQL (](https://aws.amazon.com/blogs/database/managing-postgresql-users-and-roles/)posting blog).AWS  | DBA | 
| Simpan kredensi database sebagai rahasia di Secrets Manager. | Ikuti petunjuk di [Buat rahasia database](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_database_secret.html) (Dokumentasi Secrets Manager). | DBA, DevOps | 

### Penulis kode untuk fungsi Lambda
<a name="author-the-code-for-the-lam-function"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Pilih bahasa pemrograman yang didukung oleh Lambda. | Untuk daftar bahasa yang didukung, lihat [runtime Lambda (](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html)dokumentasi Lambda). | Developer | 
| Tulis logika untuk mengambil kredensi database dari Secrets Manager. | Untuk kode contoh, lihat [Cara menyediakan kredensil database secara aman ke fungsi Lambda dengan menggunakan AWS Secrets Manager](https://aws.amazon.com/blogs/security/how-to-securely-provide-database-credentials-to-lambda-functions-by-using-aws-secrets-manager/) (posting blog).AWS  | Developer | 
| Tulis logika untuk melakukan aktivitas database terjadwal. | Migrasikan kode yang ada untuk pekerjaan penjadwalan yang Anda gunakan di lokasi ke fungsi Lambda. Untuk informasi selengkapnya, lihat [Menerapkan fungsi Lambda (dokumentasi](https://docs.aws.amazon.com/lambda/latest/dg/lambda-deploy-functions.html) Lambda). | Developer | 

### Terapkan kode dan buat fungsi Lambda
<a name="deploy-the-code-and-create-the-lam-function"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat paket penyebaran fungsi Lambda. | Paket ini berisi kode dan dependensinya. Untuk informasi selengkapnya, lihat [Paket penerapan (dokumentasi](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) Lambda). | Developer | 
| Buat fungsi Lambda. | **Di konsol Lambda, pilih **Buat fungsi**, masukkan nama fungsi, pilih lingkungan runtime, lalu pilih Buat fungsi.** | DevOps | 
| Unggah paket deployment. | Pilih fungsi Lambda yang Anda buat untuk membuka konfigurasinya. Anda dapat menulis kode Anda langsung di bagian kode atau mengunggah paket penyebaran Anda. Untuk mengunggah paket Anda, buka bagian **Kode fungsi**, pilih **jenis entri Kode** untuk mengunggah file.zip, lalu pilih paket. | DevOps | 
| Konfigurasikan fungsi Lambda sesuai kebutuhan Anda. | Misalnya, Anda dapat mengatur parameter **Timeout** ke durasi yang Anda harapkan dari fungsi Lambda. Untuk informasi selengkapnya, lihat [Mengonfigurasi opsi fungsi (Dokumentasi](https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html) Lambda). | DevOps | 
| Tetapkan izin untuk peran fungsi Lambda untuk mengakses Secrets Manager. | Untuk petunjuk, lihat [Menggunakan rahasia dalam AWS Lambda fungsi](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets_lambda.html) (Dokumentasi Secrets Manager). | DevOps | 
| Uji fungsi Lambda. | Memulai fungsi Lambda secara manual untuk memastikannya berfungsi seperti yang diharapkan. | DevOps | 

### Jadwalkan fungsi Lambda dengan menggunakan Acara CloudWatch
<a name="schedule-the-lam-function-by-using-cwe"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat aturan untuk menjalankan fungsi Lambda sesuai jadwal. | Jadwalkan fungsi Lambda dengan menggunakan CloudWatch Acara. Untuk petunjuk, lihat [Menjadwalkan fungsi Lambda menggunakan CloudWatch Acara](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/RunLambdaSchedule.html) (tutorial CloudWatch Acara). | DevOps | 

## Sumber daya terkait
<a name="schedule-jobs-for-amazon-rds-for-postgresql-and-aurora-postgresql-by-using-lambda-and-secrets-manager-resources"></a>
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
+ [Memulai dengan Lambda](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html)
+ [Membuat Aturan CloudWatch Acara yang Memicu Peristiwa](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-Rule.html)
+ [AWS Lambda Batas](https://docs.aws.amazon.com/lambda/latest/dg/limits.html)
+ [Kueri AWS database Anda dari aplikasi tanpa server Anda](https://aws.amazon.com/blogs/database/query-your-aws-database-from-your-serverless-application/) (posting blog)