Ich habe es geschrieben, aber es ist vorbei, also bin ich zu Artikel 5 übergegangen 16.03.2019
Quarkus Java Framework. Als Feature generiert es eine native Binärdatei und startet sehr schnell.
Scheint zu sein
GraalVM Installieren Sie GraalVM Set in .bash_profile etc.
export GRAALVM_HOME=[Installationsordner]/Contents/Home
Führen Sie den Befehl zur Projekterstellung gemäß der Formel von [Quarkus] aus (https://quarkus.io/ "Quarkus").
mvn io.quarkus:quarkus-maven-plugin:0.11.0:create \
-DprojectGroupId=org.acme \
-DprojectArtifactId=getting-started \
-DclassName="org.acme.quickstart.GreetingResource" \
-Dpath="/hello"
Erstellt gemäß der offiziellen Startanleitung Die Quelle ist standardmäßig enthalten, sodass sie so funktioniert, wie sie ist Offiziell heißt es, dass wir eine API oder ähnliches hinzufügen werden, also werden wir es so machen, wie es ist Es ist wichtig, die Befehle beim Bewegen zu verstehen
Lokaler Start
mvn compile quarkus:dev
Glas Kreation
mvn package
Glas starten
java -jar target/getting-started-1.0-SNAPSHOT-runner.jar
Native binäre Erstellung
mvn package -Pnative
Nativer binärer Start
./target/quarkus-quickstart-runner
Containererstellung
mvn package -Pnative -Dnative-image.docker-build=true
Docker bauen
docker build -f src/main/docker/Dockerfile -t quarkus .
run
docker run -i --rm -p 8080:8080 quarkus
Es funktionierte genauso für Local, Jar, Binary und Docker
$ curl http://localhost:8080/hello/greeting/quarkus
hello quarkus
Nachdem wir das Docker-Image erstellt haben, werden wir es in AWS ECS bereitstellen.
Erstellen Sie ein neues Repository mit dem Namen "quarkus"
Führen Sie den Befehl gemäß "Push-Befehl anzeigen" des erstellten Repositorys aus
aws ecr get-login --no-include-email --region ap-northeast-1
##Ein Anmeldebefehl wird ausgegeben, führen Sie ihn also so aus, wie er ist
##
docker tag quarkus:latest xxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/quarkus:latest
## push
docker push xxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/quarkus:latest
Erfolg, wenn auf ECR gedrückt
Erstellen von Aufgabendefinitionen aus ECS Erstellen Sie, indem Sie im Bild eingeben, was in ECR definiert ist Es mag gut sein, mit EXPOSE in der Docker-Datei zu spielen, aber es scheint, dass der Standard 8080 ist. Die Portzuordnung ist auf 80 80 80 eingestellt
Wählen Sie, um einen Cluster zu erstellen Erstellen Sie mit EC2, indem Sie den Instanztyp und die Anzahl der Instanzen frei auswählen Matsu bis EC2 aktiv wird
Wählen Sie auf der Registerkarte Aufgaben die Option Aufgabe ausführen aus
Warten Sie eine Weile und es wird RUNNING
Geben Sie die Instanz mit ssh ein und überprüfen Sie Bei 80 empfangen und 8080 zugeordnet
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
29c1fb97dc07 xxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/quarkus "./application -Dqua…" 9 seconds ago Up 8 seconds 0.0.0.0:80->8080/tcp ecs-quarkus-5-quarkus-e491bef2eefec1fcfc01
0187c98c619b amazon/amazon-ecs-agent:latest "/agent" About an hour ago Up About an hour ecs-agent
Vom Browser aus gesehen
http://[Öffentliches EC2-DNS]/hello/greeting/quarkus
Es wurde angezeigt!
Quarkus startete so schnell, dass es sich anfühlte, als würde es bereits laufen. Normalerweise benutze ich Java, aber ich habe versprochen, dass der Start lange dauern würde, also ist es ziemlich frisch. Die Erstellung von ECS hat zunächst einige Zeit in Anspruch genommen, aber ich bin froh, dass ich es geschafft habe Es war schwer zu verstehen, was ein Cluster oder eine Aufgabe war. .. .. Wenn Sie danach bei der Portzuordnung zuerst eine dynamische Zuordnung durchführen, wird der Port verschoben und funktioniert nicht mehr. .. .. Beim Aktualisieren
Ich frage mich, ob es sich anfühlt