Menjadwalkan otomatisasi dengan asosiasi State Manager - AWS Systems Manager

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

Menjadwalkan otomatisasi dengan asosiasi State Manager

Anda dapat memulai otomatisasi dengan membuat State Manager asosiasi dengan runbook. State Manageradalah kemampuan AWS Systems Manager. Dengan membuat State Manager asosiasi dengan runbook, Anda dapat menargetkan berbagai jenis AWS sumber daya. Misalnya, Anda dapat membuat asosiasi yang menerapkan status yang diinginkan pada AWS sumber daya, termasuk yang berikut ini:

  • Lampirkan peran Systems Manager ke instans Amazon Elastic Compute Cloud (AmazonEC2) untuk membuat instans terkelola.

  • Tegakkan masuk dan keluarnya aturan yang diinginkan untuk grup keamanan.

  • Buat atau hapus backup Amazon DynamoDB.

  • Buat atau hapus snapshot Amazon Elastic Block Store (AmazonEBS).

  • Matikan izin baca dan tulis di bucket Amazon Simple Storage Service (Amazon S3).

  • Mulai, mulai ulang, atau hentikan instans terkelola dan instans Amazon Relational Database Service (RDSAmazon).

  • Terapkan patch ke Linux, macOS, dan Window AMIs.

Gunakan prosedur berikut untuk membuat State Manager asosiasi yang menjalankan otomatisasi menggunakan AWS Systems Manager konsol dan AWS Command Line Interface (AWS CLI). Untuk informasi umum tentang asosiasi dan informasi tentang membuat asosiasi yang menggunakan SSM Command dokumen atau Policy dokumen, lihatMembuat asosiasi.

Sebelum Anda mulai

Perhatikan detail penting berikut sebelum Anda menjalankan otomatisasi dengan menggunakanState Manager:

  • Sebelum Anda dapat membuat asosiasi yang menggunakan runbook, verifikasi bahwa Anda mengonfigurasi izin untuk Otomasi, kapabilitas. AWS Systems Manager Untuk informasi selengkapnya, lihat Menyiapkan Otomatisasi.

  • State Managerasosiasi yang menggunakan runbook berkontribusi pada jumlah maksimum otomatisasi yang berjalan secara bersamaan di Anda. Akun AWS Anda dapat memiliki maksimum 100 otomatisasi yang berjalan bersamaan. Untuk selengkapnya, lihat kuota layanan Systems Manager di bagian. Referensi Umum Amazon Web Services

  • Saat menjalankan otomatisasi, State Manager tidak mencatat API operasi yang diprakarsai oleh otomatisasi di AWS CloudTrail.

  • Systems Manager secara otomatis membuat peran terkait layanan sehingga State Manager memiliki izin untuk memanggil operasi Otomasi API Systems Manager. Jika mau, Anda dapat membuat peran terkait layanan sendiri dengan menjalankan perintah berikut dari or. AWS CLI AWS Tools for PowerShell

    Linux & macOS
    aws iam create-service-linked-role \ --aws-service-name ssm.amazonaws.com
    Windows
    aws iam create-service-linked-role ^ --aws-service-name ssm.amazonaws.com
    PowerShell
    New-IAMServiceLinkedRole ` -AWSServiceName ssm.amazonaws.com

    Untuk informasi selengkapnya tentang peran terkait layanan, lihat Menggunakan peran terkait layanan untuk Systems Manager.

Mewujudkan asosiasi yang menjalankan otomatisasi (konsol)

Prosedur berikut menjelaskan cara menggunakan konsol Systems Manager untuk membuat State Manager asosiasi yang menjalankan otomatisasi.

Untuk membuat State Manager asosiasi yang menjalankan otomatisasi
  1. Buka AWS Systems Manager konsol di https://console.aws.amazon.com/systems-manager/.

  2. Di panel navigasi, pilih State Manager, lalu pilih Buat asosiasi.

  3. Di bidang Nama, tentukan nama. Ini memang opsional, tetapi direkomendasikan.

  4. Di daftar Dokumen, pilih runbook. Gunakan bilah Pencarian untuk memfilter Jenis dokumen: Sama : Otomasi runbook. Untuk melihat lebih banyak runbook, gunakan angka di sebelah kanan bilah Pencarian.

    catatan

    Anda dapat melihat informasi tentang runbook dengan memilih nama runbook.

  5. Pilih Eksekusi sederhana untuk menjalankan otomatisasi pada satu target atau lebih dengan menentukan ID sumber daya untuk target tersebut. Pilih Rate control untuk menjalankan otomatisasi di seluruh armada AWS sumber daya dengan menentukan opsi penargetan seperti tag atau. AWS Resource Groups Anda juga dapat mengontrol pengoperasian otomatisasi di seluruh sumber daya Anda dengan menentukan konkurensi dan ambang batas kesalahan.

    Jika Anda memilih Pengendalian rate, bagian Target akan ditampilkan.

  6. Di bagian Target, pilih metode untuk menargetkan sumber daya.

    1. (Diperlukan) Gunakan daftar Parameter untuk memilih parameter. Item dalam daftar Parameter ditentukan oleh parameter di runbook yang Anda pilih pada awal prosedur ini. Dengan memilih parameter, Anda menentukan jenis sumber daya tempat alur kerja otomatisasi berjalan.

    2. (Diperlukan) Dalam daftar Target, pilih metode untuk menargetkan sumber daya.

      • Grup Sumber Daya: Pilih nama grup dari daftar Grup Sumber Daya. Untuk informasi selengkapnya tentang penargetan AWS Resource Groups di runbook, lihat. Penargetan AWS Resource Groups

      • Tag: Masukkan kunci tag dan nilai tag di bidang yang disediakan (opsional). Pilih Tambahkan. Untuk informasi lebih lanjut tentang penargetan tag di runbook, lihat Menargetkan tag.

      • Nilai Parameter: Masukkan nilai dalam bagian Parameter input. 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. Untuk informasi selengkapnya tentang nilai parameter penargetan dalam runbook, lihat Menanrgetkan nilai parameter.

  7. Di bagian Parameter input, tentukan parameter input yang diperlukan.

    Jika Anda memilih untuk menargetkan sumber daya dengan menggunakan tag atau grup sumber daya, maka Anda mungkin tidak perlu memilih beberapa opsi di bagian Parameter input. Misalnya, jika Anda memilih AWS-RestartEC2Instance runbook, dan Anda memilih untuk menargetkan instance dengan menggunakan tag, maka Anda tidak perlu menentukan atau memilih instance IDs di bagian Parameter input. Otomatisasi menempatkan instans untuk memulai ulang dengan menggunakan tag yang Anda tentukan.

    penting

    Anda harus menentukan peran ARN di AutomationAssumeRolelapangan. State Managermenggunakan peran asumsi untuk memanggil Layanan AWS yang ditentukan dalam buku runbook dan menjalankan asosiasi Otomasi atas nama Anda.

  8. Di bagian Tentukan jadwal, pilih Sesuai jadwal jika Anda ingin menjalankan asosiasi secara berkala. Jika Anda memilih opsi ini, gunakan opsi yang disediakan untuk membuat jadwal menggunakan ekspresi Cron atau Rate. Untuk informasi selengkapnya tentang ekspresi Cron dan RateState Manager, lihatEkspresi cron dan rate untuk associate.

    catatan

    Ekspresi tingkat adalah mekanisme penjadwalan yang disukai untuk State Manager asosiasi yang menggunakan runbook. Ekspresi laju memungkinkan lebih banyak fleksibilitas untuk menjalankan asosiasi dalam hal bahwa Anda mencapai jumlah konkurensi maksimum yang menjalankan otomatisasi. Dengan jadwal laju, Systems Manager dapat kembali mencoba otomatisasi setelah menerima pemberitahuan bahwa otomatisasi bersamaan telah mencapai batas maksimumnya dan telah dicekal.

    Pilih Tidak ada jadwal jika Anda ingin menjalankan asosiasi satu kali.

  9. (Opsional) Di bagian Rate Control, pilih opsi Concurrency dan Error threshold untuk mengontrol penerapan otomatisasi di seluruh sumber daya Anda AWS .

    1. Di bagian Konkurensi, pilih satu opsi:

      • Pilih target untuk memasukkan jumlah target absolut yang dapat menjalankan otomatisasi secara bersamaan.

      • Pilih persentase untuk memasukkan persentase set target yang dapat menjalankan alur kerja otomatisasi secara bersamaan.

    2. Di bagian Ambang kesalahan, pilih satu opsi:

      • Pilih kesalahan untuk memasukkan jumlah kesalahan absolut yang diizinkan sebelum Otomatisasi berhenti mengirim otomatisasi ke sumber daya lainnya.

      • Pilih persentase untuk memasukkan persentase kesalahan absolut yang diizinkan sebelum Otomatisasi berhenti mengirim otomatisasi ke sumber daya lainnya.

    Untuk informasi selengkapnya tentang target dan kontrol tarif dengan Otomatisasi, lihat Jalankan operasi otomatis pada skala.

  10. Pilih Buat Asosiasi.

    penting

    Bila Anda membuat asosiasi, asosiasi tersebut segera berjalan melawan target yang ditentukan. Asosiasi kemudian berjalan berdasarkan ekspresi cron atau laju yang Anda pilih. Jika Anda memilih Tidak ada jadwal, asosiasi tidak berjalan lagi.

Mewujudkan asosiasi yang menjalankan otomatisasi (baris perintah)

Prosedur berikut menjelaskan cara menggunakan AWS CLI (di Linux atau Windows) atau AWS Tools for PowerShell untuk membuat State Manager asosiasi yang menjalankan otomatisasi.

Sebelum Anda mulai

Sebelum Anda menyelesaikan prosedur berikut, pastikan Anda telah membuat peran IAM layanan yang berisi izin yang diperlukan untuk menjalankan runbook, dan mengonfigurasi hubungan kepercayaan untuk Otomasi, kemampuan. AWS Systems Manager Untuk informasi selengkapnya, lihat Tugas 1: Buat peran layanan untuk otomatisasi.

Untuk membuat asosiasi yang menjalankan otomatisasi
  1. Instal dan konfigurasikan AWS CLI atau AWS Tools for PowerShell, jika Anda belum melakukannya.

    Untuk selengkapnya, lihat Menginstal atau memperbarui versi terbaru AWS CLI dan Menginstal AWS Tools for PowerShell.

  2. Jalankan perintah berikut untuk menandai dokumen.

    Linux & macOS
    aws ssm list-documents
    Windows
    aws ssm list-documents
    PowerShell
    Get-SSMDocumentList

    Perhatikan nama runbook yang ingin Anda gunakan untuk asosiasi.

  3. Jalankan perintah berikut untuk menampilkan detail tentang runbook. Dalam perintah berikut, ganti runbook name dengan informasi Anda sendiri.

    Linux & macOS
    aws ssm describe-document \ --name runbook name

    Catat nama parameter (misalnya, InstanceId) yang ingin Anda gunakan untuk --automation-target-parameter-name pilihan. Parameter ini menentukan jenis sumber daya di mana otomatisasi berjalan.

    Windows
    aws ssm describe-document ^ --name runbook name

    Catat nama parameter (misalnya, InstanceId) yang ingin Anda gunakan untuk --automation-target-parameter-name pilihan. Parameter ini menentukan jenis sumber daya di mana otomatisasi berjalan.

    PowerShell
    Get-SSMDocumentDescription ` -Name runbook name

    Catat nama parameter (misalnya, InstanceId) yang ingin Anda gunakan untuk AutomationTargetParameterName pilihan. Parameter ini menentukan jenis sumber daya di mana otomatisasi berjalan.

  4. Buat perintah yang menjalankan otomatisasi menggunakan State Manager asosiasi. Ganti masing-masing example resource placeholder dengan informasi Anda sendiri.

    Penargetan menggunakan tag

    Linux & macOS
    aws ssm create-association \ --association-name association name \ --targets Key=tag:key name,Values=value \ --name runbook name \ --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole \ --automation-target-parameter-name target parameter \ --schedule "cron or rate expression"
    catatan

    Jika Anda membuat asosiasi dengan menggunakan AWS CLI, gunakan --targets parameter untuk menargetkan instance untuk asosiasi. Jangan gunakan --instance-id parameter. Parameter --instance-id adalah parameter warisan.

    Windows
    aws ssm create-association ^ --association-name association name ^ --targets Key=tag:key name,Values=value ^ --name runbook name ^ --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole ^ --automation-target-parameter-name target parameter ^ --schedule "cron or rate expression"
    catatan

    Jika Anda membuat asosiasi dengan menggunakan AWS CLI, gunakan --targets parameter untuk menargetkan instance untuk asosiasi. Jangan gunakan --instance-id parameter. Parameter --instance-id adalah parameter warisan.

    PowerShell
    $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target $Targets.Key = "tag:key name" $Targets.Values = "value" New-SSMAssociation ` -AssociationName "association name" ` -Target $Targets ` -Name "runbook name" ` -Parameters @{ "AutomationAssumeRole"="arn:aws:iam::123456789012:role/RunbookAssumeRole" } ` -AutomationTargetParameterName "target parameter" ` -ScheduleExpression "cron or rate expression"
    catatan

    Jika Anda membuat asosiasi dengan menggunakan AWS Tools for PowerShell, gunakan Target parameter untuk menargetkan instance untuk asosiasi. Jangan gunakan InstanceId parameter. Parameter InstanceId adalah parameter warisan.

    Penargetan menggunakan nilai parameter

    Linux & macOS
    aws ssm create-association \ --association-name association name \ --targets Key=ParameterValues,Values=value,value 2,value 3 \ --name runbook name \ --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole \ --automation-target-parameter-name target parameter \ --schedule "cron or rate expression"
    Windows
    aws ssm create-association ^ --association-name association name ^ --targets Key=ParameterValues,Values=value,value 2,value 3 ^ --name runbook name ^ --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole ^ --automation-target-parameter-name target parameter ^ --schedule "cron or rate expression"
    PowerShell
    $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target $Targets.Key = "ParameterValues" $Targets.Values = "value","value 2","value 3" New-SSMAssociation ` -AssociationName "association name" ` -Target $Targets ` -Name "runbook name" ` -Parameters @{ "AutomationAssumeRole"="arn:aws:iam::123456789012:role/RunbookAssumeRole"} ` -AutomationTargetParameterName "target parameter" ` -ScheduleExpression "cron or rate expression"

    Penargetan menggunakan AWS Resource Groups

    Linux & macOS
    aws ssm create-association \ --association-name association name \ --targets Key=ResourceGroup,Values=resource group name \ --name runbook name \ --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole \ --automation-target-parameter-name target parameter \ --schedule "cron or rate expression"
    Windows
    aws ssm create-association ^ --association-name association name ^ --targets Key=ResourceGroup,Values=resource group name ^ --name runbook name ^ --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole ^ --automation-target-parameter-name target parameter ^ --schedule "cron or rate expression"
    PowerShell
    $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target $Targets.Key = "ResourceGroup" $Targets.Values = "resource group name" New-SSMAssociation ` -AssociationName "association name" ` -Target $Targets ` -Name "runbook name" ` -Parameters @{ "AutomationAssumeRole"="arn:aws:iam::123456789012:role/RunbookAssumeRole"} ` -AutomationTargetParameterName "target parameter" ` -ScheduleExpression "cron or rate expression"

    Menargetkan beberapa akun dan Wilayah

    Linux & macOS
    aws ssm create-association \ --association-name association name \ --targets Key=ResourceGroup,Values=resource group name \ --name runbook name \ --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole \ --automation-target-parameter-name target parameter \ --schedule "cron or rate expression" \ --target-locations Accounts=111122223333,444455556666,444455556666,Regions=region,region
    Windows
    aws ssm create-association ^ --association-name association name ^ --targets Key=ResourceGroup,Values=resource group name ^ --name runbook name ^ --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole ^ --automation-target-parameter-name target parameter ^ --schedule "cron or rate expression" ^ --target-locations Accounts=111122223333,444455556666,444455556666,Regions=region,region
    PowerShell
    $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target $Targets.Key = "ResourceGroup" $Targets.Values = "resource group name" New-SSMAssociation ` -AssociationName "association name" ` -Target $Targets ` -Name "runbook name" ` -Parameters @{ "AutomationAssumeRole"="arn:aws:iam::123456789012:role/RunbookAssumeRole"} ` -AutomationTargetParameterName "target parameter" ` -ScheduleExpression "cron or rate expression" ` -TargetLocations @{ "Accounts"=["111122223333,444455556666,444455556666"], "Regions"=["region,region"]

    Perintah akan menampilkan detail asosiasi baru yang serupa dengan yang berikut ini.

    Linux & macOS
    {
    "AssociationDescription": {
        "ScheduleExpression": "cron(0 7 ? * MON *)",
        "Name": "AWS-StartEC2Instance",
        "Parameters": {
            "AutomationAssumeRole": [
                "arn:aws:iam::123456789012:role/RunbookAssumeRole"
            ]
        },
        "Overview": {
            "Status": "Pending",
            "DetailedStatus": "Creating"
        },
        "AssociationId": "1450b4b7-bea2-4e4b-b340-01234EXAMPLE",
        "DocumentVersion": "$DEFAULT",
        "AutomationTargetParameterName": "InstanceId",
        "LastUpdateAssociationDate": 1564686638.498,
        "Date": 1564686638.498,
        "AssociationVersion": "1",
        "AssociationName": "CLI",
        "Targets": [
            {
                "Values": [
                    "DEV"
                ],
                "Key": "tag:ENV"
            }
        ]
    }
    }
    
    Windows
    {
    "AssociationDescription": {
        "ScheduleExpression": "cron(0 7 ? * MON *)",
        "Name": "AWS-StartEC2Instance",
        "Parameters": {
            "AutomationAssumeRole": [
                "arn:aws:iam::123456789012:role/RunbookAssumeRole"
            ]
        },
        "Overview": {
            "Status": "Pending",
            "DetailedStatus": "Creating"
        },
        "AssociationId": "1450b4b7-bea2-4e4b-b340-01234EXAMPLE",
        "DocumentVersion": "$DEFAULT",
        "AutomationTargetParameterName": "InstanceId",
        "LastUpdateAssociationDate": 1564686638.498,
        "Date": 1564686638.498,
        "AssociationVersion": "1",
        "AssociationName": "CLI",
        "Targets": [
            {
                "Values": [
                    "DEV"
                ],
                "Key": "tag:ENV"
            }
        ]
    }
    }
    
    PowerShell
    Name                  : AWS-StartEC2Instance
    InstanceId            : 
    Date                  : 8/1/2019 7:31:38 PM
    Status.Name           : 
    Status.Date           : 
    Status.Message        : 
    Status.AdditionalInfo : 
catatan

Jika Anda menggunakan tag untuk membuat asosiasi pada satu kasus target atau lebih, dan kemudian Anda menghapus tag dari instans yang tidak lagi menjalankan asosiasi. Instance dipisahkan dari State Manager dokumen.

Pemecahan masalah otomatisasi yang dijalankan oleh asosiasi State Manager

otomatisasi Systems Manager memberlakukan batas 100 otomatisasi bersamaan, dan 1.000 antri otomatisasi per akun, per Wilayah. Jika State Manager asosiasi yang menggunakan runbook menunjukkan status Gagal dan status terperinci AutomationExecutionLimitExceeded, maka otomatisasi Anda mungkin telah mencapai batasnya. Akibatnya, Systems Manager mencekal otomatisasi. Untuk mengatasi masalah ini, lakukan solusi berikut:

  • Gunakan tingkat yang berbeda atau ekspresi cron untuk asosiasi Anda. Misalnya, jika asosiasi dijadwalkan untuk berjalan setiap 30 menit, ubah ekspresi agar bisa berjalan setiap satu atau dua jam sekali.

  • Hapus otomatisasi yang ada yang memiliki status Menunggu. Dengan menghapus otomatisasi ini, Anda menghapus antrean saat ini.