您如何从App Engine快速入门中取消部署“ helloworld.go”,而是指向存储桶中的html?

时间:2018-11-27 04:37:49

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

我正在尝试学习如何在GCP上托管网站,并且刚刚完成了App Engine快速入门,它为我提供了一个可运行的appspot.com域,该域运行于helloworld.go上。

但是现在我想尝试一个经过测试可以在本地工作的预制html模板(包含.html,.DS_STORE和css / fonts / images / js文件夹)。

在“托管静态网站”教程之后,我将html模板文件夹上载到了我的存储桶“ .... appspot.com”中,并使整个存储桶可以公开查看/阅读。然后,我禁用并重新启用了App Engine会话,以尝试将其重置。

但是,URL仍然加载快速入门中使用的默认“ Hello,world”纯文本。

对于App Engine上的网络托管的工作方式,我可能有一个非常根本的误解。有人可以检查我想做的事是否合理,如果可以,我实际上该怎么做?

编辑:我还成功部署了Quickstart附带的其他代码示例,但仍然没有弄清楚如何忽略这些示例并直接从存储桶中部署。

2 个答案:

答案 0 :(得分:1)

我了解到您在Google Cloud Storage存储桶中有一个静态HTML页面,并且您希望App Engine应用程序指向该HTML页面。

可以做到这一点,只需从存储桶中取出文件,然后打印内容,但是如果您只想要一个静态页面,则最好的选择如下:

  1. 创建一个存储桶,仅在该存储桶中上传静态模板,请不要在其中上传敏感信息。
  2. 单击右侧的三个点以编辑存储桶的权限。
  3. 将“存储对象查看器”角色授予成员“ allUsers” permissions
  4. 进入您的存储桶,然后单击index.html的公共链接 public link

链接将类似于:https://storage.googleapis.com/ /index.html

编辑

根据OP的要求,链接https://storage.googleapis.com/< YOUR_BUCKET >/index.html确实很长,而且不太友好,因此,这是一本有关如何将自定义域附加到您的Google Cloud Storage存储桶的小教程。

  1. 创建一个域,您可以使用Google Domains,或者如果您只想要一个免费域,则可以使用诸如Freenom之类的东西来免费获取域。
  2. 转到Google Search Console并遵循该小型教程,这只是为了验证您的域确实是您的域。它将要求您将文件上传到您的域中。为此,就像

    一样简单

    2.1。将您的域指向Compute Engine实例的外部IP 您安装了apache的文件及其中的文件。

    2.2。您可以将预制的Compute Engine实例与指示灯一起使用, Marketplace

    2.3。只需将Google提供的文件上传到 / var / www / html /新实例中。

    2.4。验证完成后,删除此Compute Engine实例以 不要浪费钱。

3。使用与经过验证的域相同的名称创建一个存储桶,这意味着,如果您的域为“ larrycai.tk”,则您的存储桶应称为“ larrycai.tk”。如果为“ 2”。设置正确,它将使您创建该存储桶,否则,将显示一条错误消息,提示您需要验证自己是该域的所有者。

4。再次转到您的域提供商(在我的情况下为freenom),然后在DNS菜单中添加以下记录: DNS record

如您所见,您需要添加一个CNAME记录,目标将是c.storage.googleapis.com,如果它要求您设置名称,只需添加您的域“ larrycai.tk”。

5.(可选)如果要将存储桶url重定向到主文件(例如index.html),只需运行以下命令:

gsutil web set -m index.html gs://[your_bucket]

现在,通过所有这些步骤,您应该可以在自己的域中看到静态网页。

答案 1 :(得分:0)

使用Google Cloud Platform部署网站有多种方法。 “托管静态网站”教程是指仅使用Cloud Storage托管静态网站。

要使用App Engine托管静态网站,您需要编辑应用程序的app.yaml文件并创建指向静态网站的请求处理程序。

当您使用go qwikstart教程时,我将假设您的目录如下所示:

helloworld
|-- app.yaml
|-- helloworld.go
|-- helloword_test.go
  1. 在helloworld目录中创建一个新文件夹,在本示例中,我将其称为www
  2. 将您的静态文件移动到刚创建的文件夹中,在我的情况下为www文件夹
  3. 在app.yaml文件中,添加以下内容,并将www替换为您的文件夹名称:

    handlers:
    - url: /
      static_files: www/index.html
      upload: www/index.html
    
    - url: /(.*)
      static_files: www/\1
      upload: www/(.*)
    
  4. 使用gcloud app deploy部署应用程序。

有关更多信息,Google提供了有关为以下对象提供静态内容的文档: