【问题标题】:Passing a parameter into AWS CLI command将参数传递到 AWS CLI 命令
【发布时间】:2017-07-12 20:27:30
【问题描述】:

我正在尝试使用来自 python 脚本的以下调用在 EC2 实例上设置标签,其中我将变量 instanceId 作为添加标签的资源传递:

subprocess.call('aws ec2 create-tags --resources $instanceId --tags "Key=somekey, Value=someval"')

但我收到此错误:

An error occurred (MissingParameter) when calling the CreateTags operation: The request must contain the parameter resourceIdSet
255

但是,当我打印出 instanceId 时,我看到了正确的实例 ID,因此我传递变量的方式一定有问题。对此有不同的约定吗?

【问题讨论】:

  • 您运行的是旧版本的 AWS CLI 工具吗?运行aws --version查看你安装的版本。
  • 根据文档docs.python.org/2/library/…,您应该使用参数列表调用subprocess.call()

标签: python amazon-web-services amazon-ec2 aws-cli


【解决方案1】:

您在 AWS CLI 命令中的变量 $instanceId 最终将成为一个 shell 变量,并且不会被您的 Python 代码替换。

因此,如果 $instanceId 是 Python 变量,您可能需要执行以下操作:

subprocess.call('aws ec2 create-tags --resources ' + $instanceId  + ' --tags "Key=somekey, Value=someval"')

注意:我不是 Python 开发人员,所以这是在黑暗中尝试。

【讨论】:

    猜你喜欢
    • 2020-11-02
    • 1970-01-01
    • 2020-12-14
    • 2018-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-29
    • 1970-01-01
    相关资源
    最近更新 更多