AWS Systems Manager
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

使用自定义清单

您可以通过创建自定义清单将所需的任何元数据分配给您的实例。例如,假如您负责管理数据中心多个机架中的大量服务器,而且这些服务器已配置为 Systems Manager 托管实例。目前,您在电子表格中存储服务器机架位置的相关信息。借助自定义清单,您可以指定每个实例的机架位置作为实例上的元数据。当您使用 Systems Manager 收集清单时,该元数据与其他清单元数据一起收集。随后您可以使用资源数据同步将所有清单元数据传输到中央 Amazon S3 存储桶并查询数据。

要将自定义清单分配给实例,可以使用 Systems Manager PutInventory API 操作,如 演练:将自定义清单元数据分配给某个实例 中所述。或者,您可以创建自定义清单 JSON 文件并将其上传到实例。本部分描述了如何创建 JSON 文件。

{ "SchemaVersion": "1.0", "TypeName": "Custom:RackInformation", "Content": { "Location": "US-EAST-02.CMH.RACK1", "InstalledTime": "2016-01-01T01:01:01Z", "vendor": "DELL", "Zone" : "BJS12", "TimeZone": "UTC-8" } }

如下例所示,您在文件中还可以指定多个项目。

{ "SchemaVersion": "1.0", "TypeName": "Custom:PuppetModuleInfo", "Content": [{ "Name": "puppetlabs/aws", "Version": "1.0" }, { "Name": "puppetlabs/dsc", "Version": "2.0" } ] }

自定义清单的 JSON 架构需要 SchemaVersion、TypeName 和 Content 部分,但您可以定义这些部分的信息。

{ "SchemaVersion": "user_defined", "TypeName": "Custom:user_defined", "Content": { "user_defined_attribute1": "user_defined_value1", "user_defined_attribute2": "user_defined_value2", "user_defined_attribute3": "user_defined_value3", "user_defined_attribute4": "user_defined_value4" } }

TypeName 最长为 100 个字符。此外,TypeName 部分必须以 Custom 开头。例如,Custom:PuppetModuleInfo。Custom 和您指定的数据必须以一个大写字母开头。以下示例可能会引起异常:“CUSTOM:RackInformation”、“custom:rackinformation”。

Content 部分包括属性和数据。这些项目不区分大小写。但是,如果您定义了属性 (例如“Vendor”: “DELL”),在自定义清单文件中必须一致地引用此属性。如果您在一个文件中指定“Vendor”: “DELL”(vendor 使用大写字母“V”),在另一个文件中指定“vendor”: “DELL”(vendor 使用小写字母“v”),系统会返回错误。

注意

您必须使用 .json 扩展名保存文件。

创建文件之后,您必须在实例上保存文件。下表说明了自定义清单 JSON 文件必须存储在实例中的哪个位置:

操作系统 路径

Windows

%SystemDrive%\ProgramData\Amazon\SSM\InstanceData\<instance-id>\inventory\custom

Linux

/var/lib/amazon/ssm/<instance-id>/inventory/custom

有关如何使用自定义清单的示例,请参阅使用 EC2 Systems Manager 自定义清单类型获取队列的磁盘利用率