本地开发服务器 (dev_appserver.py
) 属于 gcloud CLI 的 App Engine 组件。本主题提供了有关 dev_appserver.py
用法的高级信息。
如需详细了解本地测试,请参阅使用本地开发服务器。
设置本地开发服务器工具
示例 dev_appserver.py
命令可能如下所示:
python2 DEVAPPSERVER_ROOT/google_appengine/dev_appserver.py OPTION yaml_path FILES
替换以下内容:
- 将 DEVAPPSERVER_ROOT 替换为在其中解压缩
devapp_server.py
的归档版本的根目录的路径。如需详细了解如何下载和使用dev_appserver.py
的归档版本,请参阅使用本地开发服务器。 - 将 OPTION 替换为本地开发服务器支持的标志。
- FILES 为位置参数
yaml_path
指定一个或多个app.yaml
文件,每个服务对应一个文件。
如需查看完整的选项列表,请运行以下命令:
DEVAPPSERVER_ROOT/google_appengine/dev_appserver.py -h
常用选项
最常用的选项如下所示:
--admin_host=ADMIN_HOST
- 本地开发服务器的管理控制台应绑定的主机名(默认值:localhost)。
--admin_port=ADMIN_PORT
- 本地开发服务器的管理控制台应绑定的端口(默认值:8000)。
--enable_sendmail=yes|no
- 使用本地计算机上安装的 Sendmail 发送电子邮件。
--enable_task_running=yes|no
- 让开发服务器运行推送任务。默认值为
yes
。如果您指定no
,服务器将不会运行推送任务。 --help
- 输出一条帮助消息,然后退出。
--host=...
- 用于服务器的主机地址。您可能需要设置该参数,才能够从网络上的其他计算机访问开发服务器。地址为
0.0.0.0
时,既可使用 localhost 访问,也可使用 IP 或主机名访问。默认值为localhost
。 --log_level=...
- 将日志消息写入控制台时的最低日志记录级别;将输出指定日志记录级别或更高级别的消息。可能的值包括
debug
、info
、warning
、error
和critical
。 --port=...
- 用于服务器的端口号。默认值为
8080
。如果出于服务等目的而启动了多个服务器,则会为它们分配后续端口,如8081
、8082
。 --logs_path=...
- 默认情况下,本地开发服务器的日志仅存储在内存中。在运行本地开发服务器时指定此选项可将日志存储到文件中,从而确保日志不会在服务器重启过程中丢失。
您必须指定 SQLite 数据库文件的目录路径和名称。如果文件尚不存在,则将使用指定的名称创建 SQLite 数据库文件。例如:
--logs_path=/home/logs/boglogs.db
--require_indexes=yes|no
- 停用在
index.yaml
文件中自动生成条目。当应用创建的查询要求在该文件中定义其索引,而未找到索引定义时,会引发异常,这与在 App Engine 上运行时发生的情况类似。默认值为no
。 --smtp_host=...
- 用于发送电子邮件的 SMTP 服务器的主机名。
--smtp_port=...
- 用于发送电子邮件的 SMTP 服务器的端口号。
--smtp_user=...
- SMTP 服务器上用于发送电子邮件的用户名。
--smtp_password=...
- SMTP 服务器上用于发送电子邮件的密码。
--storage_path=...
- 将存储所有本地文件(例如 Datastore、Blobstore、Cloud Storage 文件和日志)的路径,除非被
--datastore_path
、--blobstore_path
或--logs_path
替换。 --support_datastore_emulator=yes|no
- 使用 Cloud Datastore 模拟器(测试版)执行本地数据存储区模拟。
--datastore_emulator_port=...
- 用于 Cloud Datastore 模拟器(测试版)的端口号。
--env_var=...
- 用户为本地运行时进程定义的环境变量。每个
env_var
都采用“键=值”的格式,并且您可以定义多个环境变量。除了app.yaml
中的env_variables
之外,此标志还允许为本地进程设置额外的环境变量。例如:--env_var KEY_1=val1 --env_var KEY_2=val2
--go_debugging=yes|no
- 设置为 yes,以便能够通过 delve 或 gdb 启用调试。这将构建应用二进制文件,其中包含调试所需的所有符号。您可以按正常方式挂接到正在运行的进程,例如:
sudo dlv attach <pid>
。