问题 在Google App Engine上验证/更改应用程序区域


我正在创建一个GAE应用程序。

当我将GAE PHP应用程序设置为授权应用程序来访问我的 云SQL实例,我收到以下警告:

App Engine区域必须与Cloud SQL实例区域相同!

如何验证或更改GAE应用程序的区域?

谢谢


1189
2017-09-10 13:17


起源

您是否设置了应用程序或Cloud SQL在欧盟工作? - Ryan
我在亚洲地区设置了我的云sql,但我忘记了我的应用程序。我在哪里可以找到我申请的地区? @Bruyere - fbysaputri
Dupe(更新背景): stackoverflow.com/questions/30150414/... - Lee
有关: stackoverflow.com/questions/25589246/... - Lee


答案:


您可以使用 gcloud app describe --project <projectId> 命令获取位置。 设置后,您无法更改应用的区域。 请参考这里

例如:

$ gcloud app describe --project myapp-1337
authDomain: gmail.com
codeBucket: staging.myapp-1337.appspot.com
defaultBucket: myapp-1337.appspot.com
defaultHostname: myapp-1337.appspot.com
featureSettings:
  splitHealthChecks: true
gcrDomain: us.gcr.io
id: myapp-1337
locationId: us-central
name: apps/myapp-1337
servingStatus: SERVING

7
2017-12-20 08:35





您可以在[1]中查看申请的位置。

关于更改地区,请参阅[2]了解更多信息。

[1] - https://appengine.google.com/
[2] - 更改GAE申请位置

更新:现在可以从新的开发人员控制台创建EU应用程序,并且不需要白名单/高级状态。看起来“位置”选项卡只会在GAE控制台中显示帐户是否已列入白名单/ Premier。找到应用程序位置的方法仍然在旧的GAE控制台 - >从列表中单击应用程序转到仪表板 - >如果您在app_id =之后看到链接中的e~,您的应用程序在EU中,否则如果您看看你的应用程序在美国。

另一种方法是使用Ilya Zakreuski建议的gcloud命令。


4
2017-09-10 15:22



当我看到appengine.google.com。我只有4个列表,“应用程序”,“标题”,“存储方案”和“状态”。 “位置”列是否适用于所有人? - fbysaputri
并且为了改变我的地区,如果我在亚洲地区设置我的云sql设置,如果我也将我的应用程序更改为亚洲地区也是不可能的?我能做的最好的方法是什么?更改并创建一个新的云sql实例,并与我的应用程序区域相同?对不起,我只是个新手,非常感谢你的帮助。 - fbysaputri
您的应用位于美国。亚洲地区不适用于App Engine,仅适用于GCE和CloudSQL。如果您想在欧洲拥有应用程序,则必须填写表格并等到您的电子邮件列入白名单。之后,您可以在创建新应用程序时选择区域(欧盟或美国)。 - Nikita Uchaev
对不起这是我的错。仅当您能够创建EU应用程序时,才会显示位置列。 - Nikita Uchaev
@Lee EU应用程序创建现在正常运行。但是,只有当帐户被列入白名单/ Premier时,位置选项卡才会显示在GAE控制台中。找到应用程序位置的方法仍然在旧的GAE控制台 - >从列表中单击应用程序以转到仪表板 - >如果您看到 e~在链接之后 app_id=,你的应用程序在欧盟,否则,如果你看到 s~ 你的应用程序在美国。 - Nikita Uchaev


您可以从运行时环境获取AppId:

Java的:

ApiProxy.getCurrentEnvironment().getAppId()

或Python:

os.environ['APPLICATION_ID']

@Ilya和@Nikita提到的前缀仍然适用于:

前缀为e~表示欧盟,s~表示美国。

附:看起来两个dev控制台都已更新以从其他地方获取App ID,因此它们没有此前缀。


1
2018-06-01 10:21