使用 AWS CLI 查找资源

AWSBeginner
立即练习

介绍

一个报表团队需要检查财务测试设置,同时避免修改生产设置或其他团队的设置。你将找到正确的资源,使列表更易读,并将导出格式更新为 CSV。

请先完成工作区和区域资源实验。CLI 连接和资源已在全新环境中准备好,不需要之前的文件或凭据。使用 Terminal 执行命令,并在旁边的 AWS View 中观察变化。

查找财务测试设置

在本步骤中,你将从混合资源列表中筛选出本次检查所涉及的财务设置。

上一个实验展示了如何通过 Region 选择地点。这里预先配置的默认区域是 us-east-1:没有 --region 的命令会使用该区域。你仍然可以显式指定 --region us-east-1。

进入工作目录:

cd /home/labex/project

资源清单是资源的列表。查看已准备好的参数清单:

aws ssm describe-parameters

查看每个 Name 和 Description。预发布环境(Staging)是在修改生产环境(production)之前使用的测试环境;生产环境运行正常业务。列表包括财务预发布、财务生产和人力资源(HR)预发布设置。你的三个资源都以 /labex/inventory/finance/staging/ 开头。

官方 Console 以资源表格展示参数元数据。将它的 Name 和 Type 列与 describe-parameters 返回的字段比较。示例中的名称不同;本实验使用 String 参数:

官方 Parameter Store 的 My parameters 表格显示资源名称和类型

来源:AWS 博客。

这个列表足够小,可以直接浏览,但过滤条件能使操作范围更清楚。--parameter-filters 要求服务返回匹配的记录。Key=Name 选择名称,Option=BeginsWith 匹配名称开头,Values=... 提供要匹配的开头:

aws ssm describe-parameters --parameter-filters Key=Name,Option=BeginsWith,Values=/labex/inventory/finance/staging/

你应看到三个名称:report-format、report-owner 和 review-status。它们的顺序可能不同。

前缀过滤条件选中财务预发布资源,其他资源不出现在结果中

概念图:过滤条件改变返回的列表,不改变资源。其他设置仍然存在。

更新已有状态,记录这次配置检查已经开始:

aws ssm put-parameter --name /labex/inventory/finance/staging/review-status --type String --value in-review --overwrite

你在第一个实验中学过 put-parameter 和 --overwrite。AWS View 现在在财务预发布组中显示 in-review。请保持财务生产和 HR 设置不变。

显示名称并更新导出格式

在本步骤中,你将只显示匹配的名称,然后修改财务预发布设置的导出格式。

响应包含的字段多于你当前需要的字段。--query 选择响应中的部分内容,不改变已存储的数据。在 'Parameters[].Name' 中,Parameters[] 表示返回的记录,.Name 选择这些记录的名称。请保留表达式外的单引号。

在现有过滤条件上添加这个选择表达式:

aws ssm describe-parameters --parameter-filters Key=Name,Option=BeginsWith,Values=/labex/inventory/finance/staging/ --query 'Parameters[].Name'

结果是包含三个名称的 JSON 列表。注意,过滤条件仍然选择资源;查询表达式选择要显示的字段。

字段选择显示资源名称,完整记录保持不变

概念图:选择 Name 会在本次响应中隐藏其他字段,不会删除它们。

要使显示更紧凑,添加 --output table:

aws ssm describe-parameters --parameter-filters Key=Name,Option=BeginsWith,Values=/labex/inventory/finance/staging/ --query 'Parameters[].Name' --output table

同样的三个名称出现在表格中。输出格式只改变显示方式。

按名称读取准确的预发布格式设置:

aws ssm get-parameter --name /labex/inventory/finance/staging/report-format

找到 Value:它是 json。这是应用的导出格式,与 CLI 的 JSON 响应格式不同。下游报表导入程序需要 CSV,因此更新这个设置:

aws ssm put-parameter --name /labex/inventory/finance/staging/report-format --type String --value csv --overwrite

再次读取它:

aws ssm get-parameter --name /labex/inventory/finance/staging/report-format

它的值现在是 csv。在 AWS View 中,比较财务预发布、生产和 HR 设置:

只有财务预发布的导出格式变为 csv

示例结果:财务预发布使用 csv;生产仍为 json,HR 仍为 xlsx。你的检查状态仍为 in-review。

确认设置并完成检查

在本步骤中,你将读取两个已检查的值,并将财务预发布配置标记为就绪。

你也可以从单个资源选择一个字段。'Parameter.Value' 读取 Parameter 内的值;--output text 显示该值,不带 JSON 引号:

aws ssm get-parameter --name /labex/inventory/finance/staging/report-format --query 'Parameter.Value' --output text

结果为 csv。确认谁负责这份报表配置:

aws ssm get-parameter --name /labex/inventory/finance/staging/report-owner --query 'Parameter.Value' --output text

结果为 finance。这些是存储的值;之前的元数据列表展示的是名称和描述。

现在将已完成的检查标记为就绪:

aws ssm put-parameter --name /labex/inventory/finance/staging/review-status --type String --value ready --overwrite

读取刚保存的结果:

aws ssm get-parameter --name /labex/inventory/finance/staging/review-status --query 'Parameter.Value' --output text

结果为 ready。AWS View 显示财务预发布的格式为 csv、负责人为 finance、状态为 ready。你完成了设置检查,并没有部署报表应用。

清理选定的命名空间

在本步骤中,你将在检查通过后,只删除财务预发布资源。

CLI 查询只调整响应内容,不能持续保护后续删除操作。请明确保持清理范围。delete-parameters 通过 --names 接收准确名称列表;下面是本练习拥有的三个资源:

aws ssm delete-parameters --names /labex/inventory/finance/staging/report-format /labex/inventory/finance/staging/report-owner /labex/inventory/finance/staging/review-status

响应中的 DeletedParameters 列出已删除的名称;InvalidParameters 应为空。使用成功的服务请求检查预发布前缀:

aws ssm describe-parameters --parameter-filters Key=Name,Option=BeginsWith,Values=/labex/inventory/finance/staging/ --query 'Parameters[].Name' --output json

结果为 []。连接或身份验证错误表示观察失败,不能证明资源已删除。

读取剩余清单中的名称:

aws ssm describe-parameters --query 'Parameters[].Name' --output table

剩下三个资源:财务生产的格式与检查状态,以及 HR 预发布的格式。读取它们的值,不要修改:

aws ssm get-parameter --name /labex/inventory/finance/production/report-format --query 'Parameter.Value' --output text
aws ssm get-parameter --name /labex/inventory/finance/production/review-status --query 'Parameter.Value' --output text
aws ssm get-parameter --name /labex/inventory/hr/staging/report-format --query 'Parameter.Value' --output text

这些值仍为 json、ready 和 xlsx。AWS View 中,财务预发布显示 No parameters,其他组仍包含参数。独立清理检查还会验证它们原有的版本和描述未变。

总结

你通过名称前缀过滤条件找到财务预发布设置,使用 --query 选择名称或单个值,并通过表格或文本输出提高可读性。你只更新了分配给你的配置,并在保留其他团队资源的同时完成了清理。

接下来的“使用标签组织资源”将添加团队和环境标签,让名称遵循不同模式的资源也能归为一组。