[PYTHON] Ein Skript, das den laufenden CloudFormation-Stapel wie ein Mannequin anzeigt

Wenn Sie mit CloudFormation verschiedene Versuche und Fehler durchführen, ist es schwierig, auf das Mannequin zu klicken, und Sie möchten einen Stapel mit CLI erstellen oder löschen. Es ist jedoch mühsam, den Befehl einzeln zu drücken, um den JSON zu lesen, und es ist auch mühsam, nur auf die Schaufensterpuppe zu schauen und die Ladetaste zu drücken, sodass ich ihn schnell erstellt habe. Mir gefällt, wie einfach es für Python ist, dies innerhalb von 30 Schritten zu schreiben ...

Da boto3 und tabulate nicht standardmäßig enthalten sind, sollte `` `pip install``` durchgeführt werden. Informationen zu boto3 finden Sie auf der Website 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)

Wenn ich es starte, ↓ Dieser Bildschirm ist ... キャプチャ.PNG

Das ist es! Wenn auf der Konsole ein neuer Datensatz angezeigt wird, fließt dieser, sodass die Anzeige umgekehrt wird.

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

Ein Skript, das den laufenden CloudFormation-Stapel wie ein Mannequin anzeigt
Ein Shell-Programm, das eine Fibonacci-Sequenz anzeigt
Was ist in dieser Variablen (wenn das Python-Skript ausgeführt wird)?
Erstellen eines Python-Skripts, das die e-Stat-API unterstützt (Version 2)
Ein Shell-Skript, das nur das Ergebnis der SQL-Ausführung per E-Mail sendet
Python-Skript, das den Inhalt zweier Verzeichnisse vergleicht
Ich habe ein Skript geschrieben, das das Bild in zwei Teile teilt
Ein Skript, das 0, 1 an die erste Python-Primzahl zurückgibt
Klasse, die die API von DMM trifft
Remote-Befehl, der sich wie ein lokaler Befehl verhält
Führen Sie den Python-Interpreter im Skript aus
Skript, das die angegebene URL morphologisch analysiert
[Python] Ein Programm, das die Partitur rundet
Erstellen Sie einen BOT, der die Anzahl der infizierten Personen in der neuen Corona anzeigt
Ich habe ein Skript geschrieben, um die Schluckuhr wiederzubeleben, die bald sterben wird