当我们使用std app引擎环境的端点时 在app.yaml中跟随行,定义应用程序的起点
- url: /_ah/spi/.*
script: main.api
但是,随着灵活引擎使用“gunicorn”#39;定义下面给出的起始点
entrypoint: gunicorn -b :$PORT main:app
如何将我的云端点的main.py
定义为灵活环境中谷歌应用引擎的起点?
EDIT1:
在this link下面的建议之后
我将app.yaml更新为:
runtime: python
env: flex
entrypoint: gunicorn -b :$PORT main:api
service: s2
endpoints_api_service:
name: echo-api.endpoints.my-project-id.cloud.goog
config_id: my-config-id
但现在在部署时,在我的main.py文件中出现导入错误
ImportError: No module named endpoints
甚至将导入声明更改为
from google.appengine.ext import endpoints
无效
EDIT2:
我将端点库添加到项目lib文件夹中,并添加了 appengine_config.py 文件来处理这个库,但它仍然在import endpoints
处断开。
我的目录结构请参考下面的图片
答案 0 :(得分:1)
来自Quickstart for Endpoints on App Engine Flexible Environment的摘要(假设下面是python,如果使用其他语言选择相应的示例):
要配置端点,请将
YOUR-PROJECT-ID
替换为您自己的端点openapi.yaml
配置文件的主机字段中的项目ID:swagger: "2.0" info: description: "A simple Google Cloud Endpoints API example." title: "Endpoints Example" version: "1.0.0" host: "echo-api.endpoints.YOUR-PROJECT-ID.cloud.goog"
要部署Open API规范,请运行以下
gcloud
命令:gcloud service-management deploy openapi.yaml
这将创建一个名为的新的Cloud Endpoints服务
echo-api.endpoints.YOUR-PROJECT_ID.cloud.goog
如果不存在, 然后将该服务的配置更新到您的Open API 说明书该命令返回几行信息,包括一行 类似于以下内容:
Service Configuration [2016-04-27R2] uploaded for service "echo-api.endpoints.[YOUR-PROJECT-ID].cloud.goog"
记下服务名称和服务配置ID 用于下一步。
app.yaml
:编辑
app.yaml
以反映端点配置ID并添加 以下是在App Engine上启用端点API管理功能 Flex并添加服务名称和配置ID:beta_settings: use_endpoints_api_management: true endpoints_api_service: name: echo-api.endpoints.[YOUR-PROJECT-ID].cloud.goog config_id: YOUR-CONFIG-ID # 2016-04-27R2 in this example.
保存
app.yaml
文件。您需要重复这些步骤 更改Open API时更新app.yaml
文件 说明书
答案 1 :(得分:1)
对于Endpoints Frameworks v1.0,您必须将端点模块复制到app目录中以在Flex上部署它。如果您使用的是Cloud SDK,则它位于/path/to/google-cloud-sdk/platform/google_appengine/lib/endpoints-1.0
。
答案 2 :(得分:0)
您引用的文档/链接是Google App Engine提供的可扩展服务代理,它使用可以使用普通http请求调用的OpenAPI规范。可以使用App Engine提供的Access Control来限制端点服务的入口。整个过程只适用于App Engine灵活环境。
可扩展服务代理需要与我们的传统端点配置不同。
对于App Engine标准环境用户,可以使用新版本的端点(Endpoint Framework 2.0)。目前,App Engine Flexible Environment不支持端点框架。如果您想使用现有代码,建议您使用migration to Endpoint Frameworks 2.0。