【问题标题】:How to use main package in different folder than app.yaml for appengine Go?如何为 appengine Go 使用与 app.yaml 不同的文件夹中的主包?
【发布时间】:2019-08-12 16:44:40
【问题描述】:

我正在尝试将 Go 应用上传到 appegnine Go 1.12 运行时。我的主要 pkg 位于 cmd 文件夹下,如图所示 https://cloud.google.com/appengine/docs/standard/go112/config/appref#runtime_and_app_elements

但如果我尝试官方文档中概述的任何方法,我会收到以下错误:

ERROR: (gcloud.app.deploy) An error occurred while parsing file: [/home/tamal/go/src/kmodules.xyz/resource-metadata/app.yaml]
Unable to assign value './cmd/resource-metadata-server' to attribute 'main':
Value './cmd/resource-metadata-server' for main does not match expression '^(?:[\w.\\\/:]+)$'
  in "/home/tamal/go/src/kmodules.xyz/resource-metadata/app.yaml", line 3, column 7
ERROR: (gcloud.app.deploy) An error occurred while parsing file: [/home/tamal/go/src/kmodules.xyz/resource-metadata/app.yaml]
Unable to assign value 'kmodules.xyz/resource-metadata/cmd/resource-metadata-server' to attribute 'main':
Value 'kmodules.xyz/resource-metadata/cmd/resource-metadata-server' for main does not match expression '^(?:[\w.\\\/:]+)$'
  in "/home/tamal/go/src/kmodules.xyz/resource-metadata/app.yaml", line 2, column 7

问题似乎是我不允许在app.yaml的main条目中使用-。这是为什么?可以解决吗?

我正在使用

$ gcloud version
Google Cloud SDK 257.0.0
app-engine-go 
app-engine-python 1.9.86
beta 2019.05.17
bq 2.0.46
cloud-datastore-emulator 2.1.0
core 2019.08.02
gsutil 4.41

【问题讨论】:

    标签: google-app-engine go google-app-engine-go


    【解决方案1】:

    错误代码表明传递给 main 的字符串必须与正则表达式 ^(?:[\w.\\\/:]+)$ 匹配。这意味着提供的字符串必须匹配字符集中的任何字符,例如 /w 可以是任何单词字符(字母数字和下划线),. 匹配 . 字符,\\ 匹配 @987654326 @ 字符,\/ 匹配 / 字符和 : 匹配 : 字符。

    请注意,字符集中没有-,这将允许您在main 中提供的字符串中包含- 字符,同时尊重它所限制的正则表达式。因此,只要此约束在字符集中排除 -,main 属性中的预期字符串应该是一个也排除 - 的字符串,同时尊重表达式的其余部分。

    【讨论】:

      猜你喜欢
      • 2016-05-15
      • 1970-01-01
      • 1970-01-01
      • 2016-08-05
      • 1970-01-01
      • 2018-01-30
      • 2011-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多