使用阿里云CLI获取ECS镜像ID
介绍
我是技术销售部的高木,一开始我还是迷失了大约10分钟。
所以这次我要使用“阿里云CLI”来获取阿里云虚拟服务器环境“ECS(弹性计算服务)”的镜像ID!
当你想要使用Terraform构建ECS时,指定这个“镜像ID”是绝对有必要的,不过似乎使用这个“阿里云CLI”来获取会更快,所以这次就做个备忘。我会保留它。
*有一天我也会好好写一篇关于Terraform的文章。 。
什么是阿里云CLI?
首先我想简单解释一下这个“阿里云CLI”,但如果你是AWS的普通用户,我想把它理解为阿里云版的“AWS CLI”是没有问题的。
该工具用于通过 CLI 而不是浏览器来管理资源,但以防万一我们官方文档的链接
顺便说一句,目前正在准备日文版(截至2024年1月18日本文发表) ,所以我使用翻译工具阅读了它。
一般流程
流程如下,这次我们将使用安装在Windows 11 PC上的WSL(Almalinux 8)。
- 使用curl命令安装/解压
- 操作确认
- 创建RAM用户并获取API key
- 创建个人资料
- 获取图片ID
- 使用 --output 检索信息
- 概括
使用curl命令安装/解压
打开 WSL 并启动 Almalinux,然后使用以下命令安装并解压缩它。
curl -sL https://github.com/aliyun/aliyun-cli/releases/download/v3.0.188/aliyun-cli-linux-3.0.188-amd64.tgz | sudo tar xzC /usr/local/bin
另外,详细信息也可以在 Github 上找到,所以也请检查一下。
■ GitHub
■ 官方手册
操作确认
执行以下命令查看您安装的阿里云CLI版本。
阿里云版
这次应该显示“3.0.188”,如果你能确认这一点,那就OK了!
RAM用户创建
然而,事实上,您仍然无法通过 CLI 获取必要的信息,因此首先创建一个具有管理员权限的用户。
另外,请注意此时将输出的以下三条信息。
- 访问密钥ID
- 访问密钥秘密
- 默认区域ID
*您也可以在创建用户时以CSV形式获取!
创建个人资料
记下以上三点后,在 WSL 中打开 Almalinux8 并执行以下命令。
aliyun configure --profile 默认
然后,如下图1所示,会以交互的形式要求你提供前面提到的信息,所以一一输入。
■ 图1
■ 输入订单
- AccessKey ID → 输入个人信息
- AccessKey秘密→输入个人信息
- 默认区域 ID → ap-northeast-1
- 默认语言 → en
最后,如果出现“Configure Done!!!”,则表示已完成。
获取图片ID
然而,事实上,我不知道实际执行什么命令,所以我会检查帮助来看看有哪些选项可用!
■ 执行命令
阿里云--帮助
■ 执行结果
由于篇幅较长,我摘录了一部分,不过你可以显示一个可以与 aliyun 命令一起使用的选项和资源列表,这样你就可以指定我们要求的“ECS”资源,然后获取帮助我会调查具体的服务。
■ 执行命令
阿里云ecs--帮助
■ 执行结果
将显示可用 API 的列表,使用似乎最适用的“DescribeImages”来获取 JSON 格式的结果。
■ 执行命令
aliyun ecs 描述图像
■ 执行结果
因为很长,所以我摘录了一些,但是 JSON 格式的结果会像这样输出。可以看到,这次你想知道的信息可以从“ImageId”部分获取到!
就我个人而言,我认为将 grep 和“仅提取您想要的部分”结合起来很好,但是这次我将使用“--output”(官方文档我会做的!
顺便说一句,您还可以查看“aliyun ecsDescribeImages”命令的帮助,如下所示,因此如果您确实想通过 CLI 对 ECS 执行某些操作,您还可以查看“aliyun ecsDescribeImages”的帮助命令请作为参考!
■ 执行命令
aliyun ecs 描述图像帮助
■ 执行结果
使用 --output 检索信息
阿里云CLI提供了“--output”选项,让上述命令的输出结果更加直观、易于理解,通过指定该选项以及后面的三个“Fields”,您可以只提取感兴趣的部分。你。
■ 领域
⓵ | 列 |
字段中存在的行的名称。 例如使用“aliyun ecsDescribeImages”的结果 这包括“ImageId”、“OSNameEn”和“Status”。 |
⓶ | 行 |
使用JAMESPATH要过滤的字段所在的路径 例如,“Images”和“Image”是“aliyun ecsDescribeImages”的结果。 |
⓷ | 编号 |
它将在结果左侧输出从 0 开始的行数。默认是没有输出。 |
基于以上,执行的命令如下。
如果在末尾输入“num=true”,则行数将输出在左侧。
■ 执行命令
aliyun ecsDescribeImages --PageSize 100 --output cols="ImageId,OSNameEn,Status" rows="Images.Image[]" aliyun ecsDescribeImages --PageSize 100 --output cols="ImageId,OSNameEn,Status" rows="图片.Image[]" num=true
■ 执行结果
“行”部分需要使用JAMESPATH
这真是一种解脱!
概括
你觉得怎么样?
就我个人而言,我花了一段时间来阅读 JAMESPATH 部分的文档,所以我遇到了一些麻烦,但现在我可以放心地使用 Terraform 构建资源了!
最后,我们在深圳设立了办事处,通过各个云厂商的服务,包括阿里云、腾讯云等中国云,来支持我们客户的系统从设计建设到运维。 。
除了阅读本文之外,我们希望您也对百佑科技(深圳)有限公司
我会继续写主要是阿里云相关的文章,欢迎关注!