Soumettre une tâche à AWS Batch avec Java (Eclipse)

J'ai essayé d'envoyer un travail à AWS Batch avec Java (Eclipse), donc je vais le partager.

supposition

Les éléments suivants sont définis dans AWS Batch. -Nom de la définition du travail: exemple de définition du travail -Nom de la file d'attente: sample-job-queue -Nom de l'environnement informatique: sample-compute-environment

Nous faisons ce qui suit dans Eclipse: -Installez AWS Toolkit for Eclipse. -Définissez la clé d'accès et la clé d'accès secrète de l'utilisateur IAM dans AWS Toolkit for Eclipse. -Créer un projet Gradle.

Modifier build.gradle, installer le SDK

Ajoutez ʻaws-java-sdk-batch aux dépendances` et installez-le dans votre projet. (Faites un clic droit sur le projet et actualisez le projet Gradle pour démarrer le processus)

Ajouter aux dépendances


dependencies {
… Abréviation
    compile('com.amazonaws:aws-java-sdk-batch:1.11.683')
    // compile group: 'com.amazonaws', name: 'aws-java-sdk-batch', version: '1.11.683'    //Cette façon d'écrire est également OK
… Abréviation
}

Exemple de code Java

J'ai créé le code d'essai suivant en référence au document.

Exemple de code


package sample;

import java.util.HashMap;
import java.util.Map;

import com.amazonaws.regions.Regions;
import com.amazonaws.services.batch.AWSBatch;
import com.amazonaws.services.batch.AWSBatchClientBuilder;
import com.amazonaws.services.batch.model.SubmitJobRequest;
import com.amazonaws.services.batch.model.SubmitJobResult;

public class AwsBatchSample {

    public static void main(String[] args) {
        AwsBatchSample awsBatchSample = new AwsBatchSample();
        ab.awsBatchJobSend();
    }

    private void awsBatchJobSend() {
        AWSBatch client = null;
        try {
            client = AWSBatchClientBuilder.standard().withRegion(Regions.AP_NORTHEAST_1).build();
            Map<String,String> parameters = new HashMap<String, String>();
            parameters.put("param1", "JobParam1");
            //Commande de définition de tâche: échantillon d'écho-batch Ref::param1
            //Résultat de sortie dans le journal: échantillon-batch JobParam1
            SubmitJobRequest request = new SubmitJobRequest()
                                            .withJobName("sample-job-submit")
                                            .withJobQueue("sample-job-queue")
                                            .withJobDefinition("sample-job-definition")
                                            .withParameters(parameters)
                                            ;
            SubmitJobResult response = client.submitJob(request);
            System.out.println(response);
        } catch (Exception e) {
            System.out.println(e);
        } finally {
            if (client != null) {
                client.shutdown();
            }
        }
    }
}

Si la transmission du travail réussit, les informations suivantes seront renvoyées.


{JobName: sample-job-submit,JobId: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa}

Point de montage

Non spécifié dans l'exemple de documentation, Si vous ne spécifiez pas «.withRegion (Regions.AP_NORTHEAST_1)», l'erreur suivante est générée.

Journal des erreurs


20:31:11.636 [main] DEBUG com.amazonaws.AmazonWebServiceClient - Internal logging successfully configured to commons logger: true
20:31:11.998 [main] DEBUG com.amazonaws.monitoring.CsmConfigurationProviderChain - Unable to load configuration from com.amazonaws.monitoring.EnvironmentVariableCsmConfigurationProvider@17fc391b: Unable to load Client Side Monitoring configurations from environment variables!
20:31:11.998 [main] DEBUG com.amazonaws.monitoring.CsmConfigurationProviderChain - Unable to load configuration from com.amazonaws.monitoring.SystemPropertyCsmConfigurationProvider@2b30a42c: Unable to load Client Side Monitoring configurations from system properties variables!
20:31:11.998 [java-sdk-http-connection-reaper] DEBUG org.apache.http.impl.conn.PoolingHttpClientConnectionManager - Closing connections idle longer than 60000 MILLISECONDS
20:31:11.999 [main] DEBUG com.amazonaws.monitoring.CsmConfigurationProviderChain - Unable to load configuration from com.amazonaws.monitoring.ProfileCsmConfigurationProvider@43df23d3: Unable to load config file
20:31:12.025 [main] WARN com.amazonaws.internal.InstanceMetadataServiceResourceFetcher - Fail to retrieve token 
com.amazonaws.SdkClientException: Failed to connect to service endpoint: 
	at com.amazonaws.internal.EC2ResourceFetcher.doReadResource(EC2ResourceFetcher.java:100)
	at com.amazonaws.internal.InstanceMetadataServiceResourceFetcher.getToken(InstanceMetadataServiceResourceFetcher.java:91)
	at com.amazonaws.internal.InstanceMetadataServiceResourceFetcher.readResource(InstanceMetadataServiceResourceFetcher.java:69)
	at com.amazonaws.internal.EC2ResourceFetcher.readResource(EC2ResourceFetcher.java:62)
	at com.amazonaws.util.EC2MetadataUtils.getItems(EC2MetadataUtils.java:400)
	at com.amazonaws.util.EC2MetadataUtils.getData(EC2MetadataUtils.java:369)
	at com.amazonaws.util.EC2MetadataUtils.getData(EC2MetadataUtils.java:365)
	at com.amazonaws.util.EC2MetadataUtils.getEC2InstanceRegion(EC2MetadataUtils.java:280)
	at com.amazonaws.regions.InstanceMetadataRegionProvider.tryDetectRegion(InstanceMetadataRegionProvider.java:59)
	at com.amazonaws.regions.InstanceMetadataRegionProvider.getRegion(InstanceMetadataRegionProvider.java:50)
	at com.amazonaws.regions.AwsRegionProviderChain.getRegion(AwsRegionProviderChain.java:46)
	at com.amazonaws.client.builder.AwsClientBuilder.determineRegionFromRegionProvider(AwsClientBuilder.java:475)
	at com.amazonaws.client.builder.AwsClientBuilder.setRegion(AwsClientBuilder.java:458)
	at com.amazonaws.client.builder.AwsClientBuilder.configureMutableProperties(AwsClientBuilder.java:424)
	at com.amazonaws.client.builder.AwsSyncClientBuilder.build(AwsSyncClientBuilder.java:46)
	at sample.AwsBatchSample.awsBatchJobSend(AwsBatchSample.java:17)
	at sample.AwsBatchSample.main(AwsBatchSample.java:12)
Caused by: java.net.SocketException: Network is unreachable: connect
	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
	at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
	at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
	at sun.net.www.http.HttpClient.New(HttpClient.java:339)
	at sun.net.www.http.HttpClient.New(HttpClient.java:357)
	at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1202)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1181)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1032)
	at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:966)
	at com.amazonaws.internal.ConnectionUtils.connectToEndpoint(ConnectionUtils.java:52)
	at com.amazonaws.internal.EC2ResourceFetcher.doReadResource(EC2ResourceFetcher.java:80)
	... 16 common frames omitted
20:31:12.025 [main] WARN com.amazonaws.util.EC2MetadataUtils - Unable to retrieve the requested metadata (/latest/dynamic/instance-identity/document). Failed to connect to service endpoint: 
com.amazonaws.SdkClientException: Failed to connect to service endpoint: 
	at com.amazonaws.internal.EC2ResourceFetcher.doReadResource(EC2ResourceFetcher.java:100)
	at com.amazonaws.internal.InstanceMetadataServiceResourceFetcher.getToken(InstanceMetadataServiceResourceFetcher.java:91)
	at com.amazonaws.internal.InstanceMetadataServiceResourceFetcher.readResource(InstanceMetadataServiceResourceFetcher.java:69)
	at com.amazonaws.internal.EC2ResourceFetcher.readResource(EC2ResourceFetcher.java:62)
	at com.amazonaws.util.EC2MetadataUtils.getItems(EC2MetadataUtils.java:400)
	at com.amazonaws.util.EC2MetadataUtils.getData(EC2MetadataUtils.java:369)
	at com.amazonaws.util.EC2MetadataUtils.getData(EC2MetadataUtils.java:365)
	at com.amazonaws.util.EC2MetadataUtils.getEC2InstanceRegion(EC2MetadataUtils.java:280)
	at com.amazonaws.regions.InstanceMetadataRegionProvider.tryDetectRegion(InstanceMetadataRegionProvider.java:59)
	at com.amazonaws.regions.InstanceMetadataRegionProvider.getRegion(InstanceMetadataRegionProvider.java:50)
	at com.amazonaws.regions.AwsRegionProviderChain.getRegion(AwsRegionProviderChain.java:46)
	at com.amazonaws.client.builder.AwsClientBuilder.determineRegionFromRegionProvider(AwsClientBuilder.java:475)
	at com.amazonaws.client.builder.AwsClientBuilder.setRegion(AwsClientBuilder.java:458)
	at com.amazonaws.client.builder.AwsClientBuilder.configureMutableProperties(AwsClientBuilder.java:424)
	at com.amazonaws.client.builder.AwsSyncClientBuilder.build(AwsSyncClientBuilder.java:46)
	at sample.AwsBatchSample.awsBatchJobSend(AwsBatchSample.java:17)
	at sample.AwsBatchSample.main(AwsBatchSample.java:12)
Caused by: java.net.SocketException: Network is unreachable: connect
	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
	at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
	at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
	at sun.net.www.http.HttpClient.New(HttpClient.java:339)
	at sun.net.www.http.HttpClient.New(HttpClient.java:357)
	at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1202)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1181)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1032)
	at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:966)
	at com.amazonaws.internal.ConnectionUtils.connectToEndpoint(ConnectionUtils.java:52)
	at com.amazonaws.internal.EC2ResourceFetcher.doReadResource(EC2ResourceFetcher.java:80)
	... 16 common frames omitted
com.amazonaws.SdkClientException: Unable to find a region via the region provider chain. Must provide an explicit region in the builder or setup environment to supply a region.

En gros, c'est tout pour cette fois.

référence

https://docs.amazonaws.cn/AWSJavaSDK/latest/javadoc/com/amazonaws/services/batch/AWSBatchClient.html#submitJob-com.amazonaws.services.batch.model.SubmitJobRequest- https://docs.amazonaws.cn/AWSJavaSDK/latest/javadoc/com/amazonaws/services/batch/model/SubmitJobRequest.html https://github.com/aws/aws-sdk-java/issues/2062 https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-batch

Recommended Posts

Soumettre une tâche à AWS Batch avec Java (Eclipse)
Comment utiliser le framework Java avec AWS Lambda! ??
J'ai essayé de casser le bloc avec java (1)
Jusqu'à ce que vous exécutiez un programme Java avec le SDK AWS local sur Windows
Comment passer d'Eclipse Java à un fichier SQL
Comment déployer Java sur AWS Lambda avec Serverless Framework
[Java] Comment rompre une ligne avec StringBuilder
Exécuter un lot avec docker-compose avec Java batch
Java pour jouer avec Function
Connectez-vous à DB avec Java
Connectez-vous à MySQL 8 avec Java
Connectez-vous à Oracle avec Eclipse!
J'ai essayé de créer un environnement de développement java8 avec Chocolatey
Programme Java pour redimensionner une photo dans un carré avec des marges
J'ai essayé de moderniser une application Java EE avec OpenShift.
[Débutant] Essayez de créer un jeu RPG simple avec Java ①
Je veux faire une liste avec kotlin et java!
Je veux créer une fonction avec kotlin et java!
Créer un SlackBot avec AWS lambda et API Gateway en Java
Comment déployer une application kotlin (java) sur AWS Fargate
Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3
Essayez Spark Submit to EMR à l'aide du kit AWS SDK pour Java
Un mémo pour démarrer la programmation Java avec VS Code (version 2020-04)
Une histoire que j'ai eu du mal à défier le pro de la concurrence avec Java
Construire un projet Java avec Gradle
Java pour apprendre avec les ramen [Partie 1]
[Java] Points à noter avec Arrays.asList ()
Comment créer un conteneur Java
Comment implémenter un travail qui utilise l'API Java dans JobScheduler
Osez défier Kaggle avec Java (1)
Exécuter le fichier de commandes à partir de Java
J'ai essayé d'interagir avec Java
Connexion à une base de données avec Java (partie 1) Peut-être la méthode de base
Éléments à prendre en compte lors de l'exécution d'un travail spécifié à l'aide de Spring Batch
Créer un projet Java à l'aide d'Eclipse
Remplacer par une valeur selon la correspondance avec une expression régulière Java
Utilisation de Java avec AWS Lambda-Eclipse Préparation
Java, des tableaux pour débuter avec les débutants
java Eclips Comment déboguer javaScript
Comment créer un tableau Java
Une application Java autonome qui envoie des journaux à CloudWatch Logs avec slf4j / logback
Obtenir une liste de fichiers S3 avec ListObjectsV2Request (AWS SDK for Java)
[Mémo personnel] Comment interagir avec le générateur de nombres aléatoires en Java
[Java] Comment transformer un tableau à deux dimensions avec une instruction for étendue
Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3 (édition PowerMockito)
Je souhaite créer un SNS Web sombre avec Jakarta EE 8 avec Java 11
Hanashi a trébuché un peu sur le chemin en essayant d'étudier Java avec VScode
[Organiser les photos] [java] [windows] Déplacez les photos sélectionnées vers un dossier en 2 clics
[Java] Déployer une application Web créée avec Eclipse + Maven + Ontology avec Heroku
Je veux ForEach un tableau avec une expression Lambda en Java
Comment créer une application avec un mécanisme de plug-in [C # et Java]
Comment démarrer un conteneur Docker avec un volume monté dans un fichier de commandes
Comment créer un résumé de calendrier Java
Un mémorandum sur l'utilisation d'Eclipse
Utilisation de Java avec des arguments CloudWatch AWS Lambda-Implementation-Check
Comment compiler Java avec VsCode & Ant
[Java] Résumez comment comparer avec la méthode equals
Utilisation de Java avec AWS Lambda-Implementation-Stop / Launch EC2