如何在本地运行managed-vm-gae示例代码

时间:2015-12-15 01:54:04

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

我跟着this tutorial 在Google托管虚拟机中启动并运行Bigtable客户端。但有没有办法在本地运行?原因是在开发过程中远程部署代码是一件痛苦的事。

通常我可以使用dev_appserver.sh在本地运行GAE应用。但是当我运行它时,我收到了这个错误:

  

引起:java.lang.IllegalStateException:Jetty ALPN还没有   正确配置。

这意味着我们需要包含ALPN库吗?由于我们的代码库是在Java 7中,因此我使用了这个ALPN版本:7.1.3.v20150130

然后我再次尝试了这个:

dev_appserver.sh --jvm_flag=-Xbootclasspath/p:/Users/shouguoli/tmp/alpn-boot-7.1.3.v20150130.jar

仍然出现此错误:

  

引起:com.google.apphosting.api.ApiProxy $ CallNotFoundException:   找不到API包'urlfetch'或调用'Fetch()'。

如何让它在本地工作?

1 个答案:

答案 0 :(得分:1)

sample上周更新了。它基于java 8 compat运行时,这意味着您可以访问大多数App Engine API,包括用户,任务队列和数据存储。

有一个新的Netty TCNative模块使用Boring SSL。

要将其与样本中的pom.xml一起使用,请执行以下操作:

mvn clean -Pmac jetty:run -Dbigtable.projectID=<your-project> -Dbigtable.clusterID=<your-cluster> -Dbigtable.zone=<your-zone>

要在Windows上使用,请使用-Pwindows代替-Pmac。对于linux,省略配置文件-P,因为它是默认配置。

部署:

mvn clean gcloud:deploy -Dbigtable.projectID=<your-project> -Dbigtable.clusterID=<your-cluster> -Dbigtable.zone=<your-zone>

注意 - 建议在本地运行和远程运行之间进行清理,因为TCNative模块当前特定于运行代码的平台。

我们正在更新所有样本以使用TCNative,我们希望在2016年10月3日之前完成。