App Engine:重定向到最新版本

时间:2015-07-19 22:28:45

标签: php google-app-engine google-cloud-platform

我想将测试用户重定向到我的应用引擎应用的最新版本。我听说您可以使用网址latest-dot-project-id.appspot.com访问最新版本,但这只是默认版本。

有关如何重定向到最新版本的任何想法,可能有网址version-dot-project-id.appspot.com

我知道我可以访问API以获取最新版本,但我也无法通过服务帐户从中获取数据。

4 个答案:

答案 0 :(得分:2)

能够使用通用最新关键字(而不是确定该模块的哪个特定版本是最新版本)才能到达您需要的任何模块:

latest-dot-<modulename>-dot-<appname>.appspot.com

至少在python中它起作用......

latest-dot-project-id.appspot.com构造中,您没有指定模块名称,这可能是您只能点击默认模块的原因。

Routing via URL doc

中的更多详细信息

答案 1 :(得分:1)

AFAIK,应用程序无法以编程方式访问可用版本,因此可以了解最新的&#34;最新的&#34;版本将要求您提供的是保留名称。 test怎么样?使用version: test上传要测试的版本,让测试人员点击它。然后,当您想要使用经过测试的版本时,请使用&#34; real&#34;再次上传它。版本,然后使其成为默认值。假设你没有改变任何东西,第二次上传应该很快。

FWIW,许多人使用完全独立的应用程序名称作为测试版本,以便测试人员不会修改生产数据。

答案 2 :(得分:1)

如果测试用户不是主动必须返回反馈的预定义组,并且需要/期望的是在监视日志等的同时缓慢推出一段时间内的功能,则可以利用{{3功能。这可以在App Engine's traffic splitting

中的应用引擎的项目页面的版本页面上找到

可以根据cookie或IP地址拆分流量。其中任何一个都有一些可以很容易解决的怪癖。

  

您必须选择是按IP地址还是HTTP Cookie拆分流量。设置IP地址分割更容易,但cookie拆分更精确。

有关流量分割的更多信息cloud developer console

答案 3 :(得分:0)

结束使用Google App Engine Admin API获取最新版本。

            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL,"https://appengine.googleapis.com/v1beta4/apps/-----/modules/default/versions");
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            $headers = array();
            $headers[] = 'Authorization: Bearer '.json_decode($client->getAccessToken())->access_token;

            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

            $versions = json_decode(curl_exec ($ch))->versions;
            curl_close ($ch);

            $newest_version = "0";
            foreach($versions as $version){
                if(str_replace("-", "", $version->id) > str_replace("-", "", $newest_version)){
                    $newest_version = $version->id;
                }
            }