Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Time-based kebijakan
Kebijakan di bagian ini memutuskan dari waktu jam dinding — jendela promosi, jam kerja, atau kombinasi keduanya. Mereka membacacontext.system.now, yang disediakan layanan pada setiap permintaan.
Time-based kondisi adalah when klausa Cedar biasa, jadi mereka menulis dengan segala sesuatu yang lain di halaman ini. Pemeriksaan pokok, kondisi input, pagar pembatas, atau kondisi temporal semuanya dapat dilakukan dalam kebijakan yang sama.
Seperti panduan penulisan lainnya, contoh-contoh ini ditulis terhadap gateway referensi yang dijelaskan dalam konfigurasi Sumber daya sebagai contoh, sehingga Anda dapat menggabungkannya dengan contoh lain di satu mesin kebijakan.
catatan
Time-based tidak sama dengan temporal. Kondisi berbasis waktu menanyakan jam berapa sekarang; kondisi temporal menanyakan apa yang telah terjadi dalam sesi ini. Untuk informasi selengkapnya, lihat Contoh kebijakan sementara.
Cara kerjanya
Selama evaluasi kebijakan, stempel waktu UTC saat ini disediakan sebagai bagian dari konteks evaluasi:
// Current datetime in UTC context.system.now
Anda dapat menggunakan fungsi datetime Cedar untuk membuat kondisi berbasis waktu:
-
datetime("YYYY-MM-DDTHH:MM:SSZ")— Buat nilai datetime -
duration("Xh")— Buat durasi (jam, menit, detik) -
.toTime()— Ekstrak waktu hari dari datetime -
Operator perbandingan:
<,⇐,>,>=,==
Batasan tanggal dan rentang waktu absolut
Menegakkan kebijakan dalam periode kalender tertentu.
Contoh: Open-enrollment jendela
permit ( principal, action == AgentCore::Action::"InsuranceAPI___calculate_premium", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/insurance-gw-a1b2c3d4e5" ) when { context.system.now >= datetime("2025-01-01T00:00:00Z") && context.system.now < datetime("2025-02-01T00:00:00Z") };
Kasus penggunaan: Penawaran premi hanya selama jendela pendaftaran terbuka Januari 2025.
Pembatasan waktu berulang harian
Menegakkan kebijakan berdasarkan waktu hari yang berulang setiap hari.
Contoh: Kebijakan jam kerja
permit ( principal, action == AgentCore::Action::"InsuranceAPI___disburse_payment", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/insurance-gw-a1b2c3d4e5" ) when { duration("9h") <= context.system.now.toTime() && context.system.now.toTime() <= duration("17h") };
Kasus penggunaan: Cairkan pembayaran hanya selama jam kerja (9 pagi — 5 sore UTC setiap hari).
Batasan tanggal dan waktu gabungan
Gabungkan tanggal absolut dengan batasan waktu harian.
Contoh: Jendela pendaftaran dengan jam harian
permit ( principal, action == AgentCore::Action::"InsuranceAPI___update_coverage", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/insurance-gw-a1b2c3d4e5" ) when { // Valid dates: February 2025 context.system.now >= datetime("2025-02-01T00:00:00Z") && context.system.now < datetime("2025-03-01T00:00:00Z") && // Valid hours: 9am-9pm UTC daily duration("9h") <= context.system.now.toTime() && context.system.now.toTime() <= duration("21h") };
Kasus penggunaan: Izinkan perubahan cakupan hanya selama Februari 2025, antara jam 9 pagi dan 9 malam UTC setiap hari.
Penanganan zona waktu
Semua nilai datetime harus dalam UTC. Mesin Kebijakan tidak mendukung konversi zona waktu atau kebijakan sadar zona waktu.
Saat menentukan waktu dalam kebijakan Anda, selalu gunakan UTC. Jika bisnis Anda beroperasi di zona waktu yang berbeda, ubah waktu lokal Anda ke UTC sebelum membuat kebijakan.