日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

aws部署ssh_将Quarkus应用程序部署到AWS Elastic Beanstalk

發布時間:2023/12/3 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 aws部署ssh_将Quarkus应用程序部署到AWS Elastic Beanstalk 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

aws部署ssh

Elastic Beanstalk允許在AWS云中部署和管理應用程序,而無需了解運行這些應用程序的基礎架構。

使用Elastic Beanstalk,您可以運行可處理HTTP請求的網站,Web應用程序或Web API,但也可以運行輔助應用程序以運行長任務。 Elastic Beanstalk支持多個預配置平臺,包括Go , .NET或Java (僅Java 8),還支持通用Docker平臺。

您只需使用AWS CLI , AWS EB CLI或Elastic Beanstack console上傳應用程序,然后Elastic Beanstalk即可自動處理其余部分。

在此博客文章中,您將學習如何在Elastic Beanstalk上使用基于Quarkus的應用程序啟動單容器Docker環境。

注意:此博客沒有描述從頭開始創建應用程序。 相反,它基于我為Quarkus入門博客文章創建的Quarkus Pet Clinic REST API應用程序 。 可以在Github上找到源代碼: https : //github.com/kolorobot/quarkus-petclinic-api

TL; DR:創建軟件包并上傳到Elastic Beanstalk

在Elastic Beanstalk控制臺中創建新應用程序

如果您還不是AWS客戶,則需要創建一個AWS賬戶。 通過注冊,您可以訪問Elastic Beanstalk和其他所需的AWS服務。

  • 使用以下鏈接打開Elastic Beanstalk控制臺: https ://us-west-2.console.aws.amazon.com/elasticbeanstalk/home?region=us-west-2#/gettingStarted?applicationName =Pet診所API
  • 對于Platform選擇Docker
  • 對于Application Code選擇Sample Application
  • 選擇Configure more options
    • 在列表中找到Database ,然后單擊Modify
  • 點擊Create app

Elastic Beanstalk將為您創建具有所有必需資源(包括RDS)的示例應用程序。

創建應用程序后,您將可以看到該應用程序的鏈接。

注意:以上步驟基于官方文檔: https : //docs.aws.amazon.com/elasticbeanstalk/latest/dg/GettingStarted.CreateApp.html

Preapare應用程序包

  • 克隆存儲庫
git clone https: //github.com/kolorobot/quarkus-petclinic-api
  • 導航到應用程序目錄并執行:
./mvnw clean package assembly:single -Dquarkus. package .uber-jar= true

上面的命令創建具有以下內容的軟件包:

$ unzip -l target/quarkus-petclinic-api- 1.0 . 1 -eb.zip Archive: target/quarkus-petclinic-api- 1.0 . 1 -eb.zip Length Date Time Name --------- ---------- ----- ---- 0 03 - 15 - 2020 13 : 35 config/ 2059 03 - 15 - 2020 13 : 34 Dockerfile 369 03 - 15 - 2020 13 : 34 config/application.properties 38604205 03 - 15 - 2020 13 : 35 quarkus-petclinic-api- 1.0 . 1 -runner.jar --------- ------- 38606633 4 files

將應用程序上傳到Elastic Beanstalk

  • 使用Elastic Beanstalk控制臺上傳軟件包
    • 導航到https://console.aws.amazon.com/elasticbeanstalk

而已。 在下一段中,您將學習如何使用Maven準備軟件包。

循序漸進:為Elastic Beanstalk配置應用程序

運行時配置

讓我們從特定于Elastic Beanstalk環境的應用程序配置開始。

Quarkus提供了幾種在運行時覆蓋屬性的選項。 我決定將這種方法與配置文件一起放在config/application.properties文件中。 Quarkus將自動讀取該文件,并且該文件中的所有屬性都優先于默認值。

創建src/main/resources/application-eb.properties文件,并將quarkus.http.port設置為5000因為這是Elastic Beanstalk Web應用程序的默認端口。

下一個屬性與數據源配置相關,因為應用程序將連接到RDS(PostgreSQL)。 RDS實例的連接信息可通過運行容器可用的RDS_*環境屬性提供給在Elastic Beanstalk上運行的應用程序。 要使用此屬性,請設置以下屬性:

quarkus.datasource.url=jdbc:postgresql: //${RDS_HOSTNAME}:${RDS_PORT}/${RDS_DB_NAME} quarkus.datasource.username=${RDS_USERNAME} quarkus.datasource.password=${RDS_PASSWORD}

閱讀有關將應用程序連接到RDS的更多信息: https : //docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.managing.db.html

Dockerfile

Elastic Beanstalk使用Dockerfile來構建和運行映像。 該文件必須位于應用程序目錄的root目錄中。 我使用了原始的src/main/docker/Dockerfile.jvm并進行了以下調整:

  • 將config/application.properties復制到容器
  • 暴露端口5000而不是8080

完整的src/main/docker/Dockerfile.eb :

FROM registry.access.redhat.com/ubi8/ubi-minimal: 8.1 ARG JAVA_PACKAGE=java- 11 -openjdk-headless ARG RUN_JAVA_VERSION= 1.3 . 5 ENV LANG= 'en_US.UTF-8' LANGUAGE= 'en_US:en' # Install java and the run-java script # Also set up permissions for user ` 1001 ` RUN microdnf install openssl curl ca-certificates ${JAVA_PACKAGE} \ && microdnf update \ && microdnf clean all \ && mkdir /deployments \ && chown 1001 /deployments \ && chmod "g+rwX" /deployments \ && chown 1001 :root /deployments \ && curl https: //repo1.maven.org/maven2/io/fabric8/run-java-sh/${RUN_JAVA_VERSION}/run-java-sh-${RUN_JAVA_VERSION}-sh.sh -o /deployments/run-java.sh \ && chown 1001 /deployments/run-java.sh \ && chmod 540 /deployments/run-java.sh \ && echo "securerandom.source=file:/dev/urandom" >> /etc/alternatives/jre/lib/security/java.security ENV JAVA_OPTIONS= "-Djava.util.logging.manager=org.jboss.logmanager.LogManager" COPY *-runner.jar /deployments/app.jar COPY config /deployments/config EXPOSE 5000 USER 1001 ENTRYPOINT [ "/deployments/run-java.sh" ]

使用Maven創建應用程序包

到目前為止,已創建以下兩個文件:

  • src/main/resources/application-eb.properties具有特定于Elastic Beanstalk環境的屬性
  • src/main/docker/Dockerfile.eb具有用于Elastic Beanstack環境的容器配置。

要完成配置和配置程序包組裝,我們將使用“ Copy Rename Maven Plugin和“ Maven Assembly Plugin 。

準備組裝文件

修改pom.xml并添加復制和重命名將存儲在最終應用程序包zip文件中的文件的目標:

< build > < plugin > < groupId >com.coderplus.maven.plugins</ groupId > < artifactId >copy-rename-maven-plugin</ artifactId > < version >1.0</ version > < executions > < execution > < id >copy-file</ id > < phase >package</ phase > < goals > < goal >copy</ goal > </ goals > < configuration > < fileSets > < fileSet > < sourceFile >src/main/resources/application-eb.properties</ sourceFile > < destinationFile >target/eb/application.properties</ destinationFile > </ fileSet > < fileSet > < sourceFile >src/main/docker/Dockerfile.eb</ sourceFile > < destinationFile >target/eb/Dockerfile</ destinationFile > </ fileSet > </ fileSets > </ configuration > </ execution > </ executions > </ plugin > </ build >

copy-file目標將在package階段運行,并將先前創建的文件(名稱已調整)復制到target/eb 。

配置程序集插件

Maven Assembly Plugin將用于創建應用程序包。 將以下配置添加到pom.xml :

< build > < plugin > < artifactId >maven-assembly-plugin</ artifactId > < version >3.2.0</ version > < configuration > < descriptors > < descriptor >src/assembly/eb.xml</ descriptor > </ descriptors > </ configuration > </ plugin > </ build >

現在,創建src/assembly/eb.xml指示所述組件插件來創建一個描述符zip含有Dockerfile , config/application.properties和Quarkus uber-jar 。 所有這三個文件將位于存檔的root中:

< assembly > < id >eb</ id > < formats > < format >zip</ format > </ formats > < includeBaseDirectory >false</ includeBaseDirectory > < files > < file > < source >target/eb/Dockerfile</ source > < outputDirectory ></ outputDirectory > < filtered >false</ filtered > </ file > < file > < source >target/eb/application.properties</ source > < outputDirectory >config</ outputDirectory > < filtered >false</ filtered > </ file > < file > < source >target/${project.build.finalName}-runner.jar</ source > < outputDirectory ></ outputDirectory > < filtered >false</ filtered > </ file > </ files > </ assembly >

這樣就完成了配置。 現在,您可以通過運行以下命令創建包(程序集):

經過以上所有更改,我們可以創建程序包:

./mvnw clean package assembly:single -Dquarkus. package .uber-jar= true

在本地測試軟件包

要在本地測試包,請運行:

unzip target/quarkus-petclinic-api- 1.0 . 1 -eb.zip -d target/eb-dist && cd target/eb-dist docker build -t quarkus/petclinic-api-jvm-eb .

在運行容器之前,請啟動數據庫:

docker run -it --name petclinic-db -p 5432 : 5432 -e POSTGRES_DB=petclinic -e POSTGRES_USER=petclinic -e POSTGRES_PASSWORD=petclinic -d postgres: 11.6 -alpine

運行傳遞RDS環境變量的應用程序并鏈接到數據庫容器:

docker run -i --rm -p 8080 : 5000 --link petclinic-db -e RDS_HOSTNAME=petclinic-db -e RDS_PORT= 5432 -e RDS_DB_NAME=petclinic -e RDS_USERNAME=petclinic -e RDS_PASSWORD=petclinic quarkus/petclinic-api-jvm-eb

在瀏覽器中打開http://localhost:8080 ,您應該看到主頁。

源代碼

可以在Github上找到本文的源代碼: https : //github.com/kolorobot/quarkus-petclinic-api

參考資料

  • https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/single-container-docker.html
  • https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.managing.db.html
  • https://quarkus.io/guides/config#package-and-run-the-application

也可以看看

  • Quarkus入門
  • 使用Testcontainers和PostgreSQL進行Quarkus測試

翻譯自: https://www.javacodegeeks.com/2020/03/deploy-quarkus-application-to-aws-elastic-beanstalk.html

aws部署ssh

總結

以上是生活随笔為你收集整理的aws部署ssh_将Quarkus应用程序部署到AWS Elastic Beanstalk的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。