Démarrer / arrêter GCE à partir de 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

Démarrer / arrêter GCE à partir de python
Arrêtez Omxplayer à partir du code Python
Démarrer python
Commencez à utiliser Python
Démarrage rapide de Python
sql à sql
[Python] Commencez à étudier
MeCab de Python
[Python] Commencer le journal à partir d'aujourd'hui Atcorder ABC058-B
Utilisez Thingsspeak de Python
Touchez MySQL depuis Python 3
Exploitez Filemaker depuis Python
Utiliser fluentd de python
Accéder à bitcoind depuis python
Changements de Python 3.0 à Python 3.5
Changements de Python 2 à Python 3.0
Python depuis ou import
Utilisez MySQL depuis Python
Exécutez Python à partir d'Excel
Installer Python à partir de la source
Faites fonctionner le neutron de Python!
Utiliser MySQL depuis Python
Faire fonctionner LXC depuis Python
Manipuler riak depuis python
Forcer Python depuis Fortran
Utilisez BigQuery depuis Python.
Exécuter la commande depuis Python
[Python] Lire depuis Stdin
Utilisez mecab-ipadic-neologd de Python
Arrêter EC2 pendant l'heure spécifiée + démarrer avec Lambda (python)
Commençons Python à partir d'Excel. Je n'utilise pas VBA.
Utilisation d'Azure CosmosDB à partir de Python (démarrage rapide de l'exploration)
[Python] Démarrez un fichier de commandes à partir de Python et passez des variables.
Aplatir à l'aide du rendement Python de
Appeler CPLEX depuis Python (DO cplex)
Deep Python appris de DEAP
Passerelle NAT pseudo stop / start
Publier de Python vers Slack
Fonctionnalités de grammaire ajoutées à partir de Python3.6
Flirter de PHP à Python
Rendre MeCab disponible à partir de Python 3
Informations obtenues à partir de tweet_id (Python)
OCR à partir de PDF en Python
Exécutez le script illustrator à partir de python
Utiliser MySQL depuis Anaconda (python)
Je veux démarrer beaucoup de processus à partir de python
Anaconda mis à jour de 4.2.0 à 4.3.0 (python3.5 mis à jour vers python3.6)
Étude de Python Hour4: orientée objet ②
Interroger Athena depuis Lambda Python
Accéder à Oracle DB depuis Python
Étude de Python Hour3: Fonctions
Commencez à Selenium en utilisant python
[Gimp] Lancez la création de scripts avec Python
3 raisons pour lesquelles les débutants en programmation devraient commencer avec Python
Passer de python2.7 à python3.6 (centos7)
Connectez-vous à sqlite depuis python
Installez pyenv depuis Homebrew, installez Python depuis pyenv
Étude de Python Hour4: orientée objet ①
Convention de dénomination Python (à partir de PEP8)
Avec skype, notifiez avec skype de python!
Utilisez l'API e-Stat de Python