instance 命令【公测中】

instance 命令支持登陆进入活跃实例;包括查看活跃实例列表和对指定实例进行命令行操作

命令解析

当执行命令instance -h/instance --help时,可以获取帮助文档。

instance list 命令

instance list 命令,获取函数目前所有的活跃实例列表。

当执行命令instance list -h/instance list --help时,可以获取帮助文档。

参数解析

参数全称参数缩写Yaml 模式下必填Cli 模式下必填参数含义
region-选填必填地域名称,取值范围参见函数计算开服地域
function-name-选填必填函数名
qualifier-选填选填版本或别名,默认为 LATEST

当前命令还支持部分全局参数(例如-a/--access, --debug等),详情可参考 Serverless Devs 全局参数文档

操作案例

  • 有资源描述文件(Yaml)时,可以直接执行s instance list获取别名列表;
  • 纯命令行形式(在没有资源描述 Yaml 文件时),需要指定函数所在地区以及函数名称,例如s cli fc3 instance list --region cn-hangzhou --function-name test-function

上述命令的执行结果示例:

fc-event-test:
  instances:
    -
      instanceId: c-6******9-459adeb5b3994bc1af9e
      versionId:  0
    -
      instanceId: c-6******9-693943a10c714137bb12
      versionId:  0

instance exec 命令

instance exec 命令,登陆进入指定实例。

当执行命令instance exec -h/instance exec --help时,可以获取帮助文档。

参数解析

参数全称参数缩写Yaml 模式下必填Cli 模式下必填参数含义
region-选填必填地域名称,取值范围参见函数计算开服地域
function-name-选填必填函数名
qualifier-选填选填版本或别名,默认为 LATEST
instance-id-必填必填实例 Id
cmd-选填选填要执行的命令, 如果不传入此值,表示 shell 交互模式进入实例

当前命令还支持部分全局参数(例如-a/--access, --debug等),详情可参考 Serverless Devs 全局参数文档

操作案例

  • 有资源描述文件(Yaml)时
  1. 先执行 s instance list 获取函数的实例列表,从中选择需要操作的实例 ID
  2. 执行命令
s instance exec --instance-id c-6******c-27c4833c325445879a28

s instance exec --instance-id c-6******c-27c4833c325445879a28 --cmd "ls -lh"

如果是使用终端模式可以输入 exit 服务端端开链接退出(推荐),或者执行 control + ] 强制客户端推出。

场景案例

排查线上问题

在一些日常的场景下,实例命令行操作会带来更符合用户习惯、更高效便捷的排查问题方式。

用户小王是 Serverless 小白用户,写完一个程序部署到函数计算后,发现函数中设置的环境变量不生效,如果进一步排查,则需要修改代码,打印日志,重新部署,查看日志,使用这样繁琐的排查方式。现在借助实例命令行操作,小张可以直接一个命令:s instance exec {instance_id} ENV 便可以一步定位问题。

实例命令行操作提供了便捷的登录体验,能帮助用户解决复杂场景下的应用问题。一些情况下,用户已经无法通过函数日志、监控指标来具体定位问题,需要借助比如 coredump 、tcpdump、jmap 等工具进行深入排查。

比如,用户小李发现自己的线上程序最近会出现一些函数错误,报错内容都是连接远程某服务超时。小李怀疑是函数实例与远端服务的网络链接不稳定,想进入实例内部,调查分析下实例与远端服务的网络情况。他可以按照这样的步骤进行:

  1. 登录进实例内部后,先安装 tcpdump 工具,需要执行 apt-get update 和 apt-get install tcpdump 两条命令:

  2. 安装完毕后,执行 tcpdump 命令,对远端服务 IP 的请求进行抓包,并将抓包结果保存在 tcpdump.cap 文件中:

  3. 抓包完毕,借助 OSS 命令行工具 ossutil64 ,将 tcpdump.cap 文件上传到自己的 OSS ,然后下载到本地借助分析工具 wireshark 可以进行分析。

在 GitHub 上编辑本页面 更新时间: Thu, Feb 22, 2024