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!
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.
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>
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.
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)
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>
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: