amazon-web-services - CDK CustomResource属性错误: Vendor response doesn't contain key in object

标签 amazon-web-services aws-lambda aws-cloudformation

使用 CDK,我有一个 aws 自定义资源,我想从其响应中获取值。不幸的是,我一直收到标题中的错误。 the response 的简化版本资源调用的 lambda 的如下所示:

public class Response {

    private ResponseInfo info;

}

使用此响应的 lambda 处理程序是 here

我在 AWS Lambda 控制台中测试了 lambda 确实返回以下形式的 json:

{
    "info": {...}
}

enter image description here

但是当我尝试使用以下方式获取它(从触发 lambda 的自定义资源)时:

flyway_resource.get_response_field("info")

我收到标题中的错误。我有什么想法吗?如何查看自定义资源的响应实际上是什么样子,以便我可以使用正确的键?

您可以查看自定义资源定义here

最佳答案

自定义资源返回的 json 对象没有“info”字段。我将使用 boto3 创建资源并在控制台中打印响应以查看其外观:

类似这样的事情:

    client = boto3.client('Lambda', region_name='ap-southeast-2')
    response = client.invoke(
       FunctionName='string',
       InvocationType='Event'|'RequestResponse'|'DryRun',
       LogType='None'|'Tail',
       ClientContext='string',
       Payload=b'bytes'|file,
       Qualifier='string'
     )

     print(response) 

您的自定义资源的响应似乎是这样的:

{ “状态代码”:123, '函数错误':'字符串', '日志结果': '字符串', “有效负载”:StreamingBody(), '执行版本': '字符串' }

但您可以通过 boto3 调用来验证它

boto3 文档:https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/lambda.html?highlight=lambda#Lambda.Client.invoke

关于amazon-web-services - CDK CustomResource属性错误: Vendor response doesn't contain key in object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71680494/

相关文章:

amazon-web-services - 如何在 quicksight 上安排自动数据刷新

amazon-web-services - 如何向您的应用程序代码提供 CDK 生成的资源名称?

amazon-web-services - ECS 中 EFS 挂载 "Failed to resolve"

amazon-web-services - kubectl exec/logs on EKS 返回 "remote error: tls: internal error"

amazon-web-services - 仅适用于移动应用程序访问的 Amazon Bucket Policy

php - 使用 PHP 远程 SSL 连接到 AWS( key 对)

sql-server - AWS Lambda 和 SQL Server 集成

amazon-web-services - 无法使用具有 AWSLambdaFullAccess 策略的自定义角色 HR 创建 Lambda 函数

python - 使 Python RETURN 200 响应然后运行代码

amazon-s3 - 我们如何使用 serverless.yml 创建 AWS S3 存储桶并向其中添加文件?