Administración de programaciones mediante Infraestructura como código (IaC)
importante
Implemente programaciones mediante una plantilla independiente una vez que la implementación de la pila central se haya completado.
El programador de instancias de AWS proporciona un recurso personalizado (ServiceInstanceSchedule) que puede usar para configurar y administrar programaciones a través de AWS CloudFormation. El recurso personalizado utiliza claves de PascalCase para los mismos datos que la tabla de configuración del programador de instancias en Amazon DynamoDB (consulte la plantilla que se muestra a continuación para obtener ejemplos). Para obtener más información sobre los campos correspondientes a las programaciones, consulte Definiciones de programación. Para obtener más información sobre los campos correspondientes a los períodos, consulte Definiciones de período.
Cuando utiliza el recurso personalizado para crear una programación, el nombre de esta es el nombre de recurso lógico del recurso personalizado de forma predeterminada. Para especificar un nombre diferente, utilice la propiedad Name del recurso personalizado. La solución también agrega el nombre de la pila al nombre de la programación como prefijo de forma predeterminada. Si no desea agregar el nombre de la pila como prefijo, utilice la propiedad NoStackPrefix.
Cuando utilice las propiedades Name y NoStackPrefix, asegúrese de elegir nombres de programación únicos. Si ya existe una programación con el mismo nombre, el recurso no se creará ni se actualizará.
Para empezar a administrar programaciones mediante IaC, copie y pegue la siguiente plantilla de ejemplo y personalice tantas programaciones como desee. Guarde el archivo como archivo .template (por ejemplo: my-schedules.template) y, a continuación, implemente la nueva plantilla mediante AWS CloudFormation. Para ver ejemplos de plantillas de programaciones completadas, consulte Programaciones de ejemplo.
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'Al implementar la plantilla, debe proporcionar ServiceTokenARN para la implementación del programador de instancias en AWS. Puede encontrar este nombre de recurso de Amazon (ARN) en CloudFormation. Para ello, vaya a la pila del programador de instancias implementado, seleccione Salidas y busque ServiceInstanceScheduleServiceToken.
importante
No utilice la consola de DynamoDB ni la CLI del programador para eliminar o modificar las programaciones y los períodos que se configuraron mediante el recurso personalizado. Si lo hace, creará un conflicto entre los parámetros almacenados de la pila y los valores de la tabla. Además, no utilice los períodos configurados con el recurso personalizado en programaciones creadas mediante la consola de DynamoDB o la CLI del programador.
Antes de eliminar la pila del programador de instancias principal, debe eliminar todas las pilas adicionales que contengan programaciones y períodos creados con el recurso personalizado, ya que las pilas de recursos personalizadas contienen dependencias de la tabla de DynamoDB de la pila principal.
En la tabla de DynamoDB de configuración, las programaciones y los períodos que se configuraron con el recurso personalizado se pueden identificar mediante el atributo configured_in_stack. El atributo contiene el nombre de recurso de Amazon de la pila que se utilizó para crear el elemento.