为 Python 3 运行时准备配置文件
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
在 App Engine 标准环境的 Python 3 运行时中运行应用之前,可能需要更改该 App Engine 使用的一些配置文件:
正在更新“app.yaml
”
您的 app.yaml
配置文件中某些字段的行为已修改。移除所有不再受支持的字段并更新其他字段,如下表所述。
字段 |
更改类型 |
说明 |
app_engine_apis |
仅适用于 Python 3 |
如果要访问 Python 3 版旧版捆绑服务,则必须设置为 true 。 |
api_version
application_readable
builtins |
不再支持 |
不适用于 Python 3 运行时。 |
threadsafe |
不再支持 |
假定所有应用的线程安全。如果您的应用不具备线程安全性,请指定一个 entrypoint ,为每个工作器配置 1 个线程。
例如,使用 F4 实例类时:
entrypoint: gunicorn -b :$PORT -w 8 --threads 1 main:app
请参阅入口点最佳做法,了解每个实例类的推荐工作器数量。 |
库 |
不再支持 |
使用 requirements.txt 文件声明依赖项并安装客户端库。
|
处理程序:登录 |
在 app_engine_apis 为 true 时支持 |
如果未使用 Python 3 版旧版捆绑服务,请使用 Identity and Access Management (IAM) 执行用户管理。 |
处理程序:脚本 |
已修改 |
在 Python 2 运行时中,您使用 script 字段将传入请求路由到应用的脚本。在 Python 3 运行时中,您需要使用具有应用内路由的 Web 框架(例如 Flask 或 Django),而不是使用 script 字段。
如需将 app.yaml 文件迁移到 Python 3 运行时,请执行以下操作之一,具体取决于该文件是否包含静态处理程序以及脚本处理程序:
- 如果您的
app.yaml 文件包含静态处理程序,请执行以下操作之一,以确保将动态内容请求路由到应用的脚本:
- 移除所有
script 字段。然后添加 entrypoint 字段以启动运行应用的 Web 服务器。与任何静态调度程序均不匹配的请求将定向到您在 entrypoint 字段中指定的 Web 服务器。Web 服务器和应用的 Web 框架负责将请求路由到正确的脚本。
- 将所有
script 字段的值替换为 auto 。App Engine 将在 Web 服务器中自动运行应用(假设应用符合一些要求),与脚本处理程序匹配的所有请求都将定向到该 Web 服务器。Web 服务器和应用的 Web 框架负责将请求路由到正确的脚本。
- 如果您的
app.yaml 文件不包含静态处理程序,请移除所有 script 字段。发送到应用的所有请求都将定向到应用的 Web 服务器,并且应用的框架会将请求路由到正确的脚本。您可以选择添加 entrypoint 字段来自定义默认启动行为。
如果您的 app.yaml 同时具有这两种类型的处理程序,您仍然可以移除标记为 auto 的所有脚本处理程序,并留下静态处理程序以及需要使用其他指令的 auto 处理程序,例如以下示例中的管理员专用处理程序。
静态文件处理保持不变。
|
如果使用任何已弃用的字段,App Engine 会在您部署应用时返回错误。
您可以使用以下示例比较 app.yaml
文件之间的差异:
Python 2
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /
script: home.app
- url: /index\.html
script: home.app
- url: /stylesheets
static_dir: stylesheets
- url: /(.*\.(gif|png|jpg))$
static_files: static/\1
upload: static/.*\.(gif|png|jpg)$
- url: /admin/.*
script: admin.app
login: admin
- url: /.*
script: not_found.app
Python 3
runtime: python312
app_engine_apis: true
handlers:
- url: /stylesheets
static_dir: stylesheets
- url: /(.*\.(gif|png|jpg))$
static_files: static/\1
upload: static/.*\.(gif|png|jpg)$
- url: /admin/.*
script: auto
login: admin
移除 appengine_config.py
App Engine 标准环境中的 Python 2 运行时使用 appengine_config.py
文件。
此文件在 Python 3 运行时中会被忽略。相反,Python 3 运行时会使用标准 requirements.txt
文件来 安装依赖项,包括使用原生代码的依赖项。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-09-11。
[{
"type": "thumb-down",
"id": "hardToUnderstand",
"label":"Hard to understand"
},{
"type": "thumb-down",
"id": "incorrectInformationOrSampleCode",
"label":"Incorrect information or sample code"
},{
"type": "thumb-down",
"id": "missingTheInformationSamplesINeed",
"label":"Missing the information/samples I need"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻译问题"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"易于理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"解决了我的问题"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{"lastModified": "\u6700\u540e\u66f4\u65b0\u65f6\u95f4 (UTC)\uff1a2024-09-11\u3002"}
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["翻译问题","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2024-09-11。"]]