Memetakan target untuk otomatisasi - AWS Systems Manager

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

Memetakan target untuk otomatisasi

Gunakan Targets parameter untuk dengan cepat menentukan sumber daya mana yang ditargetkan oleh otomatisasi. Misalnya, jika Anda ingin menjalankan otomatisasi yang memulai ulang instans terkelola Anda, alih-alih memilih lusinan instance IDs di konsol secara manual atau mengetiknya dalam sebuah perintah, Anda dapat menargetkan instance dengan menentukan tag Amazon Elastic Compute Cloud (EC2Amazon) dengan parameter. Targets

Saat Anda menjalankan otomatisasi yang menggunakan target, AWS Systems Manager buat otomatisasi anak untuk setiap target. Misalnya, jika Anda menargetkan volume Amazon Elastic Block Store (AmazonEBS) dengan menentukan tag, dan tag tersebut diselesaikan menjadi 100 EBS volume Amazon, maka Systems Manager akan membuat 100 otomatisasi anak. Otomatisasi induk selesai ketika semua anak otomatisasi mencapai keadaan akhir.

catatan

Semua input parameters yang Anda tentukan pada saat bagian runtime (baik di Parameter input konsol atau dengan menggunakan parameters pilihan dari baris perintah) yang secara otomatis diproses oleh semua anak otomatisasi.

Anda dapat menargetkan sumber daya untuk otomatisasi dengan menggunakan tag, Resource Groups, dan nilai-nilai parameter. Selain itu, Anda dapat menggunakan TargetMaps untuk menargetkan beberapa nilai parameter dari baris perintah atau file. Bagian berikut menjelaskan setiap opsi penargetan ini secara lebih detail.

Menargetkan tag

Anda dapat menentukan satu tag sebagai target otomatisasi. Banyak tag dukungan AWS sumber daya, termasuk instans Amazon Elastic Compute Cloud (AmazonEC2) dan Amazon Relational Database Service (RDSAmazon), volume dan snapshot Amazon Elastic Block Store (EBSAmazon), Resource Groups, dan Amazon Simple Storage Service (Amazon S3) bucket, untuk beberapa nama. Anda dapat dengan cepat menjalankan otomatisasi pada AWS sumber daya Anda dengan menargetkan tag. Tag adalah pasangan kunci-nilai, seperti Operating_System:Linux atau Department:Finance. Jika Anda menetapkan nama tertentu ke sumber daya, Anda juga dapat menggunakan kata "Nama" sebagai kunci, dan nama sumber daya sebagai nilainya.

Bila Anda menentukan tag sebagai target untuk otomatisasi, Anda juga menentukan parameter target. Parameter target menggunakan TargetParameterName pilihan. Dengan memilih parameter target, Anda menentukan jenis sumber daya tempat alur kerja otomatisasi berjalan. Parameter target yang Anda tentukan dengan tag harus merupakan parameter valid yang didefinisikan dalam runbook. Misalnya, jika Anda ingin menargetkan lusinan EC2 instance dengan menggunakan tag, maka pilih parameter InstanceId target. Dengan memilih parameter ini, anda menentukan instans sebagai jenis sumber daya untuk otomatisasi. Saat membuat runbook kustom, Anda harus menentukan jenis Target /AWS::EC2::Instance untuk memastikan hanya instance yang digunakan. Jika tidak, semua sumber daya dengan tag yang sama akan ditargetkan. Saat menargetkan instance dengan tag, instance yang dihentikan mungkin disertakan.

Screenshot berikut menggunaka AWS-DetachEBSVolume runbook. Parameter target logis adalah VolumeId.

Menggunakan tag sebagai target untuk Automasi Systems Manager

Runbook AWS-DetachEBSVolume juga mencakup properti khusus yang disebut Jenis target, yang diatur ke /AWS::EC2::Volume. Ini berarti bahwa jika pasangan tag-key Finance:TestEnv mengembalikan berbagai jenis sumber daya (misalnya, EC2 instance, volume Amazon, EBS snapshot Amazon) maka hanya EBS volume Amazon yang akan digunakan. EBS

penting

Nama parameter target peka huruf besar dan kecil. Jika Anda menjalankan otomatisasi dengan menggunakan AWS Command Line Interface (AWS CLI) atau AWS Tools for Windows PowerShell, maka Anda harus memasukkan nama parameter target persis seperti yang ditentukan dalam runbook. Jika tidak, sistem akan mengembalikan sebuah InvalidAutomationExecutionParametersException kesalahan. Anda dapat menggunakan DescribeDocumentAPIoperasi untuk melihat informasi tentang parameter target yang tersedia di runbook tertentu. Berikut ini adalah contoh AWS CLI perintah yang menyediakan informasi tentang AWS-DeleteSnapshot dokumen.

aws ssm describe-document \ --name AWS-DeleteSnapshot

Berikut adalah beberapa contoh AWS CLI perintah yang menargetkan sumber daya dengan menggunakan tag.

Contoh 1: Menargetkan tag menggunakan pasangan nilai kunci untuk memulai ulang instans Amazon EC2

Contoh ini memulai ulang semua EC2 instans Amazon yang ditandai dengan kunci Departemen dan nilai. HumanResources Parameter target menggunakan InstanceIdparameter dari runbook. Contoh menggunakan parameter tambahan untuk menjalankan otomatisasi dengan menggunakan peran layanan otomatisasi (juga disebut peran asumsi).

aws ssm start-automation-execution \ --document-name AWS-RestartEC2Instance \ --targets Key=tag:Department,Values=HumanResources \ --target-parameter-name InstanceId \ --parameters "AutomationAssumeRole=arn:aws:iam::111122223333:role/AutomationServiceRole"

Contoh 2: Menargetkan tag menggunakan pasangan nilai kunci untuk menghapus snapshot Amazon EBS

Contoh berikut menggunakan AWS-DeleteSnapshot runbook untuk menghapus semua snapshot dengan kunci Nama dan nilai Januari2018Backup. Parameter target menggunakan VolumeIdparameter.

aws ssm start-automation-execution \ --document-name AWS-DeleteSnapshot \ --targets Key=tag:Name,Values=January2018Backups \ --target-parameter-name VolumeId

Penargetan AWS Resource Groups

Anda dapat menentukan grup AWS sumber daya tunggal sebagai target otomatisasi. Systems Manager menciptakan otomatisasi anak untuk setiap objek dalam Grup Sumber Daya target.

Misalnya, katakan bahwa salah satu Resource Groups Anda bernama PatchedAMIs. Kelompok sumber daya ini mencakup daftar 25 Windows Amazon Machine Images (AMIs) yang di-patch secara rutin. Jika Anda menjalankan otomatisasi yang menggunakan AWS-CreateManagedWindowsInstance runbook dan menargetkan Resource Groups ini, kemudian Systems Manager menciptakan otomatisasi anak untuk masing-masing 25 AMIs. Ini berarti, bahwa dengan menargetkan P atchedAMIs Resource Group, otomatisasi membuat 25 instance dari daftar patch. AMIs Otomatisasi induk selesai ketika semua otomatisasi anak menyelesaikan pemrosesan atau mencapai keadaan akhir.

AWS CLI Perintah berikut berlaku untuk contoh P atchAMIs Resource Group. Perintah mengambil AmiIdparameter untuk --target-parameter-name opsi. Perintah tidak termasuk parameter tambahan yang menentukan jenis instans untuk dibuat dari masing-masing AMI. AWS-CreateManagedWindowsInstanceRunbook default ke tipe instans t2.medium, jadi perintah ini akan membuat 25 instance Amazon t2.medium untuk. EC2 Windows Server

aws ssm start-automation-execution \ --document-name AWS-CreateManagedWindowsInstance \ --targets Key=ResourceGroup,Values=PatchedAMIs \ --target-parameter-name AmiId

Contoh konsol berikut menggunakan Resource Group yang disebut t2-micro-instances.

Menargetkan grup AWS sumber daya dengan otomatisasi Systems Manager

Menanrgetkan nilai parameter

Anda juga dapat menargetkan nilai parameter. Anda memasukkan ParameterValues sebagai kunci dan kemudian memasukkan nilai sumber daya tertentu agar otomatisasi dapat berjalan. Jika Anda menentukan beberapa nilai, Systems Manager menjalankan otomatisasi anak pada setiap nilai yang ditentukan.

Sebagai contoh, katakan bahwa runbook Anda mencakup parameter InstanceID. Jika Anda menargetkan nilai-nilai parameter InstanceID ketika menjalankan otomatisasi, Systems Manager menjalankan otomatisasi anak untuk setiap nilai ID instans yang ditentukan. Otomatisasi induk selesai ketika otomatisasi selesai menjalankan setiap instans tertentu, atau jika otomatisasi gagal. Anda dapat menargetkan maksimum 50 nilai parameter.

Contoh berikut menggunakan AWS-CreateImage runbook. Nama parameter target yang ditentukan adalah InstanceId. Kegunaan kuncinya ParameterValues. Nilainya adalah dua EC2 contoh AmazonIDs. Perintah ini menciptakan otomatisasi untuk setiap instans, yang menghasilkan AMI dari setiap instans.

aws ssm start-automation-execution --document-name AWS-CreateImage \ --target-parameter-name InstanceId \ --targets Key=ParameterValues,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE
catatan

AutomationAssumeRole bukan parameter yang valid. Jangan memilih item ini ketika menjalankan otomatisasi yang menargetkan nilai parameter.

Menargetkan peta nilai parameter

Pilihan TargetMaps memperluas kemampuan Anda untuk menargetkan ParameterValues. Anda dapat memasukkan array nilai parameter dengan menggunakan TargetMaps di baris perintah. Anda dapat menentukan maksimum 50 nilai parameter pada baris perintah. Jika Anda ingin menjalankan perintah yang menentukan lebih dari 50 nilai parameter, maka Anda dapat memasukkan nilai dalam JSON file. Anda kemudian dapat memanggil file dari baris perintah.

catatan

Pilihan TargetMaps tidak didukung di konsol.

Gunakan format berikut untuk menentukan beberapa nilai parameter dengan menggunakan TargetMaps pilihan dalam perintah. Ganti masing-masing example resource placeholder dengan informasi Anda sendiri.

aws ssm start-automation-execution \ --document-name runbook name \ --target-maps “parameter=value, parameter 2=value, parameter 3=value” “parameter 4=value, parameter 5=value, parameter 6=value

Jika Anda ingin memasukkan lebih dari 50 nilai parameter untuk TargetMaps opsi, maka tentukan nilai dalam file dengan menggunakan JSON format berikut. Menggunakan JSON file juga meningkatkan keterbacaan saat memberikan beberapa nilai parameter.

[ {“parameter”: "value", “parameter 2”: "value", “parameter 3”: "value"}, {“parameter 4”: "value", “parameter 5”: "value", "parameter 6": "value"} ]

Simpan file dengan ekstensi file .json. Anda dapat membuat daftar file dengan menggunakan perintah berikut. Ganti masing-masing example resource placeholder dengan informasi Anda sendiri.

aws ssm start-automation-execution \ --document-name runbook name \ –-parameters input parameters \ --target-maps path to file/file name.json

Anda juga dapat mengunduh file dari bucket Amazon Simple Storage Service (Amazon S3), selama Anda memiliki izin untuk membaca data dari bucket. Gunakan format perintah berikut. Ganti masing-masing example resource placeholder dengan informasi Anda sendiri.

aws ssm start-automation-execution \ --document-name runbook name \ --target-maps http://amzn-s3-demo-bucket.s3.amazonaws.com/file_name.json

Berikut adalah contoh skenario untuk membantu Anda memahami TargetMaps pilihan. Dalam skenario ini, pengguna ingin membuat EC2 instance Amazon dari berbagai jenis dari yang berbedaAMIs. Untuk melakukan tugas ini, pengguna membuat runbook bernama AMI _Testing. Runbook ini mendefinisikan dua parameter input: instanceType dan imageId.

{ "description": "AMI Testing", "schemaVersion": "0.3", "assumeRole": "{{assumeRole}}", "parameters": { "assumeRole": { "type": "String", "description": "Role under which to run the automation", "default": "" }, "instanceType": { "type": "String", "description": "Type of EC2 Instance to launch for this test" }, "imageId": { "type": "String", "description": "Source AMI id from which to run instance" } }, "mainSteps": [ { "name": "runInstances", "action": "aws:runInstances", "maxAttempts": 1, "onFailure": "Abort", "inputs": { "ImageId": "{{imageId}}", "InstanceType": "{{instanceType}}", "MinInstanceCount": 1, "MaxInstanceCount": 1 } } ], "outputs": [ "runInstances.InstanceIds" ] }

Pengguna kemudian menentukan nilai parameter target berikut dalam sebuah file bernama AMI_instance_types.json.

[ { "instanceType" : ["t2.micro"], "imageId" : ["ami-b70554c8"] }, { "instanceType" : ["t2.small"], "imageId" : ["ami-b70554c8"] }, { "instanceType" : ["t2.medium"], "imageId" : ["ami-cfe4b2b0"] }, { "instanceType" : ["t2.medium"], "imageId" : ["ami-cfe4b2b0"] }, { "instanceType" : ["t2.medium"], "imageId" : ["ami-cfe4b2b0"] } ]

Pengguna dapat menjalankan otomatisasi dan membuat lima EC2 instance yang ditentukan AMI_instance_types.json dengan menjalankan perintah berikut.

aws ssm start-automation-execution \ --document-name AMI_Testing \ --target-parameter-name imageId \ --target-maps file:///home/TestUser/workspace/runinstances/AMI_instance_types.json

Menargetkan semua instans Amazon EC2

Anda dapat menjalankan otomatisasi pada semua EC2 instans Amazon saat ini Akun AWS dan Wilayah AWS dengan memilih Semua instans dalam daftar Target. Misalnya, jika Anda ingin memulai ulang semua EC2 instans Amazon Anda Akun AWS dan saat ini Wilayah AWS, Anda dapat memilih AWS-RestartEC2Instance runbook dan kemudian memilih Semua instance dari daftar Target.

Menargetkan semua EC2 instans Amazon untuk runbook

Setelah Anda memilih Semua instans, Systems Manager mengisi Instans dengan tanda bintang (*) dan membuat bidang tidak dapat diubah (bidang berwarna abu-abu). Systems Manager juga membuat InstanceIdbidang di bidang parameter Input tidak tersedia untuk perubahan. Membuat bidang ini tidak dapat diubah adalah perilaku yang diharapkan jika Anda memilih untuk menargetkan semua instans.