【问题标题】:Mock AWS Glue job Unit test case模拟 AWS Glue 作业单元测试用例
【发布时间】:2020-05-09 14:30:32
【问题描述】:

在编写 python 模拟单元测试用例以使用 lambda 触发 AWS Glue 作业时,我需要帮助。请帮我。下面是示例代码

# Set up logging
 import json
 import os
 import logging
 logger = logging.getLogger()
 logger.setLevel(logging.INFO)

 # Import Boto 3 for AWS Glue
 import boto3
 client = boto3.client('glue')

 # Variables for the job: 
 glueJobName = "MyTestJob"

 # Define Lambda function
 def lambda_handler(event, context):
  logger.info('## TRIGGERED BY EVENT: ')

  logger.info(event['detail'])
  response = 
  client.start_job_run(JobName = glueJobName)
  logger.info('## STARTED GLUE JOB: ' + glueJobName)
  logger.info('## GLUE JOB RUN ID: ' + response['JobRunId'])
  return response

请帮忙。

【问题讨论】:

  • 您能否澄清一下,您需要模拟 client.start_job_run(JobName = glueJobName) 还是触发?
  • 到目前为止您尝试过什么?您的测试用例现在看起来如何?
  • 是的@Farhad 我需要模拟client.start_job_run(JobName = glueJobName)。

标签: python amazon-web-services unit-testing aws-glue moto


【解决方案1】:

以下是类似问题的答案:https://stackoverflow.com/a/61480045/11305581

简而言之,您需要从 boto3 客户端模拟低级 API 响应,或者使用 moto 包(如果该功能已在那里实现)。

【讨论】:

  • 在 moto 包中创建作业和 AWS Glue 功能的 start_job_run 未实现。 github.com/spulec/moto/blob/master/moto/glue/models.py 。请提供一些示例代码以尝试模拟低级 API 响应。
  • 能否请您根据我的代码修改并分享sn-p。无法从 sn-p 中理解。
猜你喜欢
  • 2016-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-19
  • 2018-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多