Rob*_* E. 0 google-cloud-platform gcloud google-cloud-source-repos google-cloud-functions
我有一个相当简单的 Google Cloud Function,它是从 Cloud Source Repositories 部署的。
我使用 Google Cloud Shell 作为我的开发机器。
当我在开发过程中对函数进行更新时,我使用 CLI 将更新推送到我的源存储库。然而,gcloud functions deploy ...从命令行运行该命令似乎并没有强制GCF 提取最新的源代码。
有时,deploy推送新源代码后的命令只会简单地指出“无需更新”。(这是不正确的。)
更常见的是,它将经历部署过程,但该函数仍将运行以前版本的代码。
发生这种情况时,我可以更新函数的唯一方法是使用仪表板,“编辑”函数,然后单击“部署”按钮(即使我没有更改任何内容。)
我是否忘记进行某种所需的版本控制或标记?有没有办法强制 CLI 从源存储库中提取最新的提交?
我认为您正在寻找gcloud 函数部署选项来指向源存储库而不是当前目录(默认):--source=SOURCE
--source=SOURCE要部署的源代码的位置。源的位置可以是以下三个选项之一:
- Google Cloud Storage 中的源代码(必须是
.zip存档),- 参考源存储库或,
- 本地文件系统路径(函数源的根目录)。
请注意,如果不指定标志
--source:
- 当前目录将用于新功能部署。
- 如果该函数之前是使用本地文件系统路径部署的,则函数的源代码将使用当前目录进行更新。
- 如果该函数之前是使用 Google Cloud Storage 位置或源存储库部署的,则该函数的源代码将不会更新。
如果该标志的值以
gs://.如果该值以
https://.否则,它将被解释为本地文件系统路径。从本地文件系统部署源时,此命令会跳过
.gcloudignore文件中指定的文件(请参阅gcloud topic gcloudignore参考资料 获取更多信息)。如果该.gcloudignore文件不存在,该命令将尝试创建它。最小源存储库 URL 是:
https://source.developers.google.com/projects/${PROJECT}/repos/${REPO}
master通过使用上面的 URL,将使用来自标记修订版的存储库根目录的源。如果您想从不同于 的修订版进行部署
master,请将以下三个源之一附加到 URL:
/revisions/${REVISION},/moveable-aliases/${MOVEABLE_ALIAS},/fixed-aliases/${FIXED_ALIAS}。如果您想从根目录以外的目录部署源,则必须指定修订版、可移动别名或固定别名(如上所述),并将其附加
/paths/${PATH_TO_SOURCES_DIRECTORY}到 URL。总的来说,URL 应与以下正则表达式匹配:
Run Code Online (Sandbox Code Playgroud)^https://source\.developers\.google\.com/projects/ (?<accountId>[^/]+)/repos/(?<repoName>[^/]+) (((/revisions/(?<commit>[^/]+))|(/moveable-aliases/(?<branch>[^/]+))| (/fixed-aliases/(?<tag>[^/]+)))(/paths/(?<path>.*))?)?$格式有效的源存储库 URL 的示例是:
Run Code Online (Sandbox Code Playgroud)https://source.developers.google.com/projects/123456789/repos/testrepo/ moveable-aliases/alternate-branch/paths/path-to=source
| 归档时间: |
|
| 查看次数: |
4926 次 |
| 最近记录: |