Bis das S3-Objekt mit Lambda @ java in Java eingefügt wird: Java [Teil 1]

Einführung

Dieser Artikel erinnert mich daran, was ich vor dem Einfügen des S3-Objekts in die EC2-Datenbank (SQL Server) mit Lambda @ java getan habe. Bitte weisen Sie auf andere Lösungen hin.

1: AWS Edition 2: Java-Teil [Teil 1] <Hauptteil 3: Java [Teil 2] 3.5: Java Edition [Fortsetzung] Es wird sein.

Das Folgende ist eine Fortsetzung der vorherigen, nachdem die EC2-Instanz erstellt wurde.

Vorbereitungen

Hinweis: Was ist Eclipse?

Eclipse ist eine der von IBM entwickelten integrierten Entwicklungsumgebungen (IDE). Es ist hochfunktional und dennoch Open Source und unterstützt mehrere Sprachen, einschließlich Java. Eclipse selbst ist in Java geschrieben.

Hinweis) Da es bereits für geschäftliche Zwecke installiert wurde, wird angenommen, dass die Version von Eclipse in diesem Artikel Oxygen.3a Release (4.7.3a) ist. Wenn Sie eine andere Version verwenden möchten, laden Sie diese bitte von https://www.eclipse.org/downloads/ herunter. Folgen Sie auch dem Assistenten, um die Eclipse-Installation entsprechend anzupassen.

Ein Projekt erstellen

Nachdem die Installation von Eclipse abgeschlossen ist, starten Sie sie und wählen Sie [Datei] -> [Neu] -> [Maven-Projekt], um ein Projekt zu erstellen.

01_eclipse_wizard.png

Wählen Sie [Weiter], um einen neuen Assistenten anzuzeigen. Geben Sie die "Artefakt-ID" und "Gruppen-ID" ein. Das folgende Bild zeigt die Details der Artefakt-ID und der Gruppen-ID.

Gruppen-ID: Geben Sie dem Projekt einen eindeutig identifizierbaren Namen. Artefakt-ID: Der Verpackungsname des Projekts. Ein Bild des Namens, der der JAR-Datei usw. gegeben wurde.

02_eclipse_wizard.png

Belassen Sie die Standardeinstellungen für die anderen Elemente und klicken Sie auf Fertig stellen, um das Projekt zu erstellen.

Unmittelbar nach dem Erstellen des Projekts denke ich, dass die Verzeichnisstruktur wie folgt ist. 03_directories.png Hinweis) Ändern Sie die Compiler-Konformitätsstufe auf 1,8.

Lassen Sie es uns jetzt bearbeiten.

Bearbeiten Sie pom.xml

Wenn Sie auf die Standard-Datei pom.xml doppelklicken, sollte sie wie folgt aussehen. Wenn jUnit nicht enthalten ist, ist die Beschreibung etwas kürzer.

pom.xml


<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>S3test</groupId>
  <artifactId>S3toLambda</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>S3toLambda</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

Fügen wir eine Beschreibung in den Abhängigkeitsblock ein, um AWS-bezogene Bibliotheken hinzuzufügen. Speichern Sie mit Strg + s.

Nach dem Bearbeiten ↓

pom.xml


<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>S3test</groupId>
  <artifactId>S3toLambda</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>S3toLambda</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    
    <!-- https://mvnrepository.com/artifact/com.amazonaws/aws-lambda-java-core -->
    <dependency>
      <groupId>com.amazonaws</groupId>
      <artifactId>aws-lambda-java-core</artifactId>
      <version>1.0.0</version>
    </dependency>
    
    <!-- https://mvnrepository.com/artifact/com.amazonaws/aws-lambda-java-events -->
    <dependency>
      <groupId>com.amazonaws</groupId>
      <artifactId>aws-lambda-java-events</artifactId>
      <version>1.0.0</version>
    </dependency>
  </dependencies>
    
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>2.3</version>
        <configuration>
          <createDependencyReducedPom>false</createDependencyReducedPom>
        </configuration>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

Dadurch werden mehrere AWS-bezogene Jars innerhalb der Maven-Abhängigkeit hinzugefügt, und Sie können mit ihnen arbeiten.

Als Nächstes bearbeiten wir die standardmäßig erstellte App.java-Klasse.

Holen Sie sich eine Liste der Objektnamen

Der Standardwert lautet wie folgt.

App.java


package S3test.S3toLambda;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
    }
}

Entfernen Sie unnötige Kommentare und benennen Sie die Klasse ReadS3Object. Setzen Sie den Methodennamen außerdem auf listennamen.

Nach dem Bearbeiten ↓

ReadS3Object.java


package S3test.S3toLambda;

import java.util.List;

import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.ListObjectsRequest;
import com.amazonaws.services.s3.model.ObjectListing;
import com.amazonaws.services.s3.model.S3ObjectSummary;

public class ReadS3Object
{
    public static void listingNames( String[] args )
    {
    	@SuppressWarnings("deprecation")
		AmazonS3 client = new AmazonS3Client(
    			new BasicAWSCredentials(
    	                "<accessKey>",
    	                "<secertKey>"));
    	
    	ListObjectsRequest request = new ListObjectsRequest()
    	        .withBucketName("<bucketName>");
    	ObjectListing objectList = client.listObjects(request);

    	//Liste der Objekte abrufen
    	List<S3ObjectSummary> objects = list.getObjectSummaries();
    	System.out.println("objectList:");
    	objects.forEach(object -> System.out.println(object.getKey()));
    }
}

Geben Sie für \ <accessKey > und \ <secretKey > den Zugriffsschlüssel und den geheimen Zugriffsschlüssel des in der AWS Edition erstellten IAM-Benutzers an. Geben Sie unter \ <BucketName > den Namen des von Ihnen erstellten S3-Buckets ein.

Erstellen Sie in diesem Zustand das Projekt einmal und erstellen Sie eine JAR-Datei.

Klicken Sie mit der rechten Maustaste auf den Projektnamen-> [Ausführen] -> [Maven Build], um ein Popup zum Bearbeiten der Ausführungskonfiguration anzuzeigen. Geben Sie im Zielteil "Paketschatten: Schatten" ein, um das Paket einschließlich der abhängigen Bibliotheken zu verpacken.

Bei der Ausführung wird der Projektname / target / \ <ProjectName > -0.0.1-SNAPSHOT.jar wird in erstellt, laden Sie es also auf Lambda hoch.

Ein Glas hochladen und eine Lambda-Funktion ausführen

Stellen Sie eine Verbindung zur Lambda-Verwaltungskonsole her. Klicken Sie oben auf dem Bildschirm auf [Funktion erstellen], um zum Erstellungsbildschirm zu gelangen.

Stellen Sie sicher, dass Von Grund auf neu erstellen ausgewählt ist, und füllen Sie das zentrale Formular aus. 04_Lambda.png Hier lautet der Funktionsname "Testfunktion" und die Laufzeit ist auf Java 8 eingestellt. Wählen Sie eine vorhandene Rolle aus und wählen Sie die Rolle aus, die Sie zuletzt erstellt haben (der Capture hat den Namen gegenüber dem letzten Mal geändert).

Wenn Sie [Funktion erstellen] ausführen, wird die Java 8-Ausführungsumgebung erstellt. Laden Sie also das JAR hier hoch.

05_Lambda.png Schreiben Sie im [Handler] des Pfeilteils "Paketname. Klassenname :: Name der Ausführungsmethode".

Wenn der Upload abgeschlossen ist, klicken Sie oben auf dem Bildschirm auf Speichern-> Testen.

Sie werden aufgefordert, Testdaten nur zum ersten Mal zu erstellen. Diesmal müssen Sie sich dessen jedoch nicht bewusst sein. Lassen Sie die Daten unverändert und geben Sie einen geeigneten Ereignisnamen ein. スクリーンショット 2018-09-13 11.45.30.png

Klicken Sie auf Erstellen, um die Lambda-Funktion auszuführen und das Ergebnis auszugeben. Wenn Sie den Namen der Testdatei sehen, die Sie in Ihren S3-Bucket hochgeladen haben, können Sie loslegen: 06_Lambda_execute.png

Beim nächsten Mal möchte ich ein Programm erstellen, das erkennt, dass eine Datei in den S3-Bucket hochgeladen wurde, und sie per E-Mail benachrichtigt, sowie ein Programm, das sie in die Datenbank einfügt.

Recommended Posts

Bis INSERT S3-Objekt in EC2 DB mit Lambda @ java: Java [Teil 2]
Bis das S3-Objekt mit Lambda @ java in Java eingefügt wird: Java [Teil 1]
Bis INSERT S3-Objekt in EC2 DB mit Lambda @ java: Java [Fortsetzung]
Fügen Sie die Wörterbuchdaten von Eijiro in eine Oracle-Tabelle ein
Fügen Sie Daten mithilfe der Yaml-Datei in die Datenbank ein
Bis INSERT S3-Objekt in EC2 DB mit Lambda @ java: Java [Teil 2]
Bis das S3-Objekt mit Lambda @ java in Java eingefügt wird: Java [Teil 1]
Versuchen Sie, viele Daten in Cosmos DB zu speichern
Richten Sie einen Db2-DB-Container ein und fügen Sie ein paar Daten ein
AWS Lambda (Lambda) Teil 1 mit Java startet jetzt
[Java] Batch Insert Inserts werden beim Umgang mit MySQL DB in Doma zu einem zusammengefasst.
Bis Sie eine Webanwendung mit Servlet / JSP erstellen (Teil 1)