使用Twilio CLI删除Serverless函数时遭遇Error 20001的解决求助
解决Twilio Serverless函数删除错误20001的方法
问题原因
你遇到的Error 20001,是因为仍有历史构建(即使不是当前Live Build)引用了要删除的函数版本。控制台的Live Build详情页仅展示当前活跃构建,但服务的构建历史里的旧构建可能仍关联着这些已删除的函数版本,导致无法直接删除函数。
解决步骤
1. 列出服务下所有构建
先获取该服务的所有构建,定位可能引用目标函数的构建:
twilio api:serverless:v1:services:builds:list --service-sid ZSXXXXXXXXXXXXXXXX
记录输出中所有构建的SID(格式为ZBXXXXXXXXXXXXXXXX)。
2. 检查每个构建关联的函数
对每个构建SID,查询其包含的函数列表,确认哪个构建还在引用你要删除的函数(SID为ZHXXXXXXXXXXXXXXXX):
twilio api:serverless:v1:services:builds:functions:list --service-sid ZSXXXXXXXXXXXXXXXX --build-sid ZBXXXXXXXXXXXXXXXX
如果输出中包含目标函数的SID,说明该构建是阻碍删除的原因。
3. 删除引用旧函数的非Live构建
对于那些引用了目标函数且不是当前Live状态的构建,执行删除命令:
twilio api:serverless:v1:services:builds:remove --service-sid ZSXXXXXXXXXXXXXXXX --sid ZBXXXXXXXXXXXXXXXX
注意:不要删除当前的Live构建,如果Live构建也引用了旧函数,需先将新构建设为Live,再删除旧的Live构建。
4. 再次尝试删除函数
清理完所有引用目标函数的构建后,重新执行删除函数的命令:
twilio api:serverless:v1:services:functions:remove \ --service-sid ZSXXXXXXXXXXXXXXXX \ --sid ZHXXXXXXXXXXXXXXXX
额外验证
删除操作完成后,回到Twilio控制台的服务页面刷新,灰色的旧函数应该会从列表中消失。
内容的提问来源于stack exchange,提问作者Facundo Chambó
相关产品推荐
相关产品推荐

