Stoppen Sie EC2 für eine bestimmte Zeit + beginnen Sie mit Lambda (Python)

Lambda-Einstellung zum Anhalten

Wählen Sie Lambda

Wählen Sie eine leere Funktion in der Auswahl der Konstruktionszeichnung aus

Lambda1.png

Weiter ohne den Auslöser zu setzen

Lambda2.png

Stellen Sie die Funktion ein

Lambda3.png

Name:StopEC2 Description:stop EC2 Laufzeit: Python2.7

Im Code der Lambda-Funktion Beschrieb den Code zum Stoppen der Instanz.

python


import boto3

region = 'ap-northeast-1'
instances = ['X-XXXXXXXX']
def lambda_handler(event, context):
    ec2 = boto3.client('ec2', region_name=region)
    ec2.stop_instances(InstanceIds=instances)
    print 'stopped instances: ' + str(instances)

Stellen Sie Regionen und Instanzen ein. Das Obige spezifiziert die Region Tokio (ap-nordöstlich-1).

Die Erklärung von Boto3 lautet wie folgt AWS SDK For Python (Boto3) https://aws.amazon.com/jp/sdk-for-python/

Legen Sie Lambda-Funktionshandler und -Rollen fest

Wählen Sie, um eine neue Rolle zu erstellen. Legen Sie den Rollennamen und die Richtlinie fest.

Lambda4.png

IAM_Management1.png

Der Rollenname lautet lambda_start_stop_ec2. Die Richtlinie ermöglicht das Starten und Stoppen von EC2.

Richtliniendokument


{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents"
      ],
      "Resource": "arn:aws:logs:*:*:*"
    },
    {
        "Effect": "Allow",
        "Action": [
            "ec2:StartInstances",
            "ec2:StopInstances"
        ],
        "Resource": "*"
    }
  ]
}

Klicken Sie auf Weiter.

Drücken Sie nach der Bestätigung auf Funktion erstellen.

Lambda5.png

Damit ist der Stopp abgeschlossen.

Lambda-Einstellungen für den Start

Es ist zum Starten, aber im Grunde das gleiche wie zum Stoppen, Ändern Sie einfach "ec2.stop_instances" in der Funktion in "ec2.start_instances" und der Rest ist der gleiche. Wählen Sie die zuvor erstellte Rolle aus.

Lambda6.png

CloudWatch-Ereigniseinstellungen zum Stoppen

Wählen Sie CloudWatch

Wählen Sie Ereignis → Regel erstellen.

CloudWatch1.png

Regeln erstellen

Wählen Sie den Zeitplan und den Cron-Ausdruck aus, um die Ausführungszeit festzulegen. Die Zeitzone ist UTC und siehe unten, wie man cron schreibt. https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/tutorial-scheduled-events-schedule-expressions.html

Wählen Sie für das Ziel StopEC2 der zuvor erstellten Lambda-Funktion aus und führen Sie "Einstellungsdetails" aus.

CloudWatch2.png

Geben Sie Ihren Namen und Ihre Beschreibung ein und Sie sind fertig.

CloudWatch3.png

CloudWatch-Ereigniseinstellungen für den Start

Die gleiche Beschreibung wie stop kann verwendet werden, außer dass die Lambda-Funktion für die eingestellte Zeit in StartEC2 geändert wird.

CloudWatch-Ereignisprotokoll

Sie können dies im Protokoll des CloudWatch-Menüs unten überprüfen.

CloudWatch4.png

das ist alles.

Recommended Posts

Stoppen Sie EC2 für eine bestimmte Zeit + beginnen Sie mit Lambda (Python)
Versuchen Sie, Start / Stop für EC2-Instanzen mit AWS Lambda zu automatisieren
Verwenden Sie vorerst Logger mit Python
Führen Sie es vorerst mit CentOS7 + Apache2.4 + Python3.6 aus
Erstellen Sie in Docker eine Ebene für AWS Lambda Python
Betreiben Sie TwitterBot mit Lambda, Python
Starten / Stoppen von GCE über Python
Messung der Ausführungszeit mit Python With
Zeitsynchronisation (Windows) mit Python
[Python] Erstellen Sie eine Datums- und Zeitliste für einen bestimmten Zeitraum
Gesichtserkennung mit Lambda (Python) + Erkennung
Schließen Sie bestimmte Fälle mit Python unittest aus
Erste Schritte mit Python für PHPer-Klassen
Starten / stoppen Sie den Cloud-Server von Sakura regelmäßig mit AWS Lambda + CloudWatch-Ereignissen
Siehe Python zum ersten Mal
Benachrichtigen Sie HipChat mit AWS Lambda (Python)
Starten Sie Django zum ersten Mal
Verwenden Sie PostgreSQL mit Lambda (Python + psycopg2)
Erste Schritte mit Python für PHPer-Funktionen
Ich möchte es mit Python Lambda Django machen, aber ich werde aufhören
Versuchen Sie, Foldl und Foldr mit Python: Lambda zu machen. Auch Zeitmessung
[AWS] Verwenden von INI-Dateien mit Lambda [Python]
Einfache Schlüsselwortextraktion mit TermExtract für Python
INSERT in MySQL mit Python [Für Anfänger]
WEB-Scraping mit Python (für persönliche Notizen)
Manuelle SSH-Registrierung für Coreserver mit Python
Verwenden Sie DeepL mit Python (für die Artikelübersetzung)
Memo, um nach KPI mit Python zu fragen
Verstärken Sie Bilder für maschinelles Lernen mit Python
Suchen Sie nach Dateien mit der angegebenen Erweiterung
Tipps zum Umgang mit Binärdateien in Python
Suche nach Eigenschaften, um mit TensorFlow-Part 1 zu beginnen
Bearbeiten von DynamoDB-Daten mit Lambda (Node & Python)
Tipps zur Verwendung von Python + Caffe mit TSUBAME
[Shakyo] Begegnung mit Python zum maschinellen Lernen
Verarbeiten Sie mehrere Listen mit for in Python
MongoDB mit Python zum ersten Mal
Erste Schritte mit Python für PHPer-Super Basics
Debuggen Sie die MySQL-Verbindung mit Python MySQL.connector
[Python] Bilder mit OpenCV lesen (für Anfänger)
Stellen Sie mit AWS Lambda Python eine Verbindung zu s3 her
WebApi-Erstellung mit Python (CRUD-Erstellung) Für Anfänger
Vorbereitung zum Schaben mit Python [Schokoladengeschmack]
Versuchen Sie, Python: Lambda zuzuweisen oder zu wechseln
[Für Anfänger] Versuchen Sie Web Scraping mit Python
Starten Sie Python
Was ich getan habe, als ich mit Lambda Python im Zeitlimit steckte
Drehen Sie in Python mehrere Listen mit for-Anweisung gleichzeitig
So starten Sie Python (Flask) beim Start von EC2
Führen Sie das WEB-Scraping regelmäßig mit AWS-Lambda + Python + Cron aus
Kausales Denken und kausale Suche von Python (für Anfänger)
Erstellen Sie eine Python-Umgebung mit pyenv auf EC2 (Ubuntu)
Holen Sie sich ein Ticket für einen Themenpark mit Python
[Python3] Eine Geschichte, die bei der Zeitzonenkonvertierung steckt
[Übersetzung] Erste Schritte mit Rust für Python-Programmierer
Erstellen Sie mit Minette für Python einen LINE BOT
Es ist Zeit, die Generierung von SMILES mit RDKit zu beenden
Erstellen einer Anaconda-Umgebung für Python mit pyenv