

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# CLI du planificateur
<a name="scheduler-cli-4"></a>

L'interface de ligne de commande (CLI) Instance Scheduler on AWS vous permet de configurer des calendriers et des périodes, et d'estimer les économies de coûts pour un calendrier donné.

## Conditions préalables
<a name="prerequisites"></a>

La CLI de cette solution nécessite Python 3.8\+ et la dernière version de boto3.

## Informations d’identification
<a name="credentials"></a>

Pour utiliser l'interface de ligne de commande du planificateur, vous devez disposer d'informations d'identification pour l'interface de ligne de commande AWS. Pour plus d'informations, reportez-vous à la section Paramètres du fichier [ de configuration et d'informations d'identification ](https://docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html) dans le guide * de l'utilisateur de l'*AWS CLI.

Vos informations d'identification doivent disposer des autorisations suivantes :
+  `lambda:InvokeFunction`- Pour invoquer la InstanceSchedulerMain fonction dans la pile du planificateur et pour mettre à jour les informations de calendrier et de période dans la base de données de configuration du planificateur à partir de la ligne de commande
+  `cloudformation:DescribeStackResource`- Pour récupérer l'ID de ressource physique de la fonction AWS Lambda depuis la pile afin de gérer la demande CLI

Les demandes effectuées par l'interface de ligne de commande du planificateur et les réponses sont enregistrées dans le flux de `AdminCliRequestHandler-yyyymmdd` journaux.

**Note**  
Si vous spécifiez un profil à l'aide de l'argument profile-name, le profil que vous spécifiez doit disposer de ces autorisations. Pour plus d'informations sur l'argument profile-name, reportez-vous à la section Arguments [ courants. ](#common-arguments)

## Installation de l'interface de ligne de commande du planificateur
<a name="install-the-scheduler-cli"></a>

1.  [Téléchargez ](https://s3.amazonaws.com/solutions-reference/instance-scheduler-on-aws/latest/instance_scheduler_cli.zip) le package CLI du planificateur ** * (instance\_scheduler\_cli.zip) * ** et placez-le dans un répertoire de votre ordinateur.
**Important**  
L'installation échouera si vous ne placez pas les fichiers dans leur propre répertoire, puis si vous ne les installez pas à partir de ce répertoire.

1. Décompressez l'archive zip dans son propre répertoire (instance\_scheduler\_cli).

1. À partir du répertoire dans lequel vous avez placé le package CLI décompressé, installez le scheduler-cli dans votre environnement :
**Note**  
Scheduler-CLI nécessite Python 3.8 ou supérieur et les dernières versions de pip et boto3. Si tous ces éléments ne sont pas installés sur votre machine locale, veuillez vous référer à la documentation officielle de [ pip ](https://pip.pypa.io/en/stable/getting-started/) pour les instructions d'installation avant d'essayer d'installer le Scheduler-CLI.

   ```
   pip install --no-index --find-links=instance_scheduler_cli instance_scheduler_cli
   ```

1. Vérifiez que l'installation a réussi avec :

   ```
   scheduler-cli --help
   ```

**Note**  
Si vous préférez, un [ sdist de la CLI ](https://s3.amazonaws.com/solutions-reference/instance-scheduler-on-aws/latest/instance_scheduler_cli-3.0.0.tar.gz) peut être installé en utilisant le même processus que ci-dessus.

## Structure de commande
<a name="command-structure"></a>

La CLI du planificateur utilise une structure en plusieurs parties sur la ligne de commande. La partie suivante spécifie le script python de la CLI du planificateur. L'interface de ligne de commande du planificateur comporte des commandes qui spécifient les opérations à effectuer sur les périodes et les planifications. Les arguments spécifiques d'une opération peuvent être spécifiés sur la ligne de commande dans n'importe quel ordre.

```
scheduler-cli <command> <arguments>
```

## Arguments courants
<a name="common-arguments"></a>

L'interface de ligne de commande du planificateur prend en charge les arguments suivants que toutes les commandes peuvent utiliser :


| Argument | Description | 
| --- | --- | 
|  `--stack [replaceable]<stackname>`  | Le nom de la pile de planificateurs.<br /> **Important : ** cet argument est obligatoire pour toutes les commandes. | 
|  `--region [replaceable]<regionname>`  | Nom de la région dans laquelle la pile de planificateurs est déployée.<br /> **Remarque : ** Vous devez utiliser cet argument lorsque les fichiers de configuration et d'informations d'identification par défaut ne sont pas installés dans la même région que la pile de solutions. | 
|  `--profile-name [replaceable] <profilename>`  | Le nom du profil à utiliser pour exécuter les commandes. Si aucun nom de profil n'est spécifié, le profil par défaut est utilisé. | 
|  `--query`  | Expression JMESPath qui contrôle la sortie de la commande. Pour plus d'informations sur le contrôle de la sortie, reportez-vous à la section [ Contrôle de la sortie des commandes depuis l'interface de ligne de commande AWS ](https://docs.aws.amazon.com/cli/latest/userguide/controlling-output.html) dans le guide de l'utilisateur de l'interface de ligne de commande * AWS*. | 
|  `--help`  | Affiche les commandes et les arguments valides pour l'interface de ligne de commande du planificateur. Lorsqu'il est utilisé avec une commande spécifique, il affiche des sous-commandes et des arguments valides pour cette commande. | 
|  `--version`  | Affiche le numéro de version de l'interface de ligne de commande du planificateur. | 

## Commandes disponibles
<a name="available-commands"></a>
+  [période de création ](#create-period) 
+  [créer-calendrier ](#create-schedule) 
+  [période de suppression ](#delete-period) 
+  [supprimer-calendrier ](#delete-schedule) 
+  [décrire les périodes ](#describe-periods) 
+  [décrire les horaires ](#describe-schedules) 
+  [description-planification-utilisation ](#describe-schedule-usage) 
+  [période de mise à jour ](#update-period) 
+  [calendrier de mise à jour ](#update-schedule) 
+  [help](#help) 

## période de création
<a name="create-period"></a>

### Description
<a name="create-period-description"></a>

Crée une période. Un point doit contenir au moins l'un des éléments suivants : `begintime``endtime`,`weekdays`,`months`, ou`monthdays`.

### Arguments
<a name="create-period-arguments"></a>

 `--name`   
+ Le nom de la période

  Type : Chaîne

  Obligatoire : oui

 `--description`   
+ Description de la période

  Type : chaîne

  Obligatoire : non

 `--begintime`   
+ Heure à laquelle la période de course commence. Si `begintime` et ne `endtime` sont pas spécifiés, la période de fonctionnement est de 00h00 à 23h59.

  Type : Chaîne

  Contraintes : `H:MM` ou `HH:MM` format

  Obligatoire : non

 `--endtime`   
+ Heure à laquelle la période de course s'arrête. Si `begintime` et ne `endtime` sont pas spécifiés, la période de fonctionnement est de 00h00 à 23h59.

  Type : Chaîne

  Contraintes : `H:MM` ou `HH:MM` format

  Obligatoire : non

 `--weekdays`   
+ Les jours de la semaine pour la période

  Type : Chaîne

  Contraintes : Comma-delimited liste de noms de jours abrégés (mon) ou de chiffres (0). Utilisez - pour spécifier une plage. Utilisez/pour spécifier chaque n  ^e  ^ jour de la semaine.

  Obligatoire : non

 `--months`   
+ Les mois de la période

  Type : Chaîne

  Contraintes : Comma-delimited liste des noms de mois abrégés (janvier) ou des chiffres (1). Utilisez - pour spécifier une plage. Utilisez/pour spécifier chaque n  ^e  ^ mois.

  Obligatoire : non

 `--monthdays`   
+ Les jours du mois pour la période

  Type : Chaîne

  Contraintes : Comma-delimited liste des noms de mois abrégés (janvier) ou des chiffres (1). Utilisez - pour spécifier une plage. Utilisez/pour spécifier chaque n  ^e  ^ jour du mois.

  Obligatoire : non

### Exemple
<a name="create-period-example"></a>

```
$ scheduler-cli create-period --name "weekdays" --begintime 09:00 --endtime 18:00 --weekdays mon-fri --stack Scheduler
{
   "Period": {
      "Name": "weekdays",
      "Endtime": "18:00",
      "Type": "period",
      "Begintime": "09:00",
      "Weekdays": [
         "mon-fri"
      ]
   }
    }
```

## créer-calendrier
<a name="create-schedule"></a>

### Description
<a name="create-schedule-description"></a>

Crée un calendrier.

### Arguments
<a name="create-schedule-arguments"></a>

 `--name`   
+ Le nom du calendrier

  Type : Chaîne

  Obligatoire : oui

 `--description`   
+ Une description du calendrier

  Type : chaîne

  Obligatoire : non

 `--enforced`   
+ Applique l'état planifié pour l'instance

  Obligatoire : non

 `--use-metrics`   
+ Collectez des CloudWatch statistiques Amazon

  Obligatoire : non

 `--periods`   
+ Une liste des périodes de fonctionnement du calendrier. Si plusieurs périodes sont spécifiées, la solution lance une instance si l'une des périodes est évaluée à`true`.

  Type : Chaîne

  Contraintes : Comma-delimited liste des périodes. Permet `<period-name>@[replaceable]<instance type>` de spécifier un type d'instance pour une période donnée. Par exemple, `weekdays@t2.large`.

  Obligatoire : oui

 `--retain-running`   
+ Empêche l'arrêt d'une instance par la solution à la fin d'une période d'exécution, si l'instance a été démarrée manuellement avant le début de la période.

  Obligatoire : non

 `--ssm-maintenance-window`   
+ Ajoute une fenêtre de maintenance d'AWS Systems Manager en tant que période d'exécution à un calendrier d'instance Amazon EC2.

  Type : chaîne

  Obligatoire : non

 `--do-not-stop-new-instances`   
+ N'arrêtez pas une instance la première fois qu'elle est balisée si elle s'exécute en dehors d'une période d'exécution

  Obligatoire : non

 `--timezone`   
+ Le fuseau horaire que le calendrier utilisera

  Type : tableau de chaînes

  Obligatoire : Non (Si cet argument n'est pas utilisé, le fuseau horaire par défaut de la pile de solutions principale est utilisé.)

 `--use-maintenance-window`   
+ Ajoute une fenêtre de maintenance Amazon RDS en tant que période d'exécution à un calendrier d'instance Amazon RDS, ou une fenêtre de maintenance AWS Systems Manager en tant que période d'exécution à un calendrier d'instance Amazon EC2

  Type : true/false

  Obligatoire : Non (vrai par défaut)

### Exemple
<a name="create-schedule-example"></a>

```
$ scheduler-cli create-schedule --name LondonOfficeHours --periods weekdays,weekends --timezone Europe/London --stack Scheduler
{
   "Schedule": {
      "Enforced": false,
      "Name": "LondonOfficeHours",
      "StopNewInstances": true,
      "Periods": [
         "weekends",
         "weekdays"
      ],
      "Timezone": "Europe/London",
      "Type": "schedule"
   }
}
```

## période de suppression
<a name="delete-period"></a>

 `--name`   
+ Le nom de la période applicable

  Type : Chaîne

  Obligatoire : oui

**Important**  
Si la période est utilisée dans des calendriers existants, vous devez la supprimer de ces calendriers * avant * de la supprimer.

 **Exemple** 

```
$ scheduler-cli delete-period --name weekdays --stack Scheduler
{
   "Period": "weekdays"
}
```

## supprimer-calendrier
<a name="delete-schedule"></a>

### Description
<a name="delete-schedule-description"></a>

Supprime un calendrier existant

### Arguments
<a name="delete-schedule-arguments"></a>

 `--name`   
+ Le nom du calendrier applicable

  Type : Chaîne

  Obligatoire : oui

### Exemple
<a name="delete-schedule-example"></a>

```
$ scheduler-cli delete-schedule --name LondonOfficeHours --stack Scheduler
{
   "Schedule": "LondonOfficeHours"
}
```

## décrire les périodes
<a name="describe-periods"></a>

### Description
<a name="describe-periods-description"></a>

Répertorie les périodes configurées pour la pile Instance Scheduler

### Arguments
<a name="describe-periods-arguments"></a>

 `--name`   
+ Le nom d'une période spécifique que vous souhaitez décrire

  Type : chaîne

  Obligatoire : non

### Exemple
<a name="describe-periods-example"></a>

```
$ scheduler-cli describe-periods --stack Scheduler
{
   "Periods": [
      {
         "Name": "first-monday-in-quarter",
         "Months": [
            "jan/3"
         ],
         "Type": "period",
         "Weekdays": [
            "mon#1"
         ],
         "Description": "Every first Monday of each quarter"
      },
      {
         "Description": "Office hours",
         "Weekdays": [
            "mon-fri"
         ],
         "Begintime": "09:00",
         "Endtime": "17:00",
         "Type": "period",
         "Name": "office-hours"
      },

      {
         "Name": "weekdays",
         "Endtime": "18:00",
         "Type": "period",
         "Weekdays": [
            "mon-fri"
         ],
         "Begintime": "09:00"
      },
      {
         "Name": "weekends",
         "Type": "period",
         "Weekdays": [
            "sat-sun"
         ],
         "Description": "Days in weekend"
      }
   ]
}
```

## décrire les horaires
<a name="describe-schedules"></a>

### Description
<a name="describe-schedules-description"></a>

Répertorie les planifications configurées pour la pile Instance Scheduler.

### Arguments
<a name="describe-schedules-arguments"></a>

 `--name`   
+ Le nom d'un programme spécifique que vous souhaitez décrire

  Type : chaîne

  Obligatoire : non

### Exemple
<a name="describe-schedules-example"></a>

```
$ scheduler-cli describe-schedules --stack Scheduler

{
   "Schedules": [
      {
         "OverrideStatus": "running",
         "Type": "schedule",
         "Name": "Running",
         "UseMetrics": false
      },
      {
         "Timezone": "UTC",
         "Type": "schedule",
         "Periods": [
            "working-days@t2.micro",
            "weekends@t2.nano"
         ],
         "Name": "scale-up-down"
      },
      {
         "Timezone": "US/Pacific",
         "Type": "schedule",
         "Periods": [
            "office-hours"
         ],
         "Name": "seattle-office-hours"
      },
      {
         "OverrideStatus": "stopped",
         "Type": "schedule",
         "Name": "stopped",
         "UseMetrics": true
      }
   ]
}
```

## description-planification-utilisation
<a name="describe-schedule-usage"></a>

### Description
<a name="describe-schedule-usage-description"></a>

Répertorie toutes les périodes comprises dans un calendrier et calcule les heures de facturation pour les instances. Utilisez cette commande pour simuler un calendrier afin de calculer les économies potentielles et les périodes de fonctionnement après la création ou la mise à jour d'un calendrier.

### Arguments
<a name="describe-schedule-usage-arguments"></a>

 `--name`   
+ Le nom du calendrier applicable

  Type : Chaîne

  Obligatoire : oui

 `--startdate`   
+ Date de début de la période utilisée pour le calcul. La date par défaut est la date actuelle.

  Type : chaîne

  Obligatoire : non

 `--enddate`   
+ Date de fin de la période utilisée pour le calcul. La date par défaut est la date actuelle.

  Type : chaîne

  Obligatoire : non

### Exemple
<a name="describe-schedule-usage-example"></a>

```
$ scheduler-cli describe-schedule-usage --stack InstanceScheduler --name seattle-office-hours
{
   "Usage": {
      "2017-12-04": {
         "BillingHours": 8,
         "RunningPeriods": {
            "Office-hours": {
               "Begin": "12/04/17 09:00:00",
               "End": "12/04/17 17:00:00",
               "BillingHours": 8,
               "BillingSeconds": 28800
            }
         },
         "BillingSeconds": 28800
      }
   },
   "Schedule": "seattle-office-hours"
```

## période de mise à jour
<a name="update-period"></a>

### Description
<a name="update-period-description"></a>

Met à jour une période existante

### Arguments
<a name="update-period-arguments"></a>

La `update-period` commande prend en charge les mêmes arguments que la `create-period` commande. Pour plus d'informations sur les arguments, reportez-vous à la commande [ create period](#create-period).

**Important**  
Si vous ne spécifiez aucun argument, celui-ci sera supprimé du point.

## calendrier de mise à jour
<a name="update-schedule"></a>

### Description
<a name="update-schedule-description"></a>

Met à jour un calendrier existant

### Arguments
<a name="update-schedule-arguments"></a>

La `update-schedule` commande prend en charge les mêmes arguments que la `create-schedule` commande. Pour plus d'informations sur les arguments, reportez-vous à la commande [ create schedule](#create-schedule).

**Important**  
Si vous ne spécifiez aucun argument, celui-ci sera supprimé du calendrier.

## help
<a name="help"></a>

### Description
<a name="help-description"></a>

Affiche la liste des commandes et des arguments valides pour l'interface de ligne de commande du planificateur.

### Exemple
<a name="help-example"></a>

```
$ scheduler-cli --help
usage: scheduler-cli [-h] [--version]
                     {create-period,create-schedule,delete-period,delete-schedule,describe-periods,describe-schedule-usage,describe-schedules,update-period,update-schedule}
                     ...

optional arguments:
  -h, --help            show this help message and exit
  --version             show program's version number and exit

subcommands:
  Valid subcommands

  {create-period,create-schedule,delete-period,delete-schedule,describe-periods,describe-schedule-usage,describe-schedules,update-period,update-schedule}
                        Commands help
    create-period       Creates a period
    create-schedule     Creates a schedule
    delete-period       Deletes a period
    delete-schedule     Deletes a schedule
    describe-periods    Describes configured periods
    describe-schedule-usage
                        Calculates periods and billing hours in which
                        instances are running
    describe-schedules  Described configured schedules
    update-period       Updates a period
    update-schedule     Updates a schedule
```

Lorsqu'il est utilisé avec une commande spécifique, l'`--help`argument affiche des sous-commandes et des arguments valides pour cette commande.

### Exemple de commande spécifique
<a name="help-example-specific-command"></a>

```
$ scheduler-cli describe-schedules --help
usage: scheduler-cli describe-schedules [-h] [--name NAME] [--query QUERY]
                                        [--region REGION] --stack STACK

optional arguments:
  -h, --help         show this help message and exit
  --name NAME        Name of the schedule
  --query QUERY      JMESPath query to transform or filter the result
  --region REGION    Region in which the Instance Scheduler stack is
                        deployed
  --stack STACK, -s STACK
                     Name of the Instance Scheduler stack
```