我正在尝试使用Java Client API创建一个Google Cloud Function,但是代码400和消息“前提条件检查失败”始终出现错误。
我知道这是由于我的输入参数之一格式错误,但没有任何指示。
CloudFunction function = new CloudFunction();
function.setName("mytest1");
function.setAvailableMemoryMb(128);
function.setSourceArchiveUrl("gs://my-bucket/path/to/source.zip");
function.setRuntime("python37");
function.setEntryPoint("my_function_name");
function.setTimeout("450s");
String location = "projects/my-project-id/locations/us-east4";
cloudFunctions.projects().locations().functions().create(location, function).execute(); // exception thrown here
我还尝试将功能的serviceAccountEmail
设置为我正在使用的服务帐户密钥的功能,并且还设置了HttpsTrigger
。
此API的JavaDoc表示仅需要运行时,但是仅使用此设置运行它也不起作用。
{
"code" : 400,
"errors" : [ {
"domain" : "global",
"message" : "Precondition check failed.",
"reason" : "failedPrecondition"
} ],
"message" : "Precondition check failed.",
"status" : "FAILED_PRECONDITION"
}
答案 0 :(得分:0)
函数名称错误。
function.setName("mytest1");
应该像
function.setName("projects/{project-id}/locations/{location}/functions/{your-function-name}")
函数名称必须是全局唯一的,并且匹配模式项目/ / locations / / functions / *
请参阅此link。