创建复合文档 - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

创建复合文档

复合 Amazon Systems Manager (SSM) 文档是自定义文档,可通过运行一个或多个次要 SSM 文档执行一系列操作。复合文档允许您为常见任务(例如引导软件或域加入实例)创建一组标准 SSM 文档,从而升级基础设施代码。您随后可以在同一个 Amazon Web Services 区域 中跨 Amazon Web Services 账户 共享这些文档,从而减少 SSM 文档的维护工作并确保文档一致性。

例如,您可以创建执行以下操作的复合文档:

  1. 将 SSM Agent 更新到最新版本。

  2. 安装允许列表中的所有修补程序。

  3. 安装防病毒软件。

  4. 从 GitHub 下载脚本并运行这些脚本。

在本例中,您的自定义 SSM 文档包含执行下面这些操作的以下插件:

  1. 可运行 AWS-UpdateSSMAgent 文档的 aws:runDocument 插件,这会将Amazon Systems Manager SSM Agent 更新到最新版本。

  2. 这些区域有:可运行遗留 AWS-ApplyPatchBaseline 文档的 aws:runDocument 插件,这会将安装所有允许列出的修补程序。

  3. 可运行 AWS-InstallApplication 文档的 aws:runDocument 插件,这会安装防病毒软件。

  4. 可从 GitHub 下载脚本并运行这些脚本的 aws:downloadContent 插件。

复合和次要文档可存储在 Systems Manager、GitHub(公有和私有存储库)或 Amazon S3 中。可创建 JSON 或 YAML 格式的复合文档和次要文档。

注意

复合文档只能运行三个文档的最大文档深度。这意味着复合文档可以调用子文档;该子文档可调用最后一个文档。

创建复合文档

要创建复合文档,请在自定义 SSM 文档中添加 aws:runDocument 插件并指定必需的输入。下面是可执行以下操作的复合文档示例:

  1. 运行 aws:downloadContent 插件可从 GitHub 公有存储库将 SSM 文档下载到名为 bootstrap 的本地目录。SSM 文档称为 StateManagerBootstrap.yml (YAML 文档)。

  2. 运行 aws:runDocument 插件可运行 StateManagerBootstrap.yml 文档。未指定任何参数。

  3. 运行 aws:runDocument 插件以运行 AWS-ConfigureDocker pre-defined SSM 文档。指定的参数会在实例上安装 Docker。

{ "schemaVersion": "2.2", "description": "My composite document for bootstrapping software and installing Docker.", "parameters": { }, "mainSteps": [ { "action": "aws:downloadContent", "name": "downloadContent", "inputs": { "sourceType": "GitHub", "sourceInfo": "{\"owner\":\"TestUser1\",\"repository\":\"TestPublic\", \"path\":\"documents/bootstrap/StateManagerBootstrap.yml\"}", "destinationPath": "bootstrap" } }, { "action": "aws:runDocument", "name": "runDocument", "inputs": { "documentType": "LocalPath", "documentPath": "bootstrap", "documentParameters": "{}" } }, { "action": "aws:runDocument", "name": "configureDocker", "inputs": { "documentType": "SSMDocument", "documentPath": "AWS-ConfigureDocker", "documentParameters": "{\"action\":\"Install\"}" } } ] }
更多信息