Comment économiser de l’argent sur Google Cloud Platform – Meilleure programmation

Online Coding Courses for Kids

L’étape suivante consiste à créer des fonctions cloud qui écoutent les événements de démarrage et d’arrêt à partir des rubriques Cloud Pub / Sub et démarrent et arrêtent les instances qui ont l’étiquette fournie dans les événements.

Clonons ce référentiel pour une fonction cloud NodeJS pré-écrite:

$ git clone https://github.com/bharatmicrosystems/gcloud-schedule-stop-start-instance.git
$ cd gcloud-schedule-stop-start-instance

Déployer le Start Cloud fonction

Créez le Stop Cloud fonction

Déclenchons directement la fonction cloud pour voir s’ils fonctionnent correctement.

Convertissez l’entrée JSON en un jeton base64, afin de pouvoir l’envoyer à la rubrique Cloud Pub / Sub.

$ echo '{"label":"env=dev"}' | base64
eyJsYWJlbCI6ImVudj1kZXYifQo=

Envoyez la chaîne base64 au stopInstancePubSub sujet:

$ gcloud functions call stopInstancePubSub 
--data '{"data":"eyJsYWJlbCI6ImVudj1kZXYifQo="}'
executionId: vrbf8d7o66d6
result: Successfully stopped instance(s)

Vérifiez l’état de l’instance pour voir si l’instance s’est terminée. Cela peut prendre quelques minutes:

$ gcloud compute instances describe instance-1 
--zone europe-west2-c | grep status
status: TERMINATED

Commençons maintenant l’instance en appelant le startInstancePubSub fonctionner avec le même message:

$ gcloud functions call startInstancePubSub 
--data '{"data":"eyJsYWJlbCI6ImVudj1kZXYifQo="}'
executionId: erfr8d6o66d6
result: Successfully started instance(s)

Vérifiez l’état de l’instance et elle devrait maintenant être en cours d’exécution.

$ gcloud compute instances describe instance-1 
--zone europe-west2-c | grep status
status: RUNNING

Terminons la chaîne en configurant les tâches du planificateur cloud.

Cela nécessite que l’API du moteur d’application soit activée et définie sur la même région que celle dans laquelle vous avez déployé vos fonctions cloud.

Créez le start emploi:

gcloud scheduler jobs create pubsub start-instances-on-sob 
--schedule '0 9 * * 1-5'
--topic start-instance-event
--message-body '{"label":"env=dev"}'
--time-zone 'Europe/London'

Créez le stop emploi:

gcloud scheduler jobs create pubsub stop-instances-on-cob 
--schedule '0 18 * * 1-5'
--topic stop-instance-event
--message-body '{"label":"env=dev"}'
--time-zone 'Europe/London'

Déclenchez la tâche manuellement pour voir si son travail de bout en bout.

Arrêtez d’abord l’instance:

$ gcloud scheduler jobs run stop-instances-on-cob

Vérifiez l’état de l’instance pour voir si l’instance s’est terminée. Cela peut prendre quelques minutes:

gcloud compute instances describe instance-1 
--zone europe-west2-c | grep status
status: TERMINATED

Maintenant, commençons la machine virtuelle en déclenchant manuellement le travail du planificateur:

gcloud scheduler jobs run start-instances-on-sob

Vérifiez l’état de l’instance pour voir si l’instance a démarré. Cela peut prendre quelques minutes:

$ gcloud compute instances describe instance-1 
--zone europe-west2-c | grep status
status: RUNNING

Toutes nos félicitations! Vous avez configuré deux tâches planifiées pour arrêter automatiquement vos instances de développement à la fermeture de l’entreprise et les démarrer au début de l’entreprise.

Cela pourrait vous aider à économiser beaucoup d’argent potentiellement perdu pendant les heures d’inactivité.

Close Menu