有没有办法检查 ssm send_command 是否正常运行?

2023-11-24

我目前正在尝试使用 python 和 boto 在我的 ec2 实例上远程运行脚本,但我无法判断我是否调用send_command工作正常。截至目前我的代码看起来像

ec2 = boto3.client('ssm',region_name='us-east-2', aws_access_key_id='XXXXXXXXX',aws_secret_access_key='XXXXXXXXXXXXXXXXXXX')
a = ec2.send_command(InstanceIds=ids, DocumentName='AWS-RunShellScript', Comment='abcdabcd', Parameters={"commands":["mkdir hello"]})

我想做的就是创建一个新目录,然后通过 ssh 进入我的实例,看看它是否存在。我已经运行这个脚本几次了,但一点运气都没有,是否有我遗漏的东西,或者是否有更好的方法来检查是否send_command通话正常吗?


是的,实际上有很多方法可以检查命令是否有效。

如果我们运行以下命令:

ssm_response = ec2.send_command(InstanceIds=[instance_id],
                                 DocumentName='AWS-RunShellScript',
                                 Parameters={"commands": ["cd ~ && mkdir hello && ls -lart"]})

的回归send_command是一个字典,其中包含命令的 id。可以按如下方式检索此 id:

command_id = ssm_response['Command']['CommandId']

我们需要这个 id,因为预计该命令将运行更长的时间并且send_command不会等到命令终止。

为了获取命令的状态,我们可以使用get_command_invocation如下:

command_invocation_result = ec2.get_command_invocation(CommandId=command_id, InstanceId=instance_id)

该函数的结果也是一个字典,我们可以从中检索有关该命令的大量信息。

command_invocation_result['Status'] ## Returns the status of the execution of the command
command_invocation_result['StatusDetails'] ## Returns more information about the execution status

我们还可以获得命令的输出和命令的错误输出:

command_invocation_result['StandardOutputContent']
command_invocation_result['StandardErrorContent']

请注意,在命令中我正在执行ls -lart可以从其中检索输出StandardOutputContent.

文档为send_command and get_invocation_command: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ssm.html

此外,我们可以进入 AWS 控制台 -> Systems Manager -> Run Command,选择命令历史记录,我们还应该获得有关已执行命令的一些信息:

enter image description here

最后但并非最不重要的一点是,为了成功运行命令,EC2 实例需要具有 SSM 的 IAM 角色:https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-rc-setting-up.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法检查 ssm send_command 是否正常运行? 的相关文章

随机推荐

  • C++ 将字符串转换为十六进制[重复]

    这个问题在这里已经有答案了 可能的重复 C 将十六进制字符串转换为有符号整数 我已经在谷歌上搜索过 但没有找到任何帮助 所以这是我的问题 我有已经包含十六进制代码的字符串 例如 string s1 5f0066 我想将此字符串转换为十六进制
  • Tablesorter zebra 在排序之前不会条纹

    我有我的桌子 它们很棒 我可以对它们进行排序 而且效果非常好 只是在我第一次对它们进行排序之前 它们不会进行斑马条纹 我的理解是 一旦表排序器初始化 它们就会被条带化 不是这样吗 这是来自此处的 tablesorter v 2 10 最新版
  • Graphics.MeasureCharacterRanges 给出错误的尺寸计算

    我正在尝试将一些文本渲染到 Web 表单应用程序中图像的特定部分 文本将由用户输入 因此我想改变字体大小以确保它适合边界框 我的代码在概念验证实现上做得很好 但我现在正在针对设计器的资产进行尝试 这些资产更大 并且我得到了一些奇怪的结果 我
  • Edittext 行号和当前行光标位置。

    现在我正在开发一个 Android 应用程序 我创建了一个具有功能的自定义键盘 我正在使用 edittext 来显示输入的文本 编辑文本可能有 n 行 现在我的问题是我的键盘上有一个向上按钮 所以如果我单击向上按钮 那么我必须转到前几行的相
  • Flask-SQLAlchemy:SQLALCHEMY_ENGINE_OPTIONS 设置不正确

    我刚刚将我的项目 Flask SQLAlchemy 版本更新到最新版本 v2 4 由于某些 SQL Alchemy 配置参数已被弃用 我现在遵循文档并将 SQLALCHEMY ENGINE OPTIONS 作为字典添加到我的配置类中 但是
  • git 如何跨提交树将 blob 与文件进行匹配?

    Git 书的第 3 1 章明确指出只有暂存文件才能作为 blob 存储在提交树中 如果像提交对象一样 Blob 获得对其内容唯一的哈希 ID 那么 Git 如何管理跨提交跟踪 Blob 和文件之间的对应关系 不同提交中相同文件 blob 的
  • 编写“fib”并行运行:-N2 更慢?

    我正在学习 Haskell 并尝试编写并行执行的代码 但 Haskell 总是按顺序运行它 当我执行时 N2运行时标志 与省略此标志相比 执行需要更多时间 这是代码 import Control Parallel import Contro
  • 在本地计算机上创建 Sql Server 备份

    我正在使用在本地计算机上运行的 SQL Server Management Studio 我可以登录到远程盒子 数据库引擎 并使用 Studio 创建数据库备份 并将其保存到远程设备上的驱动器中 如何将备份保存到本地计算机上的驱动器上 Se
  • 如何在 PHP 中将两个字符串组合在一起?

    我实际上不知道如何描述我想要的 但我会告诉你 例如 data1 the color is data2 red 我应该做什么 或处理 所以 result 是以下组合 data1 and data2 期望的结果 result the color
  • Rails 5 - Turbolinks 5,一些 JS 未在页面渲染上加载

    我有一个 Rails 应用程序 最近更新为5 0 0 RC1 大部分过渡都很顺利 但我在使用新的 Turbolinks 时遇到了一些麻烦 例如 在我的应用程序中 我使用这个 gem gem chosen rails My applicati
  • 审计日志策略

    我正在尝试确定应用程序中审计日志记录的最佳方法 日志的主要原因是报告事件 更改 的顺序 我有一个对象层次结构 当该层次结构的任何部分发生变化时 我需要在稍后的日期创建报告 我认为我有三个选择 每个表都有一个日志 因此匹配对象的层次结构 然后
  • 为什么我们需要 Java 中的接口?

    在Java中 我们使用接口来实现多重继承 这是接口的唯一用途吗 如果是的话 Java中接口的主要用途是什么 为什么我们需要 Java 中的接口 我想说主要用途是多态性 或者对多个不同对象执行相同操作的能力 例如 如果不同的对象都实现相同的接
  • 如何知道字符串的大小(以字节为单位)?

    我想知道我是否可以知道一个字节有多长string在C 中 有人知道吗 您可以使用 ASCII 等编码来获取每个字节的字符System Text Encoding class 或者试试这个 System Text ASCIIEncoding
  • 使用 ggplot 绘制 SpatialPolygonDataFrame

    我有一个大伦敦地区的形状文件 我用readShapePoly函数从maptools包将其加载到 R 中作为SpatialPolygonDataFrame 我想绘制这些多边形 我已经通过使用基本功能完成了plotR 中的函数 输出如下图所示
  • VS2005 Winforms Designer异常屏幕和IE8

    自从我安装了 Internet Explorer V8 以来 我的 Winforms Designer 异常屏幕 WSOD 似乎已损坏 之前我会得到带有描述的错误的红色文本 今天我得到这个 WSOD 损坏 http faxt com ima
  • 如何在 Javascript 中获取对象在页面上的绝对位置? [复制]

    这个问题在这里已经有答案了 我想在 Javascript 中获取页面上对象的绝对 x y 位置 我怎样才能做到这一点 I tried obj offsetTop and obj offsetLeft 但这些仅给出相对于父元素的位置 我想我可
  • 全屏通知

    我想创建一个全屏通知 我使用以下代码实现了通知 我需要进行哪些更改才能使其成为全屏通知 private void showNotification String data Intent i new Intent this MapsActiv
  • jQuery 中方法链的缺点和优点是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 jQuery 中方法链的缺
  • 如何将PostgreSQL 9.4的jsonb类型转换为float

    我正在尝试以下查询 SELECT json data gt position gt lat 1 0 AS lat FROM updates LIMIT 5 1 0只是为了强制转换为浮点数 我的实际查询要复杂得多 这个查询只是问题的测试用例
  • 有没有办法检查 ssm send_command 是否正常运行?

    我目前正在尝试使用 python 和 boto 在我的 ec2 实例上远程运行脚本 但我无法判断我是否调用send command工作正常 截至目前我的代码看起来像 ec2 boto3 client ssm region name us e