Verwalten Sie Zeitpläne mithilfe von Infrastructure as Code (IaC) - Instance Scheduler auf AWS

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwalten Sie Zeitpläne mithilfe von Infrastructure as Code (IaC)

Wichtig

Stellen Sie Zeitpläne mithilfe einer separaten Vorlage bereit, nachdem die Hub-Stack-Bereitstellung abgeschlossen ist.

Instance Scheduler auf AWS bietet eine benutzerdefinierte Ressource (ServiceInstanceSchedule), mit der Sie Zeitpläne über AWS CloudFormation konfigurieren und verwalten können. Die benutzerdefinierte Ressource verwendet PascalCase Schlüssel für dieselben Daten wie die Instance Scheduler-Konfigurationstabelle in Amazon DynamoDB (Beispiele finden Sie in der Vorlage unten). Weitere Informationen zu den Feldern für Zeitpläne finden Sie unter Zeitplandefinitionen. Weitere Informationen zu den Feldern für Perioden finden Sie unter Periodendefinitionen.

Wenn Sie die benutzerdefinierte Ressource verwenden, um einen Zeitplan zu erstellen, entspricht der Name dieses Zeitplans standardmäßig dem logischen Ressourcennamen der benutzerdefinierten Ressource. Um einen anderen Namen anzugeben, verwenden Sie die Name-Eigenschaft der benutzerdefinierten Ressource. Die Lösung fügt dem Namen des Zeitplans standardmäßig auch den Stacknamen als Präfix hinzu. Wenn Sie den Stacknamen nicht als Präfix hinzufügen möchten, verwenden Sie die NoStackPrefix Eigenschaft.

Wenn Sie den Namen und die NoStackPrefix Eigenschaften verwenden, stellen Sie sicher, dass Sie eindeutige Zeitplannamen wählen. Wenn bereits ein Zeitplan mit demselben Namen existiert, wird die Ressource nicht erstellt oder aktualisiert.

Um mit der Verwaltung von Zeitplänen mit IaC zu beginnen, kopieren Sie die folgende Beispielvorlage und fügen Sie sie ein und passen Sie so viele oder so wenige Zeitpläne an, wie Sie möchten. Speichern Sie die Datei als.template-Datei (z. B.:my-schedules.template) und stellen Sie dann Ihre neue Vorlage mit AWS CloudFormation bereit. Beispiele für fertige Zeitplanvorlagen finden Sie unter Beispielpläne.

AWSTemplateFormatVersion: 2010-09-09
Parameters:
  ServiceInstanceScheduleServiceTokenARN:
    Type: String
    Description: (Required) service token arn taken from InstanceScheduler outputs
Metadata:
  'AWS::CloudFormation::Designer': {}
Resources:
  SampleSchedule1:
    Type: 'Custom::ServiceInstanceSchedule'
    Properties:
      ServiceToken: !Ref ServiceInstanceScheduleServiceTokenARN #do not edit this line
      NoStackPrefix: 'False'
      Name: my-renamed-sample-schedule
      Description: a full sample template for creating cfn schedules showing all possible values
      Timezone: America/New_York
      Enforced: 'True'
      Hibernate: 'True'
      RetainRunning: 'True'
      StopNewInstances: 'True'
      UseMaintenanceWindow: 'True'
      SsmMaintenanceWindow: 'my_window_name'
      Periods:
      - Description: run from 9-5 on the first 3 days of March
        BeginTime: '9:00'
        EndTime: '17:00'
        InstanceType: 't2.micro'
        MonthDays: '1-3'
        Months: '3'
      - Description: run from 2pm-5pm on the weekends
        BeginTime: '14:00'
        EndTime: '17:00'
        InstanceType: 't2.micro'
        WeekDays: 'Sat-Sun'

  SampleSchedule2:
    Type: 'Custom::ServiceInstanceSchedule'
    Properties:
      ServiceToken: !Ref ServiceInstanceScheduleServiceTokenARN #do not edit this line
      NoStackPrefix: 'True'
      Description: a sample template for creating simple cfn schedules
      Timezone: Europe/Amsterdam
      Periods:
      - Description: stop at 5pm every day
        EndTime: '17:00'

Bei der Bereitstellung der Vorlage müssen Sie ServiceToken ARN für Ihre Bereitstellung von Instance Scheduler auf AWS angeben. Sie finden diesen ARN darin, CloudFormation indem Sie zu Ihrem bereitgestellten Instance Scheduler-Stack navigieren, Outputs auswählen und nach suchen ServiceInstanceScheduleServiceToken.

Wichtig

Verwenden Sie nicht die DynamoDB-Konsole oder die Scheduler-CLI, um Zeitpläne und Zeiträume zu löschen oder zu ändern, die mit der benutzerdefinierten Ressource konfiguriert wurden. Wenn Sie dies tun, entsteht ein Konflikt zwischen den gespeicherten Parametern im Stack und den Werten in der Tabelle. Verwenden Sie auch keine Zeiträume, die mit der benutzerdefinierten Ressource konfiguriert wurden, in Zeitplänen, die mit der DynamoDB-Konsole oder der Scheduler-CLI erstellt wurden.

Bevor Sie den Instance Scheduler-Hauptstapel löschen, müssen Sie alle zusätzlichen Stacks löschen, die Zeitpläne und Perioden enthalten, die mit der benutzerdefinierten Ressource erstellt wurden, da die benutzerdefinierten Ressourcenstapel Abhängigkeiten von der DynamoDB-Tabelle des Hauptstapels enthalten.

In der DynamoDB-Konfigurationstabelle können Zeitpläne und Zeiträume, die mit der benutzerdefinierten Ressource konfiguriert wurden, anhand des configured_in_stack-Attributs identifiziert werden. Das Attribut enthält den Amazon-Ressourcennamen des Stacks, der zur Erstellung des Artikels verwendet wurde.