如何使用ruby Aws :: Lambda :: Client SDK响应响应

Andrew Wei

您如何使用AWS ruby​​ SDK模拟lambda响应?

提供的文档仅提供了S3的基本用法示例,这些示例与lambda请求无关。

https://docs.aws.amazon.com/sdkforruby/api/Aws/ClientStubs.html

Andrew Wei

遵循的代码stub_responses,它将带您进入convert_stub似乎有三个可行的方法可以模拟以下响应:ProcHashelse语句。

def convert_stub(operation_name, stub)
  case stub
  when Proc then stub
  when Exception, Class then { error: stub }
  when String then service_error_stub(stub)
  when Hash then http_response_stub(operation_name, stub)
  else { data: stub }
  end
end

资源

在下面的模拟示例中,我具有这样的AWS客户端设置。

aws_credentials = {
    region: 'us-east-1',
    access_key_id: Rails.application.secrets.aws_key,
    secret_access_key: Rails.application.secrets.aws_secret,
    stub_responses: Rails.env.test?
}
LAMBDA_CLIENT = Aws::Lambda::Client.new(aws_credentials)

模拟Aws :: Lambda :: Types :: InvocationResponse

else语句允许您从本质上返回相同的对象。因此,模拟响应的最佳方法是利用在测试环境之外使用的同一类。Aws::Lambda::Types::InvocationResponse

context do
  before do
    LAMBDA_CLIENT.stub_responses(
        :invoke,
        Aws::Lambda::Types::InvocationResponse.new(
            executed_version: "$LATEST",
            function_error: nil,
            log_result: nil,
            payload: StringIO.new("hello".to_json),
            status_code: 200
        )
    )
  end
  it { ... }
end

模拟HTTP响应

遵循使用a的逻辑Hash,我们需要深入了解其http_response_stub作用。

def http_response_stub(operation_name, data)
  if Hash === data && data.keys.sort == [:body, :headers, :status_code]
    { http: hash_to_http_resp(data) }
  else
    { http: data_to_http_resp(operation_name, data) }
  end
end

资源

显然,他们正在寻找Hash具有以下键的[:body, :headers, :status_code]

context do
  before do
    LAMBDA_CLIENT.stub_responses(
        :invoke,
        {
            body: {testing: true}.to_json,
            headers: {},
            status_code: 200
        }
    )
  end

  it { ... }
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AWS Lambda函数如何使用响应来执行计算

来自分类Dev

如何从AWS Lambda函数获取返回响应

来自分类Dev

如何从AWS Lambda上的API获得正确的响应

来自分类Dev

如何使用AWS Lambda中的websocket将响应发送回客户端

来自分类Dev

如何在C#中使用AWS Lambda发送响应卡

来自分类Dev

AWS Lambda“无法封送响应”错误

来自分类Dev

AWS Lambda和DynamoDB空响应

来自分类Dev

AWS Lambda 函数响应类型错误

来自分类Dev

如何从 aws lambda 读取远程图像文件并将该图像文件作为响应返回

来自分类Dev

Lambda如何响应私有VPC的Lambda?

来自分类Dev

AWS API Gateway默认响应和触发AWS Lambda

来自分类Dev

AWS API Gateway默认响应和触发AWS Lambda

来自分类Dev

AWS Lex:发生错误:无效的Lambda响应:针对无效的插槽名称引发了Lambda响应

来自分类Dev

AWS Lambda直接调用发送两个立即响应

来自分类Dev

在aws lambda中完成工作之前,对请求的200 ok响应

来自分类Dev

AWS Kinesis Firehose没有响应Lambda

来自分类Dev

在AWS上使用THIN的Ruby和Rails响应缓慢

来自分类Dev

如何从Apollo Client的useQuery获取响应头

来自分类Dev

AWS Lambda函数如何响应多记录事件有效负载,即Lambda代码每批运行一次还是多次运行?

来自分类Dev

如何优化AWS Lambda?

来自分类Dev

如何优化AWS Lambda?

来自分类Dev

AWS 尝试使用 Lambda

来自分类Dev

AWS API网关+ SQS + Lambda +将响应从Lambda返回到API

来自分类Dev

AWS LAMBDA api网关错误“格式错误的Lambda代理响应”状态错误502

来自分类Dev

AWS API网关+ SQS + Lambda +将响应从Lambda返回到API

来自分类Dev

AWS lambda 函数-“发生错误:收到来自 Lambda 的错误响应:已处理”

来自分类Dev

如何对AWS CLI响应进行分页?

来自分类Dev

SignatureDoesNotMatch使用AWS CloudFormation响应CustomResource

来自分类Dev

如何检查响应代码使用rest-client资源

Related 相关文章

  1. 1

    AWS Lambda函数如何使用响应来执行计算

  2. 2

    如何从AWS Lambda函数获取返回响应

  3. 3

    如何从AWS Lambda上的API获得正确的响应

  4. 4

    如何使用AWS Lambda中的websocket将响应发送回客户端

  5. 5

    如何在C#中使用AWS Lambda发送响应卡

  6. 6

    AWS Lambda“无法封送响应”错误

  7. 7

    AWS Lambda和DynamoDB空响应

  8. 8

    AWS Lambda 函数响应类型错误

  9. 9

    如何从 aws lambda 读取远程图像文件并将该图像文件作为响应返回

  10. 10

    Lambda如何响应私有VPC的Lambda?

  11. 11

    AWS API Gateway默认响应和触发AWS Lambda

  12. 12

    AWS API Gateway默认响应和触发AWS Lambda

  13. 13

    AWS Lex:发生错误:无效的Lambda响应:针对无效的插槽名称引发了Lambda响应

  14. 14

    AWS Lambda直接调用发送两个立即响应

  15. 15

    在aws lambda中完成工作之前,对请求的200 ok响应

  16. 16

    AWS Kinesis Firehose没有响应Lambda

  17. 17

    在AWS上使用THIN的Ruby和Rails响应缓慢

  18. 18

    如何从Apollo Client的useQuery获取响应头

  19. 19

    AWS Lambda函数如何响应多记录事件有效负载,即Lambda代码每批运行一次还是多次运行?

  20. 20

    如何优化AWS Lambda?

  21. 21

    如何优化AWS Lambda?

  22. 22

    AWS 尝试使用 Lambda

  23. 23

    AWS API网关+ SQS + Lambda +将响应从Lambda返回到API

  24. 24

    AWS LAMBDA api网关错误“格式错误的Lambda代理响应”状态错误502

  25. 25

    AWS API网关+ SQS + Lambda +将响应从Lambda返回到API

  26. 26

    AWS lambda 函数-“发生错误:收到来自 Lambda 的错误响应:已处理”

  27. 27

    如何对AWS CLI响应进行分页?

  28. 28

    SignatureDoesNotMatch使用AWS CloudFormation响应CustomResource

  29. 29

    如何检查响应代码使用rest-client资源

热门标签

归档