Starten / Stoppen von GCE über Python

python 3.7

requiremets.txt

google-api-python-client==1.7.9 
oauth2client==4.1.3

main.py

import time

from googleapiclient.discovery import build, Resource
from oauth2client.client import GoogleCredentials


def start(project, zone, instance_name):
    credentials: GoogleCredentials = GoogleCredentials.get_application_default()
    compute: Resource = build('compute', 'v1', credentials=credentials)
    instance: dict = compute.instances().get(project=project, zone=zone, instance=instance_name).execute()
    result: dict = compute.instances().start(project=project, zone=zone, instance=instance['name']).execute()
    # Wait Running
    while True:
        instance: dict = compute.instances().get(project=project, zone=zone, instance=instance_name).execute()
        print(instance["status"])
        # TERMINATED -> STAGING -> RUNNING
        if instance["status"] == "RUNNING":
            break
        time.sleep(5)


def stop(project, zone, instance_name):
    credentials: GoogleCredentials = GoogleCredentials.get_application_default()
    compute: Resource = build('compute', 'v1', credentials=credentials)
    instance: dict = compute.instances().get(project=project, zone=zone, instance=instance_name).execute()
    result: dict = compute.instances().stop(project=project, zone=zone, instance=instance['name']).execute()
    # Wait Terminated
    while True:
        instance: dict = compute.instances().get(project=project, zone=zone, instance=instance_name).execute()
        print(instance["status"])
        #  RUNNING -> STOPPING -> TERMINATED
        if instance["status"] == "TERMINATED":
            break
        time.sleep(5)


if __name__ == "__main__":
    project = 'xxx'
    zone = 'yyy'
    instance_name = "zzz"
    start(project, zone, instance_name)
    stop(project, zone, instance_name)

Recommended Posts

Starten / Stoppen von GCE über Python
Stoppen Sie Omxplayer vom Python-Code
Starten Sie Python
Starten Sie Python
Python-Schnellstart
SQL zu SQL
[Python] Beginne zu lernen
MeCab von Python
[Python] Starten Sie das Tagebuch ab heute Atcorder ABC058-B
Verwenden Sie thingspeak aus Python
Berühren Sie MySQL in Python 3
Bedienen Sie Filemaker von Python aus
Verwenden Sie fließend Python
Greifen Sie über Python auf Bitcoind zu
Änderungen von Python 3.0 zu Python 3.5
Änderungen von Python 2 zu Python 3.0
Python aus oder importieren
Verwenden Sie MySQL aus Python
Führen Sie Python aus Excel aus
Installieren Sie Python von der Quelle
Bedienen Sie Neutronen von Python!
Verwenden Sie MySQL aus Python
Betreiben Sie LXC von Python aus
Manipuliere Riak aus Python
Erzwinge Python aus Fortran
Verwenden Sie BigQuery aus Python.
Führen Sie den Befehl von Python aus
[Python] Von Stdin lesen
Verwenden Sie mecab-ipadic-neologd von Python
Stoppen Sie EC2 für eine bestimmte Zeit + beginnen Sie mit Lambda (Python)
Beginnen wir Python aus Excel. Ich benutze kein VBA.
Arbeiten mit Azure CosmosDB aus Python (Schnellstart)
[Python] Starten Sie eine Batchdatei aus Python und übergeben Sie Variablen.
Mit Python abflachen
Rufen Sie CPLEX von Python aus auf (DO cplex)
Deep Python hat von DEAP gelernt
Pseudo-Stop / Start-NAT-Gateway
Post von Python nach Slack
Grammatikfunktionen aus Python3.6 hinzugefügt
Flirte von PHP nach Python
Stellen Sie MeCab in Python 3 zur Verfügung
Informationen von tweet_id (Python)
OCR aus PDF in Python
Führen Sie das Illustrator-Skript von Python aus
Verwenden Sie MySQL von Anaconda (Python)
Ich möchte viele Prozesse von Python aus starten
Anaconda aktualisiert von 4.2.0 auf 4.3.0 (python3.5 aktualisiert auf python3.6)
Studie aus Python Hour4: Objektorientiert ②
Fragen Sie Athena von Lambda Python ab
Greifen Sie über Python auf Oracle DB zu
Studie aus Python Hour3: Funktionen
Starten Sie mit Python zu Selen
[Gimp] Starten Sie die Skripterstellung mit Python
3 Gründe für die Programmierung Anfänger sollten mit Python beginnen
Wechseln Sie von Python2.7 zu Python3.6 (centos7)
Stellen Sie von Python aus eine Verbindung zu SQLite her
Installieren Sie pyenv von Homebrew, installieren Sie Python von pyenv
Studie aus Python Hour4: Objektorientiert ①
Python-Namenskonvention (ab PEP8)
Mit Skype benachrichtigen Sie mit Skype von Python!
Verwenden Sie die e-Stat-API von Python