本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
从 GitHub 运行 Python 脚本
本节包含帮助您使用控制台或 GitHub 从 AWS CLI 运行 Python 脚本的过程。
从 GitHub 运行 Python 脚本(控制台)
从 GitHub 运行 Python 脚本
-
通过以下网址打开 AWS Systems Manager 控制台:https://console.amazonaws.cn/systems-manager/
。 -
在导航窗格中,选择Run Command。
-或者-
如果 AWS Systems Manager 主页首先打开,请选择菜单图标 (
) 以打开导航窗格,然后选择 Run Command。
-
选择运行命令。
-
在命令文档列表中,选择 AWS-RunRemoteScript。
-
对于命令参数,执行以下操作:
-
在 Source Type (源类型) 中,选择 GitHub。
-
在 Source Info (源信息) 框中,按以下格式键入访问源所需的信息:
{ "owner": "
owner_name
", "repository": "repository_name
", "branch": "branch_name
", "path": "path_to_document
", "tokenInfo": "{{ssm-secure:SecureString_parameter_name
}}" }以下示例下载一个名为 complex-script 的脚本目录。
{ "owner": "TestUser1", "repository": "SSMTestDocsRepo", "branch": "myBranch", "path": "scripts/python/complex-script", "tokenInfo": "{{ssm-secure:myAccessTokenParam}}" }
注意 仅当您的脚本存储在
master
以外的分支中时,"branch"
才是必需的。要使用存储库中特定提交 中的脚本版本,请使用
commitID
和getOptions
,而不是branch
。 例如:"getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",
-
对于 Command Line (命令行),键入脚本执行的参数。以下是示例。
mainFile.py argument-1 argument-2
此示例运行
mainFile.py
,这将运行complex-script
目录中的其他脚本。 -
(可选)对于 Working Directory (工作目录),键入实例上要在其中下载和运行脚本的目录的名称。
-
(可选)对于Execution Timeout (执行超时),指定脚本命令执行失败之前系统要等待的秒数。
-
-
在 Targets (目标) 部分中,指定标签、手动选择实例或者指定资源组以确定要在其中运行该操作的实例。
注意 如果没有列出您想看到的 Amazon EC2 实例,请参阅排查 Amazon EC2 托管实例可用性的问题以了解故障排除技巧。
-
对于其他参数:
-
对于注释,请输入有关此命令的信息。
-
对于超时 (秒),请指定在整个命令执行失败之前系统等待的秒数。
-
-
对于 Rate control (速率控制):
-
对于并发,请指定要同时运行该命令的实例数或百分比。
注意 如果通过指定应用于托管实例的标记或通过指定 AWS 资源组选择了目标,并且您不确定针对的是多少实例,则可以通过指定百分比来限制可同时运行此文档的实例的数量。
-
对于错误阈值,请指定在一定数量或百分比的实例上失败后何时在其他实例上停止运行该命令。例如,如果您指定三个错误,Systems Manager 将在收到第四个错误时停止发送该命令。仍在处理命令的实例也可能发送错误。
-
-
(可选)对于 Output options (输出选项),要将命令输出保存到文件,请选中 Write command output to an S3 bucket (将命令输出写入 S3 存储桶) 框。在框中输入存储桶和前缀(文件夹)名称。
注意 授予将数据写入 S3 存储桶的能力的 S3 权限是分配给实例的实例配置文件的权限,而不是执行此任务的 IAM 用户的权限。有关更多信息,请参阅 为 Systems Manager 创建 IAM 实例配置文件。此外,如果指定的 S3 存储桶位于不同的 AWS 账户中,请确保与该实例关联的实例配置文件具有写入该存储桶的必要权限。
-
在 SNS 通知部分中,如果您希望发送有关命令执行状态的通知,请选中启用 SNS 通知复选框。
有关为 Run Command 配置 Amazon SNS 通知的更多信息,请参阅使用 Amazon SNS 通知监控 Systems Manager 状态更改。
-
选择 Run。
使用 GitHub 从 AWS CLI 运行 Python 脚本
-
安装并配置 AWS CLI(如果尚未执行该操作)。
有关信息,请参阅安装或升级 AWS 命令行工具。
-
运行以下命令可从 GitHub 下载并运行脚本。
aws ssm send-command --document-name "AWS-RunRemoteScript" --instance-ids "
instance-IDs
" --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"owner_name
\", \"repository\":\"repository_name
\", \"path\": \"path_to_script_or_directory
"}"],"commandLine":["commands_to_run
"]}'以下是示例。
aws ssm send-command --document-name "AWS-RunRemoteScript" --instance-ids "i-02573cafcfEXAMPLE" --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"TestUser1\", \"repository\":\"GitHubTestPublic\", \"path\": \"scripts/python/complex-script\"}"],"commandLine":["mainFile.py argument-1 argument-2 "]}'
此示例下载名为
complex-script
的脚本目录。 条目运行commandLine
,然后运行mainFile.py
目录中的其他脚本。complex-script