§部署到 CloudFoundry / AppFog
§先决条件
注册免费的 Cloud Foundry 帐户,并使用以下命令将 Cloud Foundry 命令行工具 VMC 安装或更新到最新版本 (0.3.18 或更高版本)
gem install vmc
§构建您的应用程序
在 Play 提示符中键入 dist
命令来打包您的应用程序。
§部署您的应用程序
使用 VMC push 命令将创建的 zip 文件部署到 Cloud Foundry。如果您选择创建数据库服务,Cloud Foundry 将在应用程序启动时自动应用您的数据库演变。
yourapp$ vmc push --path=dist/yourapp-1.0.zip
Application Name: yourapp
Detected a Play Framework Application, is this correct? [Yn]:
Application Deployed URL [yourapp.cloudfoundry.com]:
Memory reservation (128M, 256M, 512M, 1G, 2G) [256M]:
How many instances? [1]:
Create services to bind to 'yourapp'? [yN]: y
1: mongodb
2: mysql
3: postgresql
4: rabbitmq
5: redis
What kind of service?: 3
Specify the name of the service [postgresql-38199]: your-db
Create another? [yN]:
Would you like to save this configuration? [yN]: y
Manifest written to manifest.yml.
Creating Application: OK
Creating Service [your-db]: OK
Binding Service [your-db]: OK
Uploading Application:
Checking for available resources: OK
Processing resources: OK
Packing application: OK
Uploading (186K): OK
Push Status: OK
Staging Application 'yourapp': OK
Starting Application 'yourapp': OK
§使用服务
§自动重新配置
Cloud Foundry 使用一种称为自动重新配置的机制,自动将您的 Play 应用程序连接到关系数据库服务。如果在 Play 配置中找到单个数据库配置(例如,default
),并且单个数据库服务实例绑定到应用程序,Cloud Foundry 将自动覆盖配置中的连接属性,以指向绑定到应用程序的 PostgreSQL 或 MySQL 服务。
这是一种快速启动简单应用程序的好方法。但是,您的应用程序很可能包含特定于您使用的数据库类型的 SQL 语句。在这种情况下,或者如果您的应用程序需要绑定到多个服务,您可能选择避免自动重新配置并显式指定服务连接属性。
§连接到 Cloud Foundry 服务
与往常一样,Cloud Foundry 通过 VCAP_SERVICES 环境变量以 JSON 格式向您的应用程序提供所有服务连接信息。但是,连接信息也以一系列属性的形式提供,您可以在 Play 配置中使用这些属性。以下是如何从 application.conf 文件中连接到名为 tasks-db 的 PostgreSQL 服务的示例。
db.default.driver=${?cloud.services.tasks-db.connection.driver}
db.default.url=${?cloud.services.tasks-db.connection.url}
db.default.password=${?cloud.services.tasks-db.connection.password}
db.default.username=${?cloud.services.tasks-db.connection.username}
此信息适用于所有类型的服务,包括 NoSQL 和消息传递服务。此外,如果只有一种类型的服务(例如 postgresql),您可以通过类型而不是名称来引用该服务,如下所示。
db.default.driver=${?cloud.services.postgresql.connection.driver}
db.default.url=${?cloud.services.postgresql.connection.url}
db.default.password=${?cloud.services.postgresql.connection.password}
db.default.username=${?cloud.services.postgresql.connection.username}
我们建议将这些属性保存在一个单独的文件中(例如 cloud.conf),然后只在构建 Cloud Foundry 分发时包含它们。您可以通过使用 -Dconfig.file 为 play dist 指定一个替代的配置文件。
§选择退出自动重新配置
如果您使用上面引用的属性,您将自动选择退出。要显式选择退出,请在应用程序的 conf 目录中包含一个名为“cloudfoundry.properties”的文件,并添加条目 autoconfig=false。
下一步: 部署到 Clever Cloud
发现此文档中的错误?此页面的源代码可以在 这里找到。在阅读 文档指南后,请随时贡献拉取请求。有疑问或建议要分享?转到 我们的社区论坛,与社区开始对话。