具有Appengine标准和CloudEndpoints的泽西岛

时间:2017-05-07 17:07:13

标签: google-app-engine google-cloud-endpoints

我们的appengine应用程序包含多个部署在标准和灵活环境中的微服务。由于我们同时使用flex和standard,因此我们选择了jerse来实现我们的后端服务,因为端点框架不适用于flex。我们无法将Jersey + Appengine Standard + Endpoint的这种组合工作。当我们使用gcloud云管理器部署swagger时,它不会与后端服务链接。

我找不到任何关于如何在不使用端点框架注释的情况下集成App引擎标准和端点的文档。

是否有人使用该组合实现了其余服务后端 泽西+应用程序引擎标准+云端点。是否可以在不使用端点框架注释的情况下集成云端点和appengine标准。

请注意:我们测试了Jersey + Flex + Endpoints并且它可以正常工作。

1 个答案:

答案 0 :(得分:0)

这未经过测试或记录,因此您正在玩新区域。它应该工作,我很乐意尝试帮助您调试它。要在Standard with Flex上使用Endpoints,您必须这样做:

  1. 包含此依赖关系:

    <dependency> <groupId>com.google.endpoints</groupId> <artifactId>endpoints-management-control-appengine-all</artifactId> <version>${endpoints.management.version}</version> </dependency>

  2. 将此配置添加到web.xml,然后在球衣前添加filter-mapping

    <filter> <filter-name>endpoints-api-controller</filter-name> <filter-class>com.google.api.control.extensions.appengine.GoogleAppEngineControlFilter</filter-class> <init-param> <param-name>endpoints.projectId</param-name> <param-value>${endpoints.project.id}</param-value> </init-param> <init-param> <param-name>endpoints.serviceName</param-name> <param-value>echo-api.endpoints.${endpoints.project.id}.cloud.goog</param-value> </init-param> </filter>

  3. 使用gcloud service-management deploy上传您的OpenAPI规范。
  4. appengine-web.xml中,添加一个环境变量定义:

    <env-variables> <env-var name="ENDPOINTS_SERVICE_NAME" value="echo-api.endpoints.${endpoints.project.id}.cloud.goog" /> </env-variables>