我有一个 twilio 函数,是使用 twilio cli 的
twilio serverless init
命令编写的。然后,我通过 npm install
添加了几个依赖项,并实现它以对外部 API 进行 REST 调用。此时,我的 package.json 包含这些依赖项:
"dependencies": {
"@twilio-labs/serverless-runtime-types": "^3.0.0",
"@twilio/runtime-handler": "1.3.1",
"nanoid": "^3.0.2",
"twilio": "^3.56"
},
然后,我通过项目模板添加到 package.json 的
twilio-run deploy
命令部署了该函数(在弄清楚如何进行身份验证之后,因为这似乎不像记录的那样工作......但这是一个不同的问题)。为了清楚起见,在此处复制该内容:
./node_modules/.bin/twilio-run deploy --functions-folder dist/functions --assets-folder dist/assets
部署成功,twilio 控制台中已部署函数的依赖项列表如下所示:
然后我意识到我需要添加请求签名。所以我通过
aws4-axios
添加了对 npm install
的依赖。我的 package.json 现在包含:
"dependencies": {
"@twilio-labs/serverless-runtime-types": "^3.0.0",
"@twilio/runtime-handler": "1.3.1",
"aws4-axios": "^3.3.4",
"nanoid": "^3.0.2",
"twilio": "^3.56"
},
如上所述通过
twilio-run deploy
再次部署后,我在控制台中查看了该函数的依赖列表,它没有变化。 Twilio 文档 声称读取 package.json 并从那里提供依赖项,但这显然不起作用,即使我可以看到在发布日志中创建的新版本。我无法通过功能控制台添加这个新的依赖项,因为通过 CLI 部署的内容在控制台中是只读的。我想也许我可以删除该函数并重新部署它,但同样,它显然是只读的,我无法删除它。
这个东西应该如何工作?我在这里做错了什么吗?
很奇怪你遇到了这个问题。我只是尝试重现它(创建一个新的 Functions 项目 -> 部署 -> 使用
npm i
添加依赖项 -> 重新部署)并且它工作得很好。您能否检查一下您是否使用的是最新版本的 Twilio CLI?
另一个问题更容易回答。您可以使用 Twilio 控制台或 Twilio CLI 来创建和删除“UI 函数”。如果您使用 CLI 创建了函数,您还可以使用以下 CLI 命令将其删除:
twilio api:serverless:v1:services:remove --sid ZS11111111