google-cloud-platform - 如何为我的谷歌云功能设置端点路径(使用无服务器框架)
问题描述
我正在使用无服务器框架在 GCP 中部署云功能,配置如下:
service: myname
provider:
name: google
stage: prod
runtime: nodejs10
region: us-central1
project: myname
credentials: keyfile.json
environment:
IS_PROD: 'true'
plugins:
- serverless-google-cloudfunctions
package:
exclude:
- node_modules/**
- .gitignore
- .git/**
functions:
clear:
handler: clearCommand
events:
- http: clear
我正在使用serverless-google-cloudfunctions
插件版本 3.1.0。部署后,地址/路径如下:
https://us-central1-myname.cloudfunctions.net/myname-prod-clear
我想知道是否有办法自己设置路径如下:
有没有办法设置这个?首选无服务器框架方式。
解决方案
您可以在中的name
函数定义中指定serverless.yml
因此,在您的serverless.yml
中,它将如下所示,
functions:
clear:
name: clear
handler: clearCommand
events:
- http: clear
但是请注意,在serverless-google-cloudfunctions
3.1.0 版本中,函数名的赋值仍然存在问题。部署工作正常,GCP 中部署的函数名称也正确。但它并没有正确反映在serverless deploy
执行结束时的部署状态中。
编辑:部署状态问题已在 3.1.1 版中修复。
在早期版本中,我们仍然需要执行以下 hacky 变通方法来手动更新serverless-googlecloudfunctions
.node_modules
中info/lib/displayServiceInfo.js
,替换当前的getFunctionNameInService
函数实现,
const getFunctionNameInService = (funcName, service, stage) => {
let funcNameInService = funcName;
funcNameInService = funcNameInService.replace(service, '');
funcNameInService = funcNameInService.replace(stage, '');
funcNameInService = funcNameInService.slice(2, funcNameInService.length);
return funcNameInService;
};
和
const getFunctionNameInService = (funcName, service, stage) => {
let funcNameInService = funcName;
funcNameInService = funcNameInService.replace(`${service}-`, '');
funcNameInService = funcNameInService.replace(`${stage}-, '');
return funcNameInService;
};
我希望这将有所帮助。
推荐阅读
- java - 使用 IntelliJ IDEA 或 eclipse 替换/更新所有文件中的所有导入语句
- php - 在自定义 Laravel 包中使用非命名空间作曲家包
- android - 按下增加和减少按钮时应用程序崩溃
- bash - Bash:sudo:找不到命令
- python - 如何在 Python 中不以字符串形式遍历数字的数字?
- java - 解析没有id的html表
- c - 数据类型问题使值无法“分配”。可能的指针问题?
- r - 通过合并填充变量创建 Stat_Density_2D 图
- ios - 如果满足 swift 条件,则显示 fcm 通知
- html - HTML - 移动容器下面到下面一个而不破坏另一个容器