从远程位置运行 Systems Manager 命令文档 - Amazon Web Services Systems Manager
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

从远程位置运行 Systems Manager 命令文档

您可以运行Amazon Web Services Systems Manager(SSM) 文档,从远程位置使用AWS-RunDocument预定义 SSM 文档。此文档当前支持运行存储在以下位置的 SSM 文档:

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

  • Amazon S3 存储桶

  • Systems Manager

虽然您也可以使用状态管理器或 Automation 运行远程文档,Amazon Web Services Systems Manager,以下过程仅介绍了如何使用Amazon Web Services Systems Manager在 Systems Manager 控制台中运行命令。

注意

AWS-RunDocument可用于仅运行命令类型的 SSM 文档,而不是其他类型(如自动化运行簿)。这些区域有:AWS-RunDocument使用aws:downloadContent插件。有关的更多信息aws:downloadContent插件,请参阅aws:downloadContent

开始前的准备工作

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

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

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

运行远程文档(控制台)

运行远程文档

  1. 打开Amazon Web Services Systems Manager控制台https://console.aws.amazon.com/systems-manager/

  2. 在导航窗格中,选择Run Command

    -或者-

    如果Amazon Web Services Systems Manager首先打开主页,选择菜单图标( ) 打开导航窗格中的,然后选择选择Run Command

  3. 选择运行命令

  4. 文档列表中,选择AWS-RunDocument

  5. Command parameters (命令参数) 中,对于 Source Type (源类型),请选择一个选项。

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

      { "owner": "owner_name", "repository": "repository_name", "path": "path_to_document", "getOptions":"branch:branch_name", "tokenInfo": "{{ssm-secure:secure-string-token}}" }

      例如:

      { "owner":"TestUser", "repository":"GitHubTestExamples", "path":"scripts/python/test-script", "getOptions":"branch:exampleBranch", "tokenInfo":"{{ssm-secure:my-secure-string-token}}" }
      注意

      getOptions是额外的选项,可从分支(而非主分支)或存储库中的特定提交中检索内容。getOptions如果您在主分支中使用最新的提交,则可以省略。这些区域有:branch仅当您的 SSM 文档存储在以外的分支中时,才是必需的。master

      要使用存储库中特定提交 中的 SSM 文档版本,请使用 commitIDgetOptions,而不是 branch。例如:

      "getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",
    • 如果选择 S3,则采用以下格式指定源信息信息:

      {"path":"URL_to_document_in_S3"}

      例如:

      {"path":"https://s3.amazonaws.com/DOC-EXAMPLE-BUCKET/scripts/ruby/mySSMdoc.json"}
    • 如果选择 SSMDocument,则采用以下格式指定源信息信息:

      {"name": "document_name"}

      例如:

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

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

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

    { "action":"Install", "name":"AWSPVDriver" }
  7. 目标部分,通过手动指定标签、手动选择实例或指定资源组来标识您要对其运行此操作的实例。

    注意

    如果未列出您希望看到的 Amazon EC2 实例,请参阅Amazon EC2 托管实例可用性疑难解答以获取故障排除提示。

  8. 对于其他参数

    • 适用于注释下,输入有关此命令的信息。

    • 对于超时 (秒),请指定在整个命令执行失败之前系统等待的秒数。

  9. 适用于速率控制

    • 对于并发,请指定要同时运行该命令的实例数或百分比。

      注意

      如果您通过指定应用于托管实例的标签或指定Amazon资源组,但不确定有多少个实例的目标,随后,可以通过指定百分比来限制可同时运行此文档的实例数量。

    • 对于错误阈值,请指定在一定数量或百分比的实例上失败后何时在其他实例上停止运行该命令。例如,如果您指定三个错误,Systems Manager 将在收到第四个错误时停止发送该命令。仍在处理命令的实例也可能发送错误。

  10. (可选)对于 Output options (输出选项),要将命令输出保存到文件,请选中 Write command output to an S3 bucket (将命令输出写入 S3 存储桶) 框。在框中输入存储桶和前缀(文件夹)名称。

    注意

    授予将数据写入 S3 存储桶的能力的 S3 权限是分配给实例的实例配置文件的权限,而不是执行此任务的 IAM 用户的权限。有关更多信息,请参阅 。为 Systems Manager 创建 IAM 实例配置文件。此外,如果指定的 S3 存储桶位于不同的Amazon Web Services 账户,请确保与该实例关联的实例配置文件具有写入该存储桶的必要权限。

  11. SNS 通知部分,如果希望发送有关命令执行状态的通知,请选择启用 SNS 通知”复选框。

    有关为 Run Command 配置 Amazon SNS 通知的更多信息,请参阅使用 Amazon SNS 通知监控 Systems Manager 状态更改

  12. 选择运行

注意

有关在使用 Run Command 调用脚本时重启服务器和实例的信息,请参阅通过脚本重启托管实例