使用标签组织资源

AWSBeginner
立即练习

介绍

报表团队希望按团队和环境找到自己的测试设置,即使这些设置的名称不同。你将添加归属标签,发现一个错误的环境标签,并在不改变已存储设置的情况下修复它。

请先完成工作区、区域资源和 CLI 查询实验。工具和四个资源已在全新环境中准备好。在 Terminal 中操作,并在旁边的 AWS View 中观察相同的标签和过滤结果。

为财务导出设置添加标签

在本步骤中,你将为财务导出参数添加团队和环境标签。

上一个实验通过共有的名称前缀查找资源。名称不一定能说明资源所属的团队或环境。标签(tag)为资源添加独立的键和值,例如 owner=finance 或 environment=staging。这些标签帮助你在不重命名资源的情况下找到相关资源。

资源名称、存储的值和分类标签各有不同用途

概念图:标签描述资源,不会改写它存储的值、移动它或授予访问权限。

先进入工作目录。与上一个实验一样,预先配置的默认区域是 us-east-1:

cd /home/labex/project

列出参数:

aws ssm describe-parameters

阅读描述:/labex/tagging/export-format 和 /labex/tagging/archive-format 是用于测试的财务预发布(staging)设置。两个 /labex/reference/ 资源属于其他团队,请保持它们不变。

标签操作需要指定资源种类和名称。对于参数,保留 --resource-type Parameter,并将完整名称用作 --resource-id。查看导出设置的标签:

aws ssm list-tags-for-resource --resource-type Parameter --resource-id /labex/tagging/export-format

TagList 为 []:这个资源还没有标签。添加两个标签。每个 Key=...,Value=... 提供一个标签,标签之间用空格分隔:

aws ssm add-tags-to-resource --resource-type Parameter --resource-id /labex/tagging/export-format --tags Key=owner,Value=finance Key=environment,Value=staging

严格使用示例中的小写键;标签区分大小写。成功写入通常不会打印任何内容。读取刚保存的标签:

aws ssm list-tags-for-resource --resource-type Parameter --resource-id /labex/tagging/export-format

两个标签都会出现。点击 Terminal 旁的 AWS View:导出设置已包含在财务预发布筛选结果中。它存储的值仍为 csv。

按负责人查找资源

在本步骤中,你将添加归档设置的负责人,并通过标签过滤条件找到两个财务资源。

归档设置也归财务团队负责。添加负责人标签,不改变其他标签:

aws ssm add-tags-to-resource --resource-type Parameter --resource-id /labex/tagging/archive-format --tags Key=owner,Value=finance

读取完整标签列表:

aws ssm list-tags-for-resource --resource-type Parameter --resource-id /labex/tagging/archive-format

你应看到 owner=finance 和已有的 environment=production 标签。描述说这是一个预发布设置;请记住这一处不一致,下一步会用到。

使用上一个实验中的过滤模式,这次匹配标签。Key=tag:owner 选择 owner 标签,Option=Equals 要求值完全匹配:

aws ssm describe-parameters --parameter-filters Key=tag:owner,Option=Equals,Values=finance --query 'Parameters[].Name'

两个财务资源的名称都会出现。HR 和平台资源不在本次筛选结果中。标签描述的是你提供的事实;服务不会替你判断资源属于哪个团队或环境。

修复环境标签

在本步骤中,你将纠正归档设置中错误的环境标签,恢复完整的财务预发布筛选结果。

只按团队筛选的列表包含两个财务资源。要找到团队的测试设置,需要同时匹配两个标签:owner=finance 和 environment=staging。提供两个过滤条件,用空格分隔:

aws ssm describe-parameters --parameter-filters Key=tag:owner,Option=Equals,Values=finance Key=tag:environment,Option=Equals,Values=staging --query 'Parameters[].Name'

只有导出设置出现。归档设置仍然存在,但错误的 production 标签使它不在这个视图中。

只有同时匹配负责人和环境的资源才属于选中的列表

概念图:不匹配的资源不在结果中,并没有被删除。

修复标签前,确认归档设置存储的数据:

aws ssm get-parameter --name /labex/tagging/archive-format

它的值为 json,Version 为 1。清单中的描述表明它是财务预发布归档设置。使用同样的添加操作纠正环境标签:提供已有键时,会替换它的值,同时保持其他标签不变。

aws ssm add-tags-to-resource --resource-type Parameter --resource-id /labex/tagging/archive-format --tags Key=environment,Value=staging

你是在纠正标签,使它与已有测试资源相符,并没有将生产应用移动到预发布环境。读取标签:

aws ssm list-tags-for-resource --resource-type Parameter --resource-id /labex/tagging/archive-format

负责人和环境现在都符合任务要求。再次运行筛选:

aws ssm describe-parameters --parameter-filters Key=tag:owner,Option=Equals,Values=finance Key=tag:environment,Option=Equals,Values=staging --query 'Parameters[].Name'

两个财务资源的名称都会出现。再次读取存储的数据:

aws ssm get-parameter --name /labex/tagging/archive-format

它的名称、ARN、json 值和 Version 1 都没有变化。在 AWS View 中,两个资源现在都出现在财务预发布组,其他团队的资源仍然完整。

两个财务设置都具有正确的预发布分类

示例结果:修改标签恢复了筛选结果,没有改写任一设置。

只删除自己的练习资源

在本步骤中,你将删除分配给你的两个财务参数,并确认参考资源仍然存在。

标签有助于查找资源,但它们可以被修改。清理时,使用本练习指定的两个准确名称:

aws ssm delete-parameters --names /labex/tagging/export-format /labex/tagging/archive-format

两个名称都应出现在 DeletedParameters 中,InvalidParameters 应为空。

按名称确认资源不存在,不依赖标签:

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

成功响应为 []。请求失败不能证明资源已删除。读取剩余清单:

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

只剩下 /labex/reference/hr-format 和 /labex/reference/platform-team。AWS View 显示相同的参考资源,不再有匹配的财务预发布资源。完成检查还会读取参考资源,确认它们的值和标签未变。

接下来的“清单中缺失的资源”让你独立诊断类似的筛选问题,运用本课程的区域、查询和标签技能。

总结

你添加了负责人和环境标签,按团队筛选资源,并组合两个条件查找测试设置。错误的环境标签让一个已有资源在过滤后的视图中不可见;纠正标签后,筛选结果恢复,存储的数据没有变化。

随后,你只删除了自己的两个练习资源。继续完成“清单中缺失的资源”,在独立恢复任务中运用这些技能。