Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kasus penggunaan lain untuk skrip pra dan pasca Manajer Siklus Hidup Data
Selain menggunakan skrip pra dan pasca untuk mengotomatiskan snapshot yang konsisten dengan aplikasi, Anda dapat menggunakan skrip pra dan pasca bersama-sama, atau secara individual, untuk mengotomatiskan tugas administratif lainnya sebelum atau sesudah pembuatan snapshot. Misalnya:
-
Menggunakan skrip pra untuk menerapkan patch sebelum membuat snapshot. Ini dapat membantu Anda membuat snapshot setelah menerapkan pembaruan perangkat lunak mingguan atau bulanan reguler Anda.
catatan
Jika Anda memilih untuk menjalankan skrip pra saja, Tetapkan default ke snapshot crash-consistent diaktifkan secara default.
-
Menggunakan skrip pasca untuk menerapkan patch sebelum membuat snapshot. Ini dapat membantu Anda membuat snapshot setelah menerapkan pembaruan perangkat lunak mingguan atau bulanan reguler Anda.
Memulai untuk kasus penggunaan lainnya
Bagian ini menjelaskan langkah-langkah yang perlu Anda lakukan saat menggunakan skrip pra dan/atau pasca untuk kasus penggunaan selain snapshot yang konsisten dengan aplikasi.
Untuk mempersiapkan instans target Anda untuk skrip pra dan/atau pasca
-
Instal SSM Agen pada instance target Anda, jika belum diinstal. Jika SSM Agen sudah diinstal pada instance target Anda, lewati langkah ini.
-
(Instans Linux) Menginstal SSM Agen secara manual di EC2 instans Amazon untuk Linux
-
(Instans Windows) Menginstal SSM Agen secara manual di EC2 instans Amazon untuk Windows
-
-
Pastikan SSM agen berjalan. Untuk informasi selengkapnya, lihat Memeriksa status SSM Agen dan memulai agen.
-
Siapkan Systems Manager untuk EC2 instans Amazon. Untuk informasi selengkapnya, lihat Menyiapkan Systems Manager untuk EC2 instans Amazon di Panduan AWS Systems Manager Pengguna.
Anda harus membuat dokumen SSM perintah yang menyertakan skrip pra dan/atau posting dengan perintah yang ingin Anda jalankan.
Anda dapat membuat SSM dokumen menggunakan templat SSM dokumen kosong di bawah ini dan menambahkan perintah skrip pra dan pos Anda di bagian dokumen yang sesuai.
Perhatikan hal berikut:
-
Merupakan tanggung jawab Anda untuk memastikan bahwa SSM dokumen melakukan tindakan yang benar dan diperlukan untuk beban kerja Anda.
-
SSMDokumen harus menyertakan bidang yang diperlukan untuk
allowedValues
, termasukpre-script
,post-script
, dandry-run
. Amazon Data Lifecycle Manager akan menjalankan perintah pada instans Anda berdasarkan konten bagian tersebut. Jika SSM dokumen Anda tidak memiliki bagian tersebut, maka Amazon Data Lifecycle Manager akan memperlakukannya sebagai eksekusi yang gagal.
###===============================================================================### # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. # Permission is hereby granted, free of charge, to any person obtaining a copy of this # software and associated documentation files (the "Software"), to deal in the Software # without restriction, including without limitation the rights to use, copy, modify, # merge, publish, distribute, sublicense, and/or sell copies of the Software, and to # permit persons to whom the Software is furnished to do so. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, # INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A # PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ###===============================================================================### schemaVersion: '2.2' description: SSM Document Template for Amazon Data Lifecycle Manager Pre/Post script feature parameters: executionId: type: String default: None description: (Required) Specifies the unique identifier associated with a pre and/or post execution allowedPattern: ^(None|[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12})$ command: # Data Lifecycle Manager will trigger the pre-script and post-script actions during policy execution. # 'dry-run' option is intended for validating the document execution without triggering any commands # on the instance. The following allowedValues will allow Data Lifecycle Manager to successfully # trigger pre and post script actions. type: String default: 'dry-run' description: (Required) Specifies whether pre-script and/or post-script should be executed. allowedValues: - pre-script - post-script - dry-run mainSteps: - action: aws:runShellScript description: Run Database freeze/thaw commands name: run_pre_post_scripts precondition: StringEquals: - platformType - Linux inputs: runCommand: - | #!/bin/bash ###===============================================================================### ### Error Codes ###===============================================================================### # The following Error codes will inform Data Lifecycle Manager of the type of error # and help guide handling of the error. # The Error code will also be emitted via AWS Eventbridge events in the 'cause' field. # 1 Pre-script failed during execution - 201 # 2 Post-script failed during execution - 202 # 3 Auto thaw occurred before post-script was initiated - 203 # 4 Pre-script initiated while post-script was expected - 204 # 5 Post-script initiated while pre-script was expected - 205 # 6 Application not ready for pre or post-script initiation - 206 ###===============================================================================### ### Global variables ###===============================================================================### START=$(date +%s) # For testing this script locally, replace the below with OPERATION=$1. OPERATION={{ command }} # Add all pre-script actions to be performed within the function below execute_pre_script() { echo "INFO: Start execution of pre-script" } # Add all post-script actions to be performed within the function below execute_post_script() { echo "INFO: Start execution of post-script" } # Debug logging for parameters passed to the SSM document echo "INFO: ${OPERATION} starting at $(date) with executionId: ${EXECUTION_ID}" # Based on the command parameter value execute the function that supports # pre-script/post-script operation case ${OPERATION} in pre-script) execute_pre_script ;; post-script) execute_post_script ;; dry-run) echo "INFO: dry-run option invoked - taking no action" ;; *) echo "ERROR: Invalid command parameter passed. Please use either pre-script, post-script, dry-run." exit 1 # return failure ;; esac END=$(date +%s) # Debug Log for profiling the script time echo "INFO: ${OPERATION} completed at $(date). Total runtime: $((${END} - ${START})) seconds."
catatan
Langkah ini diperlukan jika:
-
Anda membuat atau memperbarui kebijakan snapshot pra/posting berkemampuan skrip yang menggunakan peran kustom. IAM
-
Anda menggunakan baris perintah untuk membuat atau memperbarui kebijakan snapshot skrip pra/pasca yang diaktifkan yang menggunakan default.
Jika Anda menggunakan konsol untuk membuat atau memperbarui kebijakan snapshot berkemampuan skrip pra/posting yang menggunakan peran default untuk mengelola snapshot () AWSDataLifecycleManagerDefaultRole, lewati langkah ini. Dalam hal ini, kami secara otomatis melampirkan AWSDataLifecycleManagerSSMFullAccesskebijakan ke peran itu.
Anda harus memastikan bahwa IAM peran yang Anda gunakan untuk kebijakan tersebut memberikan izin kepada Amazon Data Lifecycle Manager untuk melakukan SSM tindakan yang diperlukan untuk menjalankan skrip pra dan pasca pada instans yang ditargetkan oleh kebijakan.
Amazon Data Lifecycle Manager menyediakan kebijakan terkelola (AWSDataLifecycleManagerSSMFullAccess) yang menyertakan izin yang diperlukan. Anda dapat melampirkan kebijakan ini ke IAM peran Anda untuk mengelola snapshot guna memastikan bahwa kebijakan tersebut menyertakan izin.
penting
Kebijakan AWSDataLifecycleManagerSSMFullAccess terkelola menggunakan kunci aws:ResourceTag
kondisi untuk membatasi akses ke SSM dokumen tertentu saat menggunakan skrip pra dan pasca. Untuk mengizinkan Amazon Data Lifecycle Manager mengakses SSM dokumen, Anda harus memastikan bahwa SSM dokumen Anda ditandai. DLMScriptsAccess:true
Atau, Anda dapat membuat kebijakan khusus secara manual atau menetapkan izin yang diperlukan langsung ke IAM peran yang Anda gunakan. Anda dapat menggunakan izin yang sama yang ditentukan dalam kebijakan AWSDataLifecycleManagerSSMFullAccess terkelola, namun, kunci aws:ResourceTag
kondisi bersifat opsional. Jika Anda memutuskan untuk tidak menggunakan kunci kondisi itu, maka Anda tidak perlu menandai SSM dokumen AndaDLMScriptsAccess:true
.
Gunakan salah satu metode berikut untuk menambahkan AWSDataLifecycleManagerSSMFullAccesskebijakan ke IAM peran Anda.