本地开发服务器 (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。
- --runtime_python_path=...
- Python 3 二进制文件的路径。如需在 dev_appserver上运行 Python 3 应用,请指定此标志。
- --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