"ERROR: (gcloud.functions.call) ResponseError: status=[404], code=[Ok], message=[Function XYZ in re



我正在测试一个云函数。

当我从";测试";选项卡,在线,我将json字典粘贴为参数,作为"中cloud函数的请求变量传递;触发事件";编辑器为:

{"api_key":"MY_API_KEY"}

(MY_API_KEY将替换为纯文本键(,然后函数将运行到底。

在bash中,使用gcloud,相同的函数失败:

gcloud functions call MY_CLOUD_FUNCTION --data '{"api_key":"$API_KEY"}'
gcloud functions call MY_CLOUD_FUNCTION --data '{"api_key":"$API_KEY"}' 
ERROR: (gcloud.functions.call) ResponseError:
status=[404], code=[Ok], message=[Function MY_CLOUD_FUNCTION in region
us-central1 in project MY_CLOUD_PROJECT does not exist]

这很可能不是触发事件的问题,触发事件恰好是args的一部分,但不应该在这里发挥作用。这是不同地区的问题。gcloud期望默认区域us-central1,而我的函数是europe-west3(来自"Details"选项卡(。

如何告诉gcloud使用函数的区域,而不是默认区域?或者还有什么办法可以解决这个问题?

gcloud假定默认值(可以使用gcloud config获取|设置(

在这种情况下,您应该将标志--region=europe-west3添加到您的命令中,以指定想要的区域,即:

REGION="europe-west3"
gcloud functions call your-function 
--region=${REGION} 
--data="{"api_key":"${API_KEY}"}"

您可以(希望(通过以下方式验证此行为:

gcloud config list
[core]
account = your@email.com
Your active configuration is: [default]

注意以上命令不包括functions/region;我怀疑这是因为us-central1是默认值。

gcloud config get-value functions/region
us-central1

我不建议在gcloud config中存储全局状态(部分原因是它会导致这种类型的混乱(,但是,您也可以:

gcloud config set functions/region europe-west3
Updated property [functions/region].
gcloud config get-value functions/region
europe-west3
gcloud functions call your-function 
--data="{"api_key":"${API_KEY}"}"

相关内容

  • 没有找到相关文章

最新更新