use*_*227 5 amazon-web-services aws-cloudformation aws-lambda
使用 CDK,我有一个 aws 自定义资源,我想从其响应中获取值。不幸的是,我一直收到标题中的错误。下面是资源调用的 lambda响应的简化版本:
public class Response {
private ResponseInfo info;
}
Run Code Online (Sandbox Code Playgroud)
使用此响应的 lambda 处理程序位于此处
我已经在 AWS Lambda 控制台中测试了 lambda 确实返回以下形式的 json:
{
"info": {...}
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用以下命令获取它(从触发 lambda 的自定义资源):
flyway_resource.get_response_field("info")
Run Code Online (Sandbox Code Playgroud)
我收到标题中的错误。我有什么想法吗?如何查看自定义资源的响应实际上是什么样子,以便我可以使用正确的键?
您可以在此处查看自定义资源定义
自定义资源返回的 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)
Run Code Online (Sandbox Code Playgroud)
您的自定义资源的响应似乎是这样的:
{ 'StatusCode': 123, 'FunctionError': 'string', 'LogResult': 'string', 'Payload': StreamingBody(), 'ExecutedVersion': 'string' }
但你可以通过 boto3 调用来验证它
| 归档时间: |
|
| 查看次数: |
4306 次 |
| 最近记录: |