webentwicklung-frage-antwort-db.com.de

das Paket com.amazonaws.services.lambda.runtime ist in AWS Java sdk 1.10.2 nicht vorhanden

Ich versuche das Java-Codebeispiel in der Erste Schritte (Authoring von AWS Lambda-Code in Java) , aber als com.amazonaws.services.lambda.runtime pacakge scheint es zu fehlen

Hier ist der Beispielcode:

package example;

import com.amazonaws.services.lambda.runtime.Context;      //package does not exist error
import com.amazonaws.services.lambda.runtime.LambdaLogger; // package does not exist error
import com.amazonaws.services.s3.AmazonS3;       // import works (not needed, I've put them in for testing import)
import com.amazonaws.services.s3.model.S3Object; // import works (not needed, I've put them in for testing import)

public class Hello {
    public String myHandler(int myCount, Context context) {
        LambdaLogger logger = context.getLogger();
        logger.log("received : " + myCount);
        return String.valueOf(myCount);
    }
}

Der gleiche Fehler tritt sowohl in Netbeans als auch in der Befehlszeile (Angabe des aws sdk thorugh -cp-Arguments) aus den ersten beiden Importen des Codes auf:

das Paket com.amazonaws.services.lambda.runtime ist nicht vorhanden

Beachten Sie, dass der Import anderer Pakete aus dem SDK gut funktioniert, und zwar für den dritten und vierten Import aus dem obigen Code (den S3-Importen, die ich gerade zum Testen recherchiere).

Ich verwende Version 1.10.2 (aws-Java-sdk-1.10.2.Zip) des AWS Java SDK, die von http://sdk-for-Java.amazonwebservices.com/latest/ heruntergeladen wird. aws-Java-sdk.Zip

Alle Richtungen/Vorschläge würden sehr geschätzt. Vielen Dank!

21
Arthur

Beide Klassen befinden sich im Verzeichnis aws-lambda-Java-core jar, das separat vom AWS SDK vertrieben wird. Sie können es von Maven Central unter dem Link oben herunterladen, wenn Sie Maven/Gradle/ein anderes Build-System nicht verwenden, das nativ von Maven Central abrufen kann.

35
David Murray
  1. Fügen Sie AWS-Plugins in Eclipse vom Marktplatz hinzu, und erstellen Sie ein Lambda-Projekt.
  2. Verwenden Sie die folgenden drei Abhängigkeiten, um ein Fettglas herzustellen.

    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-Java-sdk-lambda</artifactId>
        <version>1.11.76</version>
    </dependency>
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-lambda-Java-core</artifactId>
        <version>1.1.0</version>
    </dependency> 
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-lambda-Java-events</artifactId>
        <version>1.3.0</version>
    </dependency>
    
3
kartik

Nach einiger Suche fand ich com.amazonaws.services.lambda.runtime.Context in http://mvnrepository.com/artifact/com.amazonaws/aws-lambda-Java-core/1.1.0 . (Ich ziehe es vor, search.maven.org vorzuziehen. Mvnrepository.com bringt mein Problem durch die Bereitstellung der sbt-Buildlinie auf den Punkt.)

Die Klasse ist nicht in aws-Java-sdk-lambda und auch nicht in aws-Java-sdk-core oder aws-Java-sdk.

2
dwalend

Arthur,

Sie versuchen, Java-Codebeispiel aus AWS Lambda für ein anderes Produkt Amazon AWS SDK For Java zu verwenden.

Bitte lesen Sie die AWS Lambda-Begrüßungsseite, und nach einigen Schritten (Konto erstellen und andere) können Sie das Paket mit Ihren Klassen herunterladen (Kontext, LambdaLogger)

1
Baatr

Ich habe com.amazonaws.services.lambda.runtime.LambdaLogger gefunden in: https://mvnrepository.com/artifact/com.amazonaws/aws-lambda-Java-log4j/1.0.0

<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-lambda-Java-log4j</artifactId>
    <version>1.0.0</version>
</dependency>
0
ljcundiff

Für diejenigen, die sbt verwenden:

libraryDependencies ++= Seq(
  "com.amazonaws" % "aws-Java-sdk" % "1.11.241",
  "com.amazonaws" % "aws-lambda-Java-core" % "1.2.0"
)

Überprüfen Sie die Links auf die neueste Version:

0
Yuchen Zhong