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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

创建复合文档

A复合键 Amazon Web Services Systems Manager(SSM) 文档是自定义文档,可通过运行一个或多个次要 SSM 文档执行一系列操作。复合文档升级代码基础设施通过使您能够为常规任务创建一组标准的 SSM 文档,从而完成引导启动软件或域连接实例等常见任务。然后,您可以将这些文档共享到Amazon Web Services 账户在相同的Amazon Web Services 区域来减少 SSM 文档维护并确保一致性。

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

  1. 将 SSM 代理更新到最新版本。

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

  3. 安装防病毒软件。

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

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

  1. 这些区域有:aws:runDocument插件来运行AWS-UpdateSSMAgent文档,该文档更新Amazon Web Services Systems ManagerSSM 代理到最新版本。

  2. 这些区域有:aws:runDocument插件来运行传统AWS-ApplyPatchBaseline文档,这会安装已列入白名单的所有补丁。

  3. 这些区域有:aws:runDocument插件来运行AWS-InstallApplication文档,这会安装防病毒软件。

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

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

注意

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

创建复合文档

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

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

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

  3. 运行aws:runDocument插件来运行AWS-ConfigureDocker pre-definedSSM 文档。指定的参数会在实例上安装 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\"}" } } ] }