gcloud app deploy 触发奇怪的错误:文件的 SHA1 和冲突
Posted
技术标签:
【中文标题】gcloud app deploy 触发奇怪的错误:文件的 SHA1 和冲突【英文标题】:gcloud app deploy triggers weird error: Conflicting SHA1 sum for file 【发布时间】:2019-05-31 14:58:41 【问题描述】:我正在尝试获得一个简单的 HelloWorld! AppEngine 的部署设置。我正在与另一位朋友/开发人员一起工作,他在他的机器上能够让这个简单的gcloud app deploy
成功工作,但在我的机器上它不起作用(经典 在我的机器上工作)。我想知道这是否是我们的存储桶的权限问题,但我和我朋友的 AppEngine 帐户之间的一切都是镜像的。我很机智,因此感谢您提供任何帮助。
我将要描述的内容似乎在互联网上很少见,所以我希望有知识的人可以提供帮助。
我已安装并验证了 GoogleCloudSDK。 我有一个名为“default”的简单目录,其中包含 app.yaml 和 index.html运行gcloud app deploy default
命令时,我收到以下错误:
Beginning deployment of service [default]...
╔═════════════════════════════════════════════╗
╠═ Uploading 2 files to Google Cloud Storage ═╣
╚═════════════════════════════════════════════╝
File upload done.
Updating service [default]...failed.
ERROR: (gcloud.app.deploy) Error Response: [3] The following errors occurred while copying files to App Engine:
File https://storage.googleapis.com/staging.xxxxxxx.appspot.com/59add2715212c2a5fa68f05ead6ea6a307d279b5 failed with: Conflicting SHA1 sum for file. Expected "90d147b8_dd2137ab_8ec7f19f_c0891006_6585d3de" but received "59add271_5212c2a5_fa68f05e_ad6ea6a3_07d279b5".
Details: [
[
"@type": "type.googleapis.com/google.rpc.ResourceInfo",
"description": "Conflicting SHA1 sum for file. Expected \"90d147b8_dd2137ab_8ec7f19f_c0891006_6585d3de\" but received \"59add271_5212c2a5_fa68f05e_ad6ea6a3_07d279b5\".",
"resourceName": "https://storage.googleapis.com/staging.xxxxxxx.appspot.com/59add2715212c2a5fa68f05ead6ea6a307d279b5",
"resourceType": "file"
]
]
我尝试过的
删除存储桶中的所有文件。 在 staging.xxxxxxx.appspot.com 上删除整个存储桶。 从 https://cloud.google.com/sdk/ 卸载并重新安装 SDK。我使用的是 Windows 10 64 位。 重新运行gcloud init
并查看这些说明。
重新运行 gcloud auth application-default login
并使用我的 Google 帐户进行身份验证。
这是我的示例文件
app.yaml
runtime: nodejs10
handlers:
- url: /
static_files: index.html
upload: index.html
index.html
<html>
<head>
<title>Test Title</title>
</head>
<body>
<p>
Hello from the static index.html file.
</p>
</body>
</html>
【问题讨论】:
我在运行gcloud app deploy
时也有大约 50% 的时间遇到此问题,我必须运行该命令 1 到 5 次才能成功部署。我感觉这可能是由于互联网连接不稳定,但我不确定
您似乎在 Google 的公开问题跟踪器上提交了此问题。您是否收到任何针对您的问题的带外回复?还是刚刚关闭? issuetracker.google.com/issues/122326194
您可以自己计算文件的 sha1sum,以进一步确定问题所在。我正在使用 linux 并且有 sha1sum <file>
但看来您可以在 WIndows 上使用 FCIV:support.microsoft.com/en-us/help/889768/…
知道这个问题是否只出现在 Windows 上会很有趣(@sven-hakvoort -- 你也是 Windows 吗?)。可能是 Windows 文件 CR+LR 在某些文件中(以某种方式)转换为 Linux LF,这导致哈希不匹配?
@DazWilkin,是的,发生此问题时我也在使用 Windows,因此可能会产生影响
【参考方案1】:
问题总结: Windows 本地计算机文件系统和 Google 云存储中的文本文件大小不同 - SHA 校验和比较失败。
可能的解决方案:
在使用 Cigwin 使用 Dos2Unix 部署应用程序之前在本地修复文件,
或从 Linux 部署:
将部署文件上传到Cloud Shell 并从那里进行部署。 将部署文件上传到Linux VM Instance。
有关Windows and Unix interoperability 的摘要,请查看文档
【讨论】:
【参考方案2】:使用旧方法进行部署 - appcfg.py: https://cloud.google.com/appengine/docs/standard/python/tools/appcfg-arguments
为我工作。
或者你可以看到这个答案: https://***.com/a/52894113/8244338
【讨论】:
以上是关于gcloud app deploy 触发奇怪的错误:文件的 SHA1 和冲突的主要内容,如果未能解决你的问题,请参考以下文章
带有Gcloud错误的Rails:(gcloud.preview.app.deploy)错误响应:[13]意外错误。部署版本:
错误:(gcloud.app.deploy)INVALID_ARGUMENT:无法解析源
错误:(gcloud.app.deploy)错误响应:[9] Cloud build XXXXXXXXXXXX 状态:FAILURE
(gcloud.app.deploy) 错误响应:[7] 未配置访问。项目中未使用 Cloud Build
错误:(gcloud.app.deploy)您必须在使用自定义运行时提供自己的 Dockerfile
错误:(gcloud.app.deploy)错误响应:[9] Flex 操作项目/.../regions/us-central1/operations/...错误 [FAILED_PRECONDITI