wordpress单页工作室主题,网站建设优化推广安徽,深圳网站建设价格多少,二级域名建立网站aws部署sshElastic Beanstalk允许在AWS云中部署和管理应用程序#xff0c;而无需了解运行这些应用程序的基础架构。 使用Elastic Beanstalk#xff0c;您可以运行可处理HTTP请求的网站#xff0c;Web应用程序或Web API#xff0c;但也可以运行辅助应用程序以运行长任务。 … 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?regionus-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应用程序的默认端口。 下一个属性与数据源配置相关因为应用程序将连接到RDSPostgreSQL。 RDS实例的连接信息可通过运行容器可用的RDS_*环境属性提供给在Elastic Beanstalk上运行的应用程序。 要使用此属性请设置以下属性 quarkus.datasource.urljdbc: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_PACKAGEjava- 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 grwX /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.sourcefile:/dev/urandom /etc/alternatives/jre/lib/security/java.security ENV JAVA_OPTIONS -Djava.util.logging.managerorg.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_DBpetclinic -e POSTGRES_USERpetclinic -e POSTGRES_PASSWORDpetclinic -d postgres: 11.6 -alpine 运行传递RDS环境变量的应用程序并链接到数据库容器 docker run -i --rm -p 8080 : 5000 --link petclinic-db -e RDS_HOSTNAMEpetclinic-db -e RDS_PORT 5432 -e RDS_DB_NAMEpetclinic -e RDS_USERNAMEpetclinic -e RDS_PASSWORDpetclinic 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.htmlaws部署ssh