[JAVA] Erstellen Sie eine Spring Boot-Webanwendung, die IBM Cloudant verwendet, und stellen Sie sie in Cloud Foundry bereit

Möglicherweise möchten Sie IBM Cloudant verwenden, aber Qiita enthält viele Node Red-Artikel. .. .. Es gibt nicht viele Artikel für Leute, die es mit Java verwenden möchten, daher werde ich es als Einführung veröffentlichen. Außerdem werde ich schreiben, bis es in der Cloud Foundry von IBM bereitgestellt wird.

dependency Spring boot 2.0.4 cloudant-client 2.12.0 okhttp3 3.11.0

Informationen zur Cloudant-Authentifizierung

Früher musste die Cloudant-Authentifizierung einen HMAC-Schlüssel ausstellen. 2018/08/21 Derzeit HMAC, VCAP_SERVICES, IAM-API-Schlüssel, lokale Authentifizierung oder Kontoendpunkt? Es scheint, dass die Authentifizierung durch verschiedene Authentifizierungen wie möglich möglich ist.

Jede Authentifizierungsmethode ist in Ordnung, aber dieses Mal verwenden wir VCAP_SERVICES, ohne uns über den Unterschied zwischen der lokalen Umgebung und der Cloud Foundry-Umgebung Gedanken zu machen.

Verbindung zwischen Cloud Foundry und Cludant, Übernahme von VCAP_SERVICE

Es wird beschrieben, wie Sie Cludant starten, eine Verbindung zu Cloud Foundry herstellen und eine Verbindung zu VCAP_SERVICES herstellen.

Erstellen Sie einen Cloudant

Erstellen Sie einen Cloudant. cloudant-0.png cloudant-2.png Greifen Sie nach Möglichkeit auf das Dashboard zu, erstellen Sie eine Datenbank und registrieren Sie die Daten. cloudant-3.png

Erstellen Sie eine Cloud-Gießerei und verbinden Sie Cloudant

Erstellen Sie eine Cloud-Gießerei. Ich werde den Dienst später neu schreiben, aber ich habe ihn vorerst mit Tomcat erstellt. cf-0.png cf-1.png

Verbinden Sie Cloudant nach der Erstellung.

cf-2.png cf-3.png

IAM wird vorerst automatisch erstellt. cf-4.png

Folgen Sie den Anweisungen, um die App neu zu starten. cf-5.png cf-6.png

Holen Sie sich VCAP_SERVICES

Wenn Sie auf Cloud Foundry zugreifen und die Registerkarte Laufzeit öffnen, wird VCAP_SERVEICE im Element Umgebungsvariablen erstellt. cf-7.png

Löschen Sie bei der Registrierung in application.yml oder application.properties die Zeilenumbrüche in JSON und schreiben Sie sie in eine Zeile!

Implementierung

Beschreiben Sie VCAP_SERVEICES in einer Zeile in der Eigenschaftendatei. [1](# Cloud-Foundry und Cludant-Verbindung vcap_service-Erwerb) Wenn Sie mit dieser Einstellung in der Cloud Foundry-Umgebung bereitstellen, werden die Eigenschaftsvariablen lokal verwendet und die Cloud Foundry-Variablen werden aufgrund der Priorität der Variablen in der Produktion verwendet, sodass Sie sich mit einem guten Gefühl entwickeln können.

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

}

Wenn Sie kein Dao zum Empfangen erstellt haben, ist es besser, es mit JsonObject zu empfangen. Es funktioniert einwandfrei, da die Cloudant-Bibliothek die Klasse standardmäßig verwendet.

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

Wenn Sie die App mit run etc. ausführen und curl werfen, wird sie wie folgt zurückgegeben.



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

Bereitstellung in der Cloud Foundry

Auf pom.xml setzen, um war auszugeben Erstellen Sie den Quellcode.

$ mvn -DskipTests=true package

In der erstellten Umgebung bereitstellen. Verwenden Sie den Befehl bx in der IBM Cloud CLI (https://console.bluemix.net/docs/cli/index.html).

#Melden Sie sich mit dem Befehl bx an.
$ bx login

#Wählen Sie die Umgebung für die Cloud-Gießerei aus.
$ bx target --cf

#Holen Sie sich eine Liste der Apps.
$ bx cf apps

Name Angeforderte Statusinstanz Speicher-Festplatten-URL
Cludant-Demo   started          1/1            768M       1G         Cludant-Demo.mybluemix.net

#Stellen Sie die App in Cloud Foundry bereit.
$ bx cf push Cludant-Demo -p ./target/cloudantdemo-0.0.1-SNAPSHOT.war -b https://github.com/cloudfoundry/java-buildpack.git
...
...
Status Startdatum und Uhrzeit Details zur CPU-Speicherplatte
#0 Lauf 2018-09-01T00:00:00Z   0.0%   1.1M of 768M   1.3M of 1G   

Cloud Foundry wird automatisch gestartet. Versuchen Sie daher, mit curl auf die URL zuzugreifen.

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

Lassen Sie es uns nach der Überprüfung stoppen.

$ bx cf stop Cludant-Demo

Bemerkungen

Der Quellcode ist unten. https://github.com/amanoese/cloudant-demo

Referenz

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

Recommended Posts

Erstellen Sie eine Spring Boot-Webanwendung, die IBM Cloudant verwendet, und stellen Sie sie in Cloud Foundry bereit
Erstellen Sie eine Web-App, die genau zum Lernen geeignet ist [Spring Boot + Thymeleaf + PostgreSQL]
Schritte zum Erstellen einer einfachen Kamel-App mit Apache Camel Spring Boot-Startern
Erstellen Sie mit Spring Boot eine einfache Such-App
Erstellen Sie einen Web-API-Server mit Spring Boot
Vom Aufbau einer AWS-Cloud-Umgebung bis zur Bereitstellung einer Spring Boot-App (für Anfänger)
So erstellen Sie ein Spring Boot-Projekt in IntelliJ
Eine Lösung, die es einfach macht, Vor- und Nachteile sowie Webtests einzugeben, um die Ergebnisse zu überprüfen
[Java] Stellen Sie die Spring Boot-Anwendung für den Azure App Service bereit
Erstellen Sie eine Hello World-Webanwendung mit Spring Framework + Jetty
So stellen Sie eine App bereit, die ein lokales Glas auf Heroku verweist
Stellen Sie sich die Spring Boot-App mit dem Jib-Maven-Plugin vor und starten Sie sie mit Docker
Erstellen Sie eine App mit Spring Boot 2
Erstellen Sie eine App mit Spring Boot
Versuchen Sie, eine Server-Client-App zu erstellen
Erstellen Sie mit Intellij ein Spring Boot-Projekt und beenden Sie es sofort nach dem Start
Erstellen Sie mit dem Befehl cURL + tar ein Spring Boot-App-Entwicklungsprojekt
Shell-Skript, das ein Docker-Image erstellt und an ECR weiterleitet
Java-Anfänger haben versucht, mit Spring Boot eine einfache Webanwendung zu erstellen
Automatische Bereitstellung von in Java entwickelten Webanwendungen mit Jenkins [Spring Boot App Edition]
WAR die WEB-Anwendung per Spring Boot und stellen Sie sie auf dem Tomcat-Server bereit
Server mit Spring Gradle ausführbar So erstellen Sie JAR und WAR
So erstellen Sie eine bequeme Methode, die Generika und eine funktionale Schnittstelle verwendet
Wenn ich die Internationalisierung mit Spring Boot unterstütze, bin ich süchtig danach, kein bestimmtes Gebietsschema zu übersetzen
Als ich in Spring Boot eine Sitzungsbereichs-Bean definierte, verhielt sie sich seltsam und musste angepasst werden.
Stellen Sie eine Java-Web-App für Heroku bereit
Fügen Sie Frühlingsstiefel und Gradle zur Sonnenfinsternis hinzu
Melden Sie sich bei Spring Boot-Webanwendungen auf der Microsoft ID-Plattform an
Suchen Sie einen geeigneten Wert für eine Methode und machen Sie sie zu einem ValueObject
[Spring-Beispielcode enthalten] So erstellen Sie ein Formular und erhalten mehrere Datensätze
[Spring Boot] Wenn Sie Spring Boot verwenden, war es praktisch, viele Dienstprogramme zu verwenden.
Ich habe versucht, eine Webanwendung voller Fehler mit Spring Boot zu klonen
So stellen Sie VSCode Remote Containers in einem Docker-Compose-Projekt bereit, das sowohl die API als auch die Front-App enthält