今天在修改完函数准备Deploy Function的时候,突然发现部署失败了,报错信息如下:
Waiting for service functionName_xxx to be deployed...
retry 1 times
retry 2 times
retry 3 times
retry 4 times
PUT /services/functionName_xxx failed with 400. requestid: e029411c-xxxx-xxxx-xxxx-ff3e2dc5a088, message: Both project and logstore are required for enabling instance metrics.
问题分析
刚开始看到这个错误,也是丈二和尚摸不着头脑,但是仔细看了下message后的提示,根据这个错误提示,推断可能是由于函数启用了日志功能而导致的。然后看了下项目中的.fun/tmp/deploy/template.yml文件的配置,发现多了个LogConfig配置,配置如下图所示:
然后对比了项目根目录下的template.yml文件,发现这个文件并没有LogConfig这项配置,如下图所示:
问题解决
既然怀疑是配置这块的问题,那就先把LogConfig配置复制过来,然后再重试Deploy Function,然后部署成功了,到此问题就解决了~~~
Ps: 有关于Role和LogConfig参数值,之前部署失败时应该就会在.fun/tmp/deploy/template.yml这个文件里自动生成,如果没有的话可以在 (阿里云函数计算控制台-函数服务详情页面) 找到相应的参数值,如下图示: