Amazon EC2 Systems Manager
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

从远程位置运行文档

您可以使用 AWS-RunDocument 预定义的 SSM 文档从远程位置运行 SSM 文档。此文档目前支持以下远程位置:

  • GitHub 存储库 (公有和私有)

  • Amazon S3

  • 保存在 Systems Manager 中的文档

AWS-RunDocument 文档允许您运行 YAML 和 JSON SSM 文档。此文档是目前可用于运行 YAML SSM 文档的唯一方式。

以下过程介绍如何使用 Amazon EC2 控制台和 AWS CLI 运行远程 SSM 文档。这些过程演示了如何使用 Run Command 运行远程文档,但您也可以使用 State Manager 或 Automation 运行远程文档。

开始前的准备工作

必须先完成以下任务才能运行远程文档。

  • 创建 SSM 文档并在远程位置保存该文档。有关更多信息,请参阅 创建 Systems Manager 文档

  • 如果您打算运行存储在私有 GitHub 存储库中的远程文档,则必须为 GitHub 安全访问令牌创建 Systems Manager SecureString 参数。通过 SSH 手动传递令牌无法访问私有 GitHub 存储库中的远程文档。访问令牌必须作为 Systems Manager SecureString 参数传递。有关创建 SecureString 参数的更多信息,请参阅创建 Systems Manager 参数

使用 EC2 控制台运行远程文档

  1. Open the Amazon EC2 console at https://console.amazonaws.cn/ec2/.

  2. 在导航窗格中,选择 Run Command,然后选择 Run a command

  3. Document 列表中,选择 AWS-RunDocument

  4. Select Targets by 部分中,选择相应选项并选择要在其中运行文档的实例。

  5. (可选) 在 Execute on 字段中,指定可同时运行该文档的 Targets 的数量 (例如 10)。或者指定可同时运行该文档的目标数量的百分比 (例如 10%)。

    注意

    如果通过选择 EC2 标签选择了目标,但不确定有多少个实例使用所选标签,则可以通过指定百分比限制可运行此文档的实例数量。

  6. (可选) 在 Stop after 字段中,指定系统在停止向其他实例发送命令之前允许的最大错误数。例如,如果您指定 3,Systems Manager 将在收到第 4 个错误时停止发送命令。仍在处理命令的实例也可能发送错误。

  7. Source Type 列表中,选择一个选项。

    • 如果选择 GitHub,则采用以下格式指定 Source 信息:

      Copy
      {"owner":"owner_name", "repository": "repository_name", "path": "path_to_document", "tokenInfo":"{{ssm-secure:SecureString_parameter_name}}" }

      例如:

      Copy
      {"owner":"TestUser1", "repository": "SSMTestDocsRepo", "path": "SSMDocs/mySSMdoc.yml", "tokenInfo":"{{ssm-secure:myAccessTokenParam}}" }
    • 如果选择 S3,则采用以下格式指定 Source 信息:

      Copy
      {"path":"URL_to_document_in_S3"}

      例如:

      Copy
      {"path":"https://s3.amazonaws.com/aws-executecommand-test/scripts/ruby/mySSMdoc.json"}
    • 如果选择 SSMDocument,则采用以下格式指定 Source 信息:

      Copy
      {"name": "document_name"}

      例如:

      Copy
      {"name": "mySSMdoc"}
  8. Document parameters 字段中,键入远程 SSM 文档的参数。例如,如果运行 AWS-RunPowerShell 文档,则可指定:

    Copy
    {"commands": ["date", "echo \"Hello World\""]}

    如果运行 AWS-ConfigureAWSPack 文档,则可指定:

    Copy
    { "action":"Install", "name":"AWSPVDriver" }
  9. Comments 字段中,键入有关该命令的信息。

  10. Advanced Options 部分中,选择 Write to S3 以便在 Amazon S3 存储桶中存储命令输出。在文本框中键入存储桶和前缀名称。

  11. 选择 Enable SNS notifications 以接收有关命令执行的通知和状态。有关为 Run Command 配置 SNS 通知的更多信息,请参阅 为 Run Command 配置 Amazon SNS 通知

  12. 选择 Run