Verwenden von Java mit AWS Lambda-Implementation-Check CloudWatch-Argumenten

Was du machen willst

Holen Sie sich die Argumente in CloudWatch mit Java auf Lambda registriert.

Hintergrundgeschichte

Die Lambda-Funktion, die EC2 startet und stoppt, wurde im vorherigen Artikel erstellt. CloudWatchEvents Cron wurde so konzipiert, dass es mehrmals gestartet wird, z. B. um 8:00, 9:00, 17:00 und 18:00 Uhr. Aber vergessen, welche Instanz zu welcher Zeit gestartet wurde, Ich musste die in CloudWatch Events registrierten Argumente einzeln überprüfen. Es war ein Ärger, also habe ich eine Funktion erstellt, um die Argumente zu erhalten. (Ich wollte vermeiden, Notizen zu machen, weil ich die registrierten Argumente mit den Notizen synchronisieren musste.)

Verwenden von Java mit AWS Lambda-Inhalten

Eclipse-Vorbereitung ・ Registrierung ausführen (eines Tages) ・ Implementierung-Stopp / Start EC2

Erstellen Sie vorerst eine Klasse

[Wie beim letzten Mal](https://qiita.com/t_ookubo/items/3b12bd985a65a73b4c59#%E3%81%A8%E3%82%8A%E3%81%82%E3%81%88%E3%81%9A % E3% 82% AF% E3% 83% A9% E3% 82% B9% E4% BD% 9C% E6% 88% 90)

Gehen Sie zu CloudWatch-Ereignisse

Erstellen Sie ein CloudWatchEvents-Objekt

//Erstellen Sie ein CloudWatchEvents-Objekt
AmazonCloudWatchEvents event = AmazonCloudWatchEventsClientBuilder.defaultClient();

Holen Sie sich die Regeln für CloudWatch-Ereignisse

ListRulesResult retRule = event.listRules(new ListRulesRequest());
for(Rule rule : retRule.getRules()) {
    // rule.getName()、rule.getDescription()
}

Dieser Teil der Konsole Wie der Methodenname andeutet, können Sie den Namen und die Beschreibung der Regel abrufen. image.png

Erhalten Sie Ziele aus den CloudWatch-Ereignisregeln

// get target information from rule
ListTargetsByRuleRequest req = new ListTargetsByRuleRequest().withRule(rule.getName());
ListTargetsByRuleResult retTarget = event.listTargetsByRule(req);
List<Target> cloudWatchTargets = retTarget.getTargets();

for (Target target : cloudWatchTargets) {
    //  do loop each cloud watch rule's target
}

Dieser Teil der Konsole image.png

Eingrenzen nach Funktionsnamen aus den Zielen aus den Regeln von CloudWatch-Ereignissen

target.getArn()

Jetzt wird jedes Ziel in der folgenden Form zurückgegeben arn:aws:lambda:region:xxxxxx:function:functionName

Also mit endWith eingrenzen

if (target.getArn().endsWith("Funktionsname, den Sie eingrenzen möchten")) {
    // 
}

Dieser Teil der Konsole (bei diesem Konsolenbildschirm gibt es überhaupt nur einen, es spielt also keine Rolle, ob Sie dies tun oder nicht.) image.png

Rufen Sie das Argument (die Eingabe) vom Ziel aus den Regeln von CloudWatch-Ereignissen ab

target.getInput()

Dieser Teil der Konsole image.png

//Da die Eingabe von cloudWatch in json beschrieben ist, konvertieren Sie von json nach bean
SomethingBean cloudWatchInput = Jackson.fromJsonString(target.getInput(), SomethingBean.class);

Formatieren Sie anschließend den Namen, die Beschreibung, die Argumente usw. der CloudWatchEvents-Regel, die Sie bisher erhalten haben, in das Formular, das Sie ausgeben möchten, und geben Sie es zur Fertigstellung an die Ausgabe zurück.

POM hat diesmal hinzugefügt

<dependency>
	<groupId>com.amazonaws</groupId>
	<artifactId>aws-java-sdk-cloudwatch</artifactId>
	<version>1.11.99</version>
	<scope>compile</scope>
</dependency>
<dependency>
	<groupId>com.amazonaws</groupId>
	<artifactId>aws-java-sdk-events</artifactId>
	<version>1.11.719</version>
	<scope>compile</scope>
</dependency>

Recommended Posts

Verwenden von Java mit AWS Lambda-Implementation-Check CloudWatch-Argumenten
Verwenden von Java mit AWS Lambda-Eclipse-Vorbereitung
Verwenden von Java mit AWS Lambda-Implementierung-Stop / Launch EC2
Verwenden von Mapper mit Java (Spring)
Überprüfen Sie Argumente mit ArgumentCaptor mit mockito
Versuchen Sie es mit Redis mit Java (jar)
HTML5-Entwicklung von Java mit TeaVM
Verwenden des Proxy-Dienstes mit Java-Crawling
Verwenden von JupyterLab + Java mit WSL unter Windows 10
AWS Lambda (Lambda) Teil 1 mit Java startet jetzt
Spieleentwicklung mit zwei Personen mit Java 2
Ich habe versucht, OpenCV mit Java + Tomcat zu verwenden
Spieleentwicklung mit zwei Personen mit Java 1
Versuchen Sie, Java-Bibliotheken mit AWS CodeArtifact zu verwalten
Spieleentwicklung mit zwei Personen mit Java 3
Versuchen Sie es mit der Wii-Fernbedienung in Java
Verwenden von Java mit AWS Lambda-Implementierungstipps - Abrufen des Instanznamens aus Reagion und Instanz-ID
Interagieren Sie mit der LINE Message API mit Lambda (Java)
Verwendung des Java-Frameworks mit AWS Lambda! ??
Geben Sie ClassPath an, wenn Sie jupyter + Java mit WSL verwenden
Erstellen Sie mit Gradle mit VSCode Java → Ausführen
Richten Sie signierte Cookies (für CloudFront) mit benutzerdefinierten Richtlinien mithilfe des AWS SDK für Java ein
Verwenden von Java 8 mit Bluemix (auf Liberty Runtime & DevOps Service)
Erste Schritte mit Java-Programmen mit Visual Studio Code
Senden Sie einen Job an AWS Batch mit Java (Eclipse)
So stellen Sie Java mit Serverless Framework für AWS Lambda bereit
Ich habe versucht, SQS mit AWS Java SDK zu betreiben
[Java] Entwicklung mit mehreren Dateien mittels Paket und Import
Installieren Sie Java mit Homebrew
Sortieren mit Java-Komparator
Wechseln Sie die Plätze mit Java
Installieren Sie Java mit Ansible
Verwenden Sie Pair mit OpenJDK
Bequemer Download mit JAVA
Schrottpraxis mit Java ②
Schalten Sie Java mit direnv
[Java] Argumente und Parameter
Schrottpraxis mit Java ①
Java-Download mit Ansible
Lass uns mit Java kratzen! !!
Erstellen Sie Java mit Wercker
Endian-Konvertierung mit JAVA
Veröffentlichen Sie regelmäßig Bild-Tweets auf Twitter mit AWS Lambda + Java
Protokollaggregation und -analyse (Arbeiten mit AWS Athena in Java)
Verwenden mehrerer Java-Versionen mit Brew auf Mac + jEnv
Registrieren Sie Ihr eigenes Docker-Image in ECR mithilfe der AWS CLI
Erstellen Sie einen SlackBot mit AWS Lambda & API Gateway in Java
PriorityQueue, wo ich Probleme mit der Dyxtra-Methode unter Verwendung einer benachbarten Liste (Java) hatte.
Socket-Kommunikation mit einem Webbrowser über Java und JavaScript ②
Versuchen Sie Spark Submit to EMR mit AWS SDK für Java
Socket-Kommunikation mit einem Webbrowser über Java und JavaScript ①
Ich habe versucht, die CameraX-Bibliothek mit Android Java Fragment zu verwenden
Hochladen / Herunterladen / Löschen von Daten in S3 mithilfe von Amazon S3 Client Builder mit AWS SDK für Java
AWS Elastic Beanstalk # 1 mit Java von Grund auf neu Erstellen einer Java-Webanwendungsumgebung mit EB CLI-