View a markdown version of this page

Penjadwal CLI - Penjadwal Instance di AWS

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

Penjadwal CLI

Penjadwal Instance pada antarmuka baris perintah AWS (CLI) memungkinkan Anda mengonfigurasi jadwal dan periode, serta memperkirakan penghematan biaya untuk jadwal tertentu.

Prasyarat

CLI dalam solusi ini membutuhkan Python 3.8+ dan versi terbaru dari boto3.

Kredensial

Untuk menggunakan CLI penjadwal, Anda harus memiliki kredenSIAL untuk AWS CLI. Untuk informasi selengkapnya, lihat Konfigurasi dan pengaturan file kredensia di Panduan Pengguna AWS CLI.

Kredensibilitas Anda harus memiliki izin berikut:

  • lambda:InvokeFunction- Untuk memanggil InstanceSchedulerMain fungsi di stack penjadwal, dan untuk memperbarui informasi jadwal dan periode dalam database konfigurasi penjadwal dari baris perintah

  • cloudformation:DescribeStackResource- Untuk mengambil ID sumber daya fisik fungsi AWS Lambda dari tumpukan untuk menangani permintaan CLI

Permintaan yang dibuat oleh CLI penjadwal dan tanggapan dicatat dalam aliran AdminCliRequestHandler-yyyymmdd log.

catatan

Jika Anda menentukan profil menggunakan argumen profile-name, profil yang Anda tentukan harus memiliki izin ini. Untuk informasi selengkapnya tentang argumen nama profil, lihat Argumen Umum.

Instal Scheduler CLI

  1. Unduh paket CLI penjadwal (instance_scheduler_cli.zip) dan letakkan di direktori di komputer Anda.

    penting

    Instalasi akan gagal jika Anda tidak menempatkan file ke direktori mereka sendiri, dan kemudian menginstalnya dari direktori itu.

  2. Buka zip arsip zip ke direktorinya sendiri (instance_scheduler_cli).

  3. Dari direktori yang sama di mana Anda menempatkan paket CLI yang tidak di-zip, instal scheduler-cli ke lingkungan Anda:

    catatan

    Scheduler-CLI membutuhkan Python 3.8 atau lebih tinggi dan versi terbaru pip dan boto3. Jika Anda tidak menginstal semua ini di mesin lokal Anda, silakan lihat dokumentasi resmi pip untuk instruksi instalasi sebelum mencoba menginstal Scheduler-CLI.

    pip install --no-index --find-links=instance_scheduler_cli instance_scheduler_cli
  4. Verifikasi instalasi berhasil dengan:

    scheduler-cli --help
catatan

Jika lebih disukai, sdist dari CLI dan dapat diinstal menggunakan proses yang sama seperti di atas.

Struktur perintah

Penjadwal CLI menggunakan struktur multipart pada baris perintah. Bagian selanjutnya menentukan skrip python CLI penjadwal. Penjadwal CLI memiliki perintah yang menentukan operasi yang akan dilakukan pada periode dan jadwal. Argumen spesifik untuk operasi dapat ditentukan pada baris perintah dalam urutan apa pun.

scheduler-cli <command> <arguments>

Argumen umum

CLI penjadwal mendukung argumen berikut yang dapat digunakan semua perintah:

Pendapat Deskripsi

--stack [replaceable]<stackname>

Nama tumpukan penjadwal.

Penting: Argumen ini diperlukan untuk semua perintah.

--region [replaceable]<regionname>

Nama wilayah tempat tumpukan penjadwal digunakan.

Catatan: Anda harus menggunakan argumen ini ketika konfigurasi default dan file kredensi tidak diinstal di wilayah yang sama dengan tumpukan solusi.

--profile-name [replaceable] <profilename>

Nama profil yang akan digunakan untuk menjalankan perintah. Jika tidak ada nama profil yang ditentukan, profil default digunakan.

--query

Ekspresi JmesPath yang mengontrol output perintah. Untuk informasi selengkapnya tentang mengendalikan output, lihat Mengon trol Output Perintah dari Antarmuka Baris Per intah AWS di Panduan Pengguna AWS CLI.

--help

Menampilkan perintah dan argumen yang valid untuk penjadwal CLI. Ketika digunakan dengan perintah tertentu, ini menunjukkan subperintah dan argumen yang valid untuk perintah itu.

--version

Menunjukkan nomor versi CLI penjadwal.

Perintah yang tersedia

buat-periode

Deskripsi

Menciptakan periode. Suatu periode harus berisi setidaknya satu dari item berikut:begintime,endtime,weekdays,months, ataumonthdays.

Argumen

--name
  • Nama periode

    Tipe: String

    Diperlukan: Ya

--description
  • Deskripsi periode

    Tipe: String

    Wajib: Tidak

--begintime
  • Waktu ketika periode berjalan dimulai. Jika begintime dan tidak endtime ditentukan, periode berjalan adalah 00:00 - 23:59.

    Tipe: String

    Kendala: H:MM atau HH:MM format

    Wajib: Tidak

--endtime
  • Waktu ketika periode berjalan berhenti. Jika begintime dan tidak endtime ditentukan, periode berjalan adalah 00:00 - 23:59.

    Tipe: String

    Kendala: H:MM atau HH:MM format

    Wajib: Tidak

--weekdays
  • Hari-hari dalam seminggu untuk periode tersebut

    Tipe: String

    Kendala: Comma-delimited daftar nama hari yang disingkat (mon) atau angka (0). Gunakan - untuk menentukan rentang. Gunakan/untuk menentukan setiap n ^ke- ^ hari dalam seminggu.

    Wajib: Tidak

--months
  • Bulan-bulan periode

    Tipe: String

    Kendala: Comma-delimited daftar nama bulan yang disingkat (jan) atau angka (1). Gunakan - untuk menentukan rentang. Gunakan/untuk menentukan setiap n ^th ^ bulan.

    Wajib: Tidak

--monthdays
  • Hari-hari dalam sebulan untuk periode tersebut

    Tipe: String

    Kendala: Comma-delimited daftar nama bulan yang disingkat (jan) atau angka (1). Gunakan - untuk menentukan rentang. Gunakan/untuk menentukan setiap n ^ke- ^ hari dalam sebulan.

    Wajib: Tidak

Contoh

$ scheduler-cli create-period --name "weekdays" --begintime 09:00 --endtime 18:00 --weekdays mon-fri --stack Scheduler { "Period": { "Name": "weekdays", "Endtime": "18:00", "Type": "period", "Begintime": "09:00", "Weekdays": [ "mon-fri" ] } }

buat-jadwal

Deskripsi

Membuat jadwal.

Argumen

--name
  • Nama jadwal

    Tipe: String

    Diperlukan: Ya

--description
  • Deskripsi jadwal

    Tipe: String

    Wajib: Tidak

--enforced
  • Menegakkan status terjadwal untuk instance

    Wajib: Tidak

--use-metrics
  • Kumpulkan CloudWatch metrik Amazon

    Wajib: Tidak

--periods
  • Daftar periode berjalan untuk jadwal. Jika beberapa periode ditentukan, solusi akan memulai instance jika salah satu periode dievaluasi menjaditrue.

    Tipe: String

    Kendala: Comma-delimited daftar periode. Gunakan <period-name>@[replaceable]<instance type> untuk menentukan jenis instance untuk suatu periode. Misalnya, weekdays@t2.large.

    Wajib: Ya

--retain-running
  • Mencegah instance dihentikan oleh solusi pada akhir periode berjalan, jika instance dimulai secara manual sebelum awal periode.

    Wajib: Tidak

--ssm-maintenance-window
  • Menambahkan jendela pemeliharaan AWS Systems Manager sebagai periode berjalan ke jadwal instans Amazon EC2.

    Tipe: String

    Wajib: Tidak

--do-not-stop-new-instances
  • Jangan menghentikan instance saat pertama kali ditandai jika berjalan di luar periode berjalan

    Wajib: Tidak

--timezone
  • Zona waktu yang akan digunakan jadwal

    Tipe: Array string

    Diperlukan: Tidak (Jika argumen ini tidak digunakan, zona waktu default dari tumpukan solusi utama digunakan.)

--use-maintenance-window
  • Menambahkan jendela pemeliharaan Amazon RDS sebagai periode berjalan ke jadwal instans Amazon RDS, atau jendela pemeliharaan AWS Systems Manager sebagai periode berjalan ke jadwal instans Amazon EC2

    Tipe: true/false

    Diperlukan: Tidak (default benar)

Contoh

$ scheduler-cli create-schedule --name LondonOfficeHours --periods weekdays,weekends --timezone Europe/London --stack Scheduler { "Schedule": { "Enforced": false, "Name": "LondonOfficeHours", "StopNewInstances": true, "Periods": [ "weekends", "weekdays" ], "Timezone": "Europe/London", "Type": "schedule" } }

periode hapus

--name
  • Nama periode yang berlaku

    Tipe: String

    Diperlukan: Ya

penting

Jika periode digunakan dalam jadwal yang ada, Anda harus menghapusnya dari jadwal tersebut sebelum Anda menghapusnya.

Contoh

$ scheduler-cli delete-period --name weekdays --stack Scheduler { "Period": "weekdays" }

hapus-jadwal

Deskripsi

Menghapus jadwal yang ada

Argumen

--name
  • Nama jadwal yang berlaku

    Tipe: String

    Diperlukan: Ya

Contoh

$ scheduler-cli delete-schedule --name LondonOfficeHours --stack Scheduler { "Schedule": "LondonOfficeHours" }

deskripsi-periode

Deskripsi

Mencantumkan periode yang dikonfigurasi untuk tumpukan Penjadwal Instance

Argumen

--name
  • Nama periode tertentu yang ingin Anda jelaskan

    Tipe: String

    Wajib: Tidak

Contoh

$ scheduler-cli describe-periods --stack Scheduler { "Periods": [ { "Name": "first-monday-in-quarter", "Months": [ "jan/3" ], "Type": "period", "Weekdays": [ "mon#1" ], "Description": "Every first Monday of each quarter" }, { "Description": "Office hours", "Weekdays": [ "mon-fri" ], "Begintime": "09:00", "Endtime": "17:00", "Type": "period", "Name": "office-hours" }, { "Name": "weekdays", "Endtime": "18:00", "Type": "period", "Weekdays": [ "mon-fri" ], "Begintime": "09:00" }, { "Name": "weekends", "Type": "period", "Weekdays": [ "sat-sun" ], "Description": "Days in weekend" } ] }

deskripsi-jadwal

Deskripsi

Mencantumkan jadwal yang dikonfigurasi untuk tumpukan Penjadwal Instance.

Argumen

--name
  • Nama jadwal tertentu yang ingin Anda jelaskan

    Tipe: String

    Wajib: Tidak

Contoh

$ scheduler-cli describe-schedules --stack Scheduler { "Schedules": [ { "OverrideStatus": "running", "Type": "schedule", "Name": "Running", "UseMetrics": false }, { "Timezone": "UTC", "Type": "schedule", "Periods": [ "working-days@t2.micro", "weekends@t2.nano" ], "Name": "scale-up-down" }, { "Timezone": "US/Pacific", "Type": "schedule", "Periods": [ "office-hours" ], "Name": "seattle-office-hours" }, { "OverrideStatus": "stopped", "Type": "schedule", "Name": "stopped", "UseMetrics": true } ] }

deskripsi-jadwal-penggunaan

Deskripsi

Mencantumkan semua periode yang berjalan dalam jadwal dan menghitung jam penagihan untuk instans. Gunakan perintah ini untuk mensimulasikan jadwal untuk menghitung potensi penghematan, dan periode berjalan setelah membuat atau memperbarui jadwal.

Argumen

--name
  • Nama jadwal yang berlaku

    Tipe: String

    Diperlukan: Ya

--startdate
  • Tanggal mulai periode yang digunakan untuk perhitungan. Tanggal default adalah tanggal saat ini.

    Tipe: String

    Wajib: Tidak

--enddate
  • Tanggal akhir periode yang digunakan untuk perhitungan. Tanggal default adalah tanggal saat ini.

    Tipe: String

    Wajib: Tidak

Contoh

$ scheduler-cli describe-schedule-usage --stack InstanceScheduler --name seattle-office-hours { "Usage": { "2017-12-04": { "BillingHours": 8, "RunningPeriods": { "Office-hours": { "Begin": "12/04/17 09:00:00", "End": "12/04/17 17:00:00", "BillingHours": 8, "BillingSeconds": 28800 } }, "BillingSeconds": 28800 } }, "Schedule": "seattle-office-hours"

periode pembaruan

Deskripsi

Memperbarui periode yang ada

Argumen

Per update-period intah ini mendukung argumen yang sama dengan create-period perintah. Untuk informasi lebih lanjut tentang argumen, lihat perintah create period.

penting

Jika Anda tidak menentukan argumen, argumen itu akan dihapus dari periode.

pembaruan jadwal

Deskripsi

Memperbarui jadwal yang ada

Argumen

Per update-schedule intah mendukung argumen yang sama dengan create-schedule perintah. Untuk informasi selengkapnya tentang argumen, lihat perintah buat jadwal.

penting

Jika Anda tidak menentukan argumen, argumen itu akan dihapus dari jadwal.

bantuan

Deskripsi

Menampilkan daftar perintah dan argumen yang valid untuk penjadwal CLI.

Contoh

$ scheduler-cli --help usage: scheduler-cli [-h] [--version] {create-period,create-schedule,delete-period,delete-schedule,describe-periods,describe-schedule-usage,describe-schedules,update-period,update-schedule} ... optional arguments: -h, --help show this help message and exit --version show program's version number and exit subcommands: Valid subcommands {create-period,create-schedule,delete-period,delete-schedule,describe-periods,describe-schedule-usage,describe-schedules,update-period,update-schedule} Commands help create-period Creates a period create-schedule Creates a schedule delete-period Deletes a period delete-schedule Deletes a schedule describe-periods Describes configured periods describe-schedule-usage Calculates periods and billing hours in which instances are running describe-schedules Described configured schedules update-period Updates a period update-schedule Updates a schedule

Ketika digunakan dengan perintah tertentu, --help argumen menunjukkan subperintah dan argumen yang valid untuk perintah itu.

Contoh perintah khusus

$ scheduler-cli describe-schedules --help usage: scheduler-cli describe-schedules [-h] [--name NAME] [--query QUERY] [--region REGION] --stack STACK optional arguments: -h, --help show this help message and exit --name NAME Name of the schedule --query QUERY JMESPath query to transform or filter the result --region REGION Region in which the Instance Scheduler stack is deployed --stack STACK, -s STACK Name of the Instance Scheduler stack