web-dev-qa-db-fra.com

le package com.amazonaws.services.lambda.runtime n'existe pas dans AWS Java sdk 1.10.2

J'essaie l'exemple de code Java dans la page Mise en route (Création de code AWS Lambda en Java) , mais je suis bloqué sous le nom com.amazonaws.services.lambda.runtime pacakge semble être manquant.

Voici l exemple de code:

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);
    }
}

Je rencontre la même erreur à la fois dans Netbeans et via la ligne de commande (spécifiant l'argument aws sdk thorugh -cp) des deux premières importations du code:

le package com.amazonaws.services.lambda.runtime n'existe pas

Notez que l'importation d'autres packages à partir du SDK fonctionne correctement, comme le sont les troisième et quatrième importations à partir du code ci-dessus (les importations s3 que j'ai simplement mises à l'essai).

J'utilise la version 1.10.2 (aws-Java-sdk-1.10.2.Zip) du kit de développement logiciel AWS Java SDK, téléchargée à partir de http://sdk-for-Java.amazonwebservices.com/latest/ aws-Java-sdk.Zip

Toutes les directions/suggestions seraient très appréciées. Merci!

21
Arthur

Ces deux classes sont contenues dans le fichier jar aws-lambda-Java-core , qui est distribué séparément du kit AWS SDK. Vous pouvez le télécharger à partir du lien ci-dessus à partir de maven central si vous n’utilisez pas maven/gradle/un autre système de compilation pouvant tirer nativement de maven central.

35
David Murray
  1. Ajoutez des plugins AWS dans Eclipse depuis la place du marché, faites du projet aws lambda.
  2. Utilisez ci-dessous trois dépendances pour faire un pot de graisse.

    <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

Après quelques recherches, j'ai trouvé com.amazonaws.services.lambda.runtime.Context dans http://mvnrepository.com/artifact/com.amazonaws/aws-lambda-Java-core/1.1.0 . (Je préfère ce site à search.maven.org. Mvnrepository.com va droit au cœur de mon problème en fournissant la ligne de construction sbt.)

La classe ne figure pas dans aws-Java-sdk-lambda, pas plus que dans aws-Java-sdk-core ou aws-Java-sdk.

2
dwalend

Arthur

Vous essayez d'utiliser un exemple de code Java de AWS Lambda pour un autre produit Amazon AWS SDK For Java .

Veuillez lire la page d'accueil AWS Lambda et peut-être qu'après les étapes pour (créer un compte et autres), vous pouvez télécharger le package avec vos classes (Context, LambdaLogger)

1
Baatr

J'ai trouvé com.amazonaws.services.lambda.runtime.LambdaLogger dans: 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

Pour ceux qui utilisent sbt:

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

Vérifiez les liens pour la dernière version:

0
Yuchen Zhong