如何将自定义域从一个应用引擎项目移动到另一个应用引擎项目?

时间:2014-04-29 14:19:43

标签: google-app-engine

我有两个Google Playngine项目, projectA.appspot.com projectB.appspot.com

我有一个自定义域 myproject.com ,完全设置,验证并运行良好,指向projectA。

我现在想将myproject.com域从projectA移动到projectB。

有人知道所涉及的步骤顺序吗?我能找到的唯一文档描述了我已经完成的初始设置和验证。

2 个答案:

答案 0 :(得分:1)

您只需更改应用程序别名,首先删除别名,然后创建新别名。

您不必更改域DNS,因为它已配置为与appengine配合使用,此更改不会花费太长时间。

步骤如下:

  1. 输入admin.google.com/AdminHome#AppEngineApps :.在这里你必须看到这两个项目。如果您没有看到可以使用添加服务按钮添加的所有项目<{0}}
  2. 选择projectA并删除网址 myproject.com 以在projectB中使用
  3. 返回并选择projectB并点击添加新网址选择您的comain myproject.com ,子域名为 www ,它是&#39; s重要的是,子信息不能为空。
  4. 现在您可以通过网址 www.myproject.com 访问projectB,使用网址 myproject.com 进行访问,您也必须对其进行配置,{{ 3}}你可以看到如何配置它。

答案 1 :(得分:1)

我只需要将具有自定义域的实时Appengine应用程序从美国迁移到欧盟即可。

部署projectB应用程序

  1. 在Google Cloud Platform(GCP)上创建新项目projectB
  2. 更新appengine-web以使用新的appid(projectB
  3. appengineUpdate(我使用gradle,但使用您部署的任何设备)
  4. 在GCP上,暂停projectA和projectB的任务队列

备份项目数据存储区

总结自https://cloud.google.com/datastore/docs/export-import-entities

  1. gcloud auth login
  2. gcloud config set project projectA
  3. export BUCKETA="gs://projectAbackup"
  4. gsutil mb -c regional -l us-central ${BUCKETA}
  5. export BUCKETB="gs://projectBbackup"
  6. gsutil mb -c regional -l europe-west2 ${BUCKETB}
  7. gcloud datastore export --namespaces="(default)" ${BUCKETA} --async
  8. 使用以下命令查看进度:gcloud datastore operations describe ASANJUhjjJjhjfjdueuHHkdkjHfkKJjgkkHJDhKdfjsosoduNnvuUuausdnNuU //基于先前的输出。

将数据从projectA存储桶复制到projectB存储桶

  1. gsutil -m cp -r ${BUCKETA} ${BUCKETB}/[PATH]#路径可能类似于:2019-06-10T08:48:27_12345

导入到projectB

  1. gcloud auth login
  2. gcloud config set project projectB
  3. gcloud datastore import ${BUCKETB}/[PATH]/[FILE].overall_export_metadata --async //使用备份的PATHFILE进行导入(您可能需要设置IAM角色)
  4. 使用以下命令查看进度:gcloud datastore operations describe ASANJUhjjJjhjfjdueuHHkdkjHfkKJjgkkHJDhKdfjsosoduNnvuUuausdnNuU //基于先前的输出
  5. 等待导入完成

迁移自定义域映射

  1. 在GCP中的projectA中删除自定义域:https://console.cloud.google.com/appengine/settings/domains
    1. 注意:如果无法删除自定义域并看到此消息“下面显示了映射到该应用程序的所有域。只有域所有者可以删除其映射之一。”您可能需要重新验证所有权(出于某些无法解释的原因,我这样做了)
  2. 在projectB中添加自定义域:https://console.cloud.google.com/appengine/settings/domains
  3. 恢复projectB的任务队列
  4. 在GCP(https://console.cloud.google.com/appengine/settings)中禁用projectA