[PYTHON] Un script qui affiche la pile CloudFormation en cours d'exécution comme un mannequin

Si vous faites divers essais et erreurs avec CloudFormation, il sera difficile de cliquer sur le mannequin, et vous voudrez créer une pile ou une pile de suppression avec la CLI. Cependant, il est gênant d'appuyer sur la commande une par une pour lire le JSON, et il est également gênant de simplement regarder le mannequin et d'appuyer sur le bouton de chargement, donc je l'ai créé rapidement. J'aime la facilité avec laquelle python peut écrire ceci en 30 étapes ...

Étant donné que boto3 et tabulate ne sont pas inclus en standard, pip install``` doit être effectué. Pour boto3, reportez-vous au site Around.

import os
import sys
import time
import boto3
import pprint
from tabulate import tabulate

args = sys.argv

client = boto3.client('cloudformation')

stackstatus = ""

while stackstatus != 'CREATE_COMPLETE':
  os.system('clear')

  response = client.describe_stacks(StackName=args[1])
  stacks = response['Stacks']
  stackstatus = stacks[0]['StackStatus']

  response = client.describe_stack_events(StackName=args[1])
  events = response['StackEvents']
  events.sort(key=lambda x:x['Timestamp'])

  rows = []
  for keys in events:
    cols = []
    cols.append(keys['Timestamp'])
    cols.append(keys['LogicalResourceId'])
    cols.append(keys['ResourceStatus'])
    rows.append(cols)

  headers = ['Timestamp', 'LogicalResourceId', 'Status']
  table = tabulate(rows, headers)
  print(table)

  if stackstatus != 'CREATE_COMPLETE':
    time.sleep(10)

Quand je l'exécute, ↓ Cet écran est ... キャプチャ.PNG

Ça y est ...! Sur la console, lorsqu'un nouvel enregistrement apparaît, il s'écoule, donc l'affichage est inversé.

Timestamp                         LogicalResourceId           Status
--------------------------------  --------------------------  ------------------
2020-05-10 10:47:57.928000+00:00  ApigwTest-issue01-Pipeline  CREATE_IN_PROGRESS
2020-05-10 10:48:02.269000+00:00  CODEBUILDLOGGROUP           CREATE_IN_PROGRESS
2020-05-10 10:48:02.699000+00:00  S3BUCKET                    CREATE_IN_PROGRESS
2020-05-10 10:48:02.789000+00:00  CODEBUILDLOGGROUP           CREATE_IN_PROGRESS
2020-05-10 10:48:03.178000+00:00  CODEBUILDLOGGROUP           CREATE_COMPLETE
2020-05-10 10:48:04.363000+00:00  S3BUCKET                    CREATE_IN_PROGRESS
2020-05-10 10:48:25.539000+00:00  S3BUCKET                    CREATE_COMPLETE
2020-05-10 10:48:27.772000+00:00  CODEBUILDIAMROLE            CREATE_IN_PROGRESS
2020-05-10 10:48:29.158000+00:00  CODEBUILDIAMROLE            CREATE_IN_PROGRESS
2020-05-10 10:48:45.746000+00:00  CODEBUILDIAMROLE            CREATE_COMPLETE
2020-05-10 10:48:49.115000+00:00  CODEBUILD                   CREATE_IN_PROGRESS
2020-05-10 10:48:51.445000+00:00  CODEBUILD                   CREATE_IN_PROGRESS
2020-05-10 10:48:52.222000+00:00  CODEBUILD                   CREATE_COMPLETE
2020-05-10 10:48:54.622000+00:00  PIPELINE                    CREATE_IN_PROGRESS
2020-05-10 10:48:55.360000+00:00  PIPELINE                    CREATE_IN_PROGRESS
2020-05-10 10:48:55.853000+00:00  PIPELINE                    CREATE_COMPLETE
2020-05-10 10:48:57.646000+00:00  ApigwTest-issue01-Pipeline  CREATE_COMPLETE

Recommended Posts

Un script qui affiche la pile CloudFormation en cours d'exécution comme un mannequin
Un programme shell qui affiche une séquence de Fibonacci
Que contient cette variable (lorsque le script Python est en cours d'exécution)
Création d'un script Python prenant en charge l'API e-Stat (ver.2)
Un script shell qui envoie simplement le résultat de l'exécution SQL
Script Python qui compare le contenu de deux répertoires
J'ai écrit un script qui divise l'image en deux
Un script qui renvoie 0, 1 attaché au premier Python prime
Classe qui atteint l'API de DMM
Commande à distance qui se comporte comme une commande locale
Exécuter l'interpréteur Python dans le script
Script qui analyse morphologiquement l'URL spécifiée
[Python] Un programme qui arrondit le score
Créez un BOT qui affiche le nombre de personnes infectées dans le nouveau Corona
J'ai écrit un script pour relancer la montre gulp qui mourra bientôt