我在Google Compute Engine上创建实例时遇到了奇怪的行为。
当我尝试创建并启动ubuntu-1410-utopic
实例时,所有操作都按预期工作,但如果我尝试创建实例ubuntu-1404-trusty
,我会得到异常:
java.util.concurrent.ExecutionException:org.jclouds.http.HttpResponseException:command:POST https://www.googleapis.com/compute/v1/projects/myProjectName/zones/asia-east1-a/instances HTTP / 1.1失败,响应:HTTP / 1.1 400 BadRequest;内容:
[{
"error": {
"errors": [
{
"domain": "global",
"reason": "invalid",
"message": "Invalid value for field 'resource.name': '615aa438-ef50-4c19-850b-e483a294d944-955'. Must be a match of regex '(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?)'"
}
],
"code": 400,
"message": "Invalid value for field 'resource.name': '615aa438-ef50-4c19-850b-e483a294d944-955'. Must be a match of regex '(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?)'"
}
}]
为什么会发生这种情况,什么是resource.name
?
更新
我找到了答案,请参阅答案部分。
答案 0 :(得分:2)
原因很简单。如果GCE的名称以数字开头,则无法在GCE上创建新实例。改为使用字母。
我有一些随机UUID作为名称(上例中为615aa438-ef50-4c19-850b-e483a294d944
),jclouds
添加了一些后缀(-955
)。