[JAVA] Créez une application Web Spring Boot qui utilise IBM Cloudant et déployez-la sur Cloud Foundry

Vous voudrez peut-être utiliser IBM Cloudant, mais Qiita propose de nombreux articles Node Red. .. .. Il n'y a pas beaucoup d'articles pour les personnes qui veulent l'utiliser avec java, je vais donc le poster en guise d'introduction. J'écrirai également jusqu'à ce qu'il soit déployé dans Cloud Foundry d'IBM.

dependency Spring boot 2.0.4 cloudant-client 2.12.0 okhttp3 3.11.0

À propos de l'authentification cloudant

L'authentification Cloudant devait auparavant émettre une clé HMAC, 2018/08/21 Actuellement HMAC, VCAP_SERVICES, clé API IAM, authentification locale ou point de terminaison de compte? Il semble que l'authentification soit possible par diverses authentifications telles que.

Toute méthode d'authentification convient, mais cette fois, nous utiliserons VCAP_SERVICES sans nous soucier de la différence entre l'environnement local et l'environnement Cloud Foundry.

Connexion entre Cloud Foundry et Cludant, acquisition de VCAP_SERVICE

Il décrit comment démarrer Cludant, se connecter à Cloud Foundry et se connecter à VCAP_SERVICES.

Créer un Cloudant

Créez un cloudant. cloudant-0.png cloudant-2.png Si possible, accédez au tableau de bord, créez une base de données et enregistrez les données. cloudant-3.png

Créez Cloud Foundry et connectez Cloudant

Créez une fonderie cloud. Je réécrirai le service plus tard, mais je l'ai créé avec Tomcat pour le moment. cf-0.png cf-1.png

Une fois créé, connectez Cloudant.

cf-2.png cf-3.png

IAM est créé automatiquement pour le moment. cf-4.png

Suivez les instructions pour redémarrer l'application. cf-5.png cf-6.png

Obtenez VCAP_SERVICES

Lorsque vous accédez à Cloud Foundry et ouvrez l'onglet Runtime, VCAP_SERVEICE est créé dans l'élément Variables d'environnement. cf-7.png

Lors de l'inscription dans application.yml ou application.properties, supprimez les sauts de ligne dans JSON et écrivez-le sur une ligne!

la mise en oeuvre

Décrivez VCAP_SERVEICES en une ligne dans le fichier de propriétés. [1](# acquisition de vcap_service de connexion cloud-fonderie et cludant) De plus, si vous déployez dans l'environnement Cloud Foundry avec ce paramètre, les variables de propriétés seront utilisées localement et les variables Cloud Foundry seront utilisées en production en raison de la priorité des variables, afin que vous puissiez développer avec une bonne sensation.

application.properties


VCAP_SERVICES={ YOUR_VCAP_SERVICES_JSON : YOUR_JSON_PROPERTIES }

CloudantConfiguration.java


@Configuration
public class CloudantConfiguration {

    @Value("${VCAP_SERVICES}")
    private String vcapService;

    @Bean
    public CloudantClient cloudantClient()  {
        return ClientBuilder.bluemix(vcapService).build();
    }

}

Si vous n'avez pas créé de Dao pour recevoir, il est préférable de le recevoir avec JsonObject. Cela fonctionne bien car la bibliothèque cloudant utilise la classe par défaut.

CloudantdemoApplication.java


@RestController
@SpringBootApplication
public class CloudantdemoApplication {

	@Autowired
	CloudantClient cloudantClient;

	public static void main(String[] args) {
		SpringApplication.run(CloudantdemoApplication.class, args);
	}

	@RequestMapping("/")
	public String index() {
		Database db = cloudantClient.database("users",false);
		QueryResult<JsonObject> result  = db.query(new QueryBuilder(eq("name","LLENN")).build(), JsonObject.class);
		return result.getDocs().toString();
	}
}

Si vous exécutez l'application avec run, etc. et lancez curl, elle sera renvoyée comme suit.



```bash
$ curl http://localhost:8080/
[{"_id":"18f6e5d603317e7a8189513270bc6e28","_rev":"1-487469bb37faf2e391ce4f8897b54e75","name":"LLENN"}]

Déployer sur Cloud Foundry

Défini pour afficher la guerre dans pom.xml Construisez le code source.

$ mvn -DskipTests=true package

Déployez dans l'environnement créé. Utilisez la commande bx dans l'interface de ligne de commande IBM Cloud (https://console.bluemix.net/docs/cli/index.html).

#Connectez-vous avec la commande bx.
$ bx login

#Sélectionnez l'environnement pour la fonderie de cloud.
$ bx target --cf

#Obtenez une liste d'applications.
$ bx cf apps

Nom URL du disque mémoire de l'instance d'état demandé
Cludant-Demo   started          1/1            768M       1G         Cludant-Demo.mybluemix.net

#Déployez l'application sur Cloud Foundry.
$ bx cf push Cludant-Demo -p ./target/cloudantdemo-0.0.1-SNAPSHOT.war -b https://github.com/cloudfoundry/java-buildpack.git
...
...
État Date et heure de début CPU Mémoire disque
#0 course 2018-09-01T00:00:00Z   0.0%   1.1M of 768M   1.3M of 1G   

Cloud Foundry démarrera automatiquement, alors essayez d'accéder à l'URL avec curl.

$ curl https://Cludant-Demo.mybluemix.net/
[{"_id":"18f6e5d603317e7a8189513270bc6e28","_rev":"1-487469bb37faf2e391ce4f8897b54e75","name":"LLENN"}]

Arrêtons-le après vérification.

$ bx cf stop Cludant-Demo

Remarques

Le code source est ci-dessous. https://github.com/amanoese/cloudant-demo

référence

https://console.bluemix.net/docs/cli/index.html https://github.com/cloudant/java-cloudant

Recommended Posts

Créez une application Web Spring Boot qui utilise IBM Cloudant et déployez-la sur Cloud Foundry
Créez une application Web parfaitement adaptée à l'apprentissage [Spring Boot + Thymeleaf + PostgreSQL]
Étapes pour créer une application chameau simple avec les démarreurs Apache Camel Spring Boot
Créez une application de recherche simple avec Spring Boot
Créer un serveur API Web avec Spring Boot
De la création d'un environnement cloud AWS au déploiement d'une application Spring Boot (pour les débutants)
Comment créer un projet Spring Boot dans IntelliJ
Une solution qui facilite la saisie des avantages et des tests Web pour vérifier les résultats
[Java] Déployer l'application Spring Boot sur Azure App Service
Créez une application Web Hello World avec Spring Framework + Jetty
Comment déployer une application qui référence un pot local à heroku
Image de l'application Spring Boot à l'aide de jib-maven-plugin et lancez-la avec Docker
Créez une application avec Spring Boot 2
Créez une application avec Spring Boot
Essayez de créer une application client serveur
Créez un projet Spring Boot avec intellij et quittez immédiatement après le lancement
Créez un projet de développement d'application Spring Boot avec la commande cURL + tar
Script Shell qui construit une image Docker et la pousse vers ECR
Un débutant Java a essayé de créer une application Web simple à l'aide de Spring Boot
Déployer automatiquement des applications Web développées en Java à l'aide de Jenkins [Spring Boot App Edition]
WAR l'application WEB par Spring Boot et la déployer sur le serveur Tomcat
Exécutable serveur avec Spring gradle Comment créer JAR et WAR
Comment créer une méthode pratique qui utilise des génériques et une interface fonctionnelle
Lorsque je soutiens l'internationalisation avec Spring Boot, je suis accro à ne pas traduire une langue spécifique
Lorsque j'ai défini un bean de portée de session dans Spring Boot, il se comportait étrangement et devait être ajusté.
Déployer des applications Web Java sur Heroku
Ajoutez une botte de printemps et un dégradé à éclipse
Connectez-vous aux applications Web Spring Boot sur la plate-forme Microsoft ID
Trouvez une valeur pratique pour avoir une méthode et en faire un ValueObject
[Exemple de code Spring inclus] Comment créer un formulaire et comment obtenir plusieurs enregistrements
[Spring Boot] Si vous utilisez Spring Boot, il était pratique d'utiliser de nombreux utilitaires.
J'ai essayé de cloner une application Web pleine de bugs avec Spring Boot
Comment déployer des conteneurs distants VSCode dans un projet docker-compose qui comprend à la fois l'API et l'application frontale