【问题标题】:Q: AWS Lambda boto3 iot delete_job not implemented?问:AWS Lambda boto3 iot delete_job 未实施?
【发布时间】:2018-11-17 19:09:59
【问题描述】:

boto3 文档描述了删除作业的功能。见:https://boto3.readthedocs.io/en/latest/reference/services/iot.html#IoT.Client.delete_job

我写了一个 Lambda,可以成功地 create_job、cancel_job 和 list_job_executions_for_thing。 delete_job 函数不起作用。

使用 boto3 文档中的示例:

client=boto3.client('iot')
    response = client.delete_job(
    jobId='Upgrade00003',
    force=True
)

给出以下错误:

{
  "errorMessage": "'IoT' object has no attribute 'delete_job'",
  "errorType": "AttributeError",
  "stackTrace": [
    [
      "/var/task/lambda_function.py",
      162,
      "lambda_handler",
      "response = client.delete_job("
    ],
    [
      "/var/runtime/botocore/client.py",
      555,
      "__getattr__",
      "self.__class__.__name__, item)"
    ]
  ]
}

“iot:DeleteJob”也不会作为选项显示在 IAM 角色权限中。

delete_job boto3 功能不是 AWS 实现的吗?

【问题讨论】:

    标签: python-3.x amazon-web-services aws-lambda boto3 aws-iot


    【解决方案1】:

    我试过了,同样的错误,但后来升级了boto3

    pip install boto3 --upgrade
    

    生成的版本是:

    Successfully installed boto3-1.7.34 botocore-1.10.34
    

    delete_job() 命令现在可以使用了。

    【讨论】:

    • 可惜这个项目是AWS Lambda,所以我觉得不能升级AWS提供的boto3版本。
    • 如果需要,您可以将其打包到您的代码中。
    • 我刚刚检查过,Lambda 中的默认 boto3 版本是:1.7.14。我将使用 Lambda 代码加载 1.7.34。
    【解决方案2】:

    向 Lambda 代码添加更新的 boto3 启用了 delete_job(),但不幸的是,该包现在太大了,无法支持内联编辑。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-22
      • 2018-09-23
      • 1970-01-01
      • 2023-04-06
      • 2017-02-22
      • 2017-09-02
      • 2016-02-07
      • 2017-11-28
      相关资源
      最近更新 更多