【问题标题】:Running databrew.describe_job_run() from inside a Lambda does not work从 Lambda 内部运行 databrew.describe_job_run() 不起作用
【发布时间】:2021-06-16 02:42:51
【问题描述】:

我有一个 Lambda,它使用 boto3 客户端轮询 DataBrew 作业的状态。代码 - 如此处所写 - 在我的本地环境中运行良好。当我将它放入 Lambda 函数时,出现错误:

[ERROR] AttributeError: 'GlueDataBrew' object has no attribute 'describe_job_run'

这是Boto3 documentation中的语法:

client.describe_job_run(
    Name='string',
    RunId='string')

这是我的代码:

import boto3

def get_brewjob_status(jobName, jobRunId):
    brew = boto3.client('databrew')

    try:
        jobResponse = brew.describe_job_run(Name=jobName, RunId=jobRunId)
        status = jobResponse['State']
        
    except Exception as e:
        status='FAILED'
        print('Unable to get job status')
        raise(e)

    return {
        'jobStatus':status
    }

def lambda_handler(event, context):
    
    jobName=event['jobName']
    jobRunId=event['jobRunId']
    response=get_brewjob_status(jobName, jobRunId)
    
    return response

我正在使用 boto3 的 Lambda 运行时版本。 jobName 和 jobRunId 变量是从 Step Function 传递的字符串,但我也尝试将它们硬编码到 Lambda 中以检查错误,并且得到相同的结果。我已经尝试在运行时 Python3.7 和 Python3.8 版本上运行它。我也确信(并仔细检查过)IAM 权限允许 Lambda 访问 DataBrew。感谢您的任何想法!

【问题讨论】:

    标签: aws-lambda boto3 aws-glue


    【解决方案1】:

    解决了我自己的问题。 boto3 运行时和 databrew 一定存在某种冲突 - 可能还没有更新为包含 databrew?我创建了一个 .zip 部署包,它运行良好。两天前就应该这样做了……

    【讨论】:

      猜你喜欢
      • 2012-08-11
      • 2013-10-27
      • 2013-07-19
      • 1970-01-01
      • 2017-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-07
      相关资源
      最近更新 更多