繁体   English   中英

如何在 lambda 函数中查看上下文变量

[英]How to see context variable in lambda function

我按如下方式设置示例 lambda 函数以检测什么是context 这个函数被 API 网关 hook。

import json

def lambda_handler(event, context):
    return {
        'isBase64Encoded': False,
        'statusCode': 200,
        'headers': {},
        'body': json.dumps(context)
    }

当我从 API 网关发送 GET 请求时,它返回如下

{
  "message": "Internal server error"
}
Mon May 24 07:20:58 UTC 2021 : Lambda execution failed with status 200 due to customer function error: Object of type LambdaContext is not JSON serializable. Lambda request id: 32d4e450-576b-4bd6-abb9-d1bd893077ed
Mon May 24 07:20:58 UTC 2021 : Method completed with status: 502

context不是json格式? 如何在处理程序中查看context

如果有人有意见,请告诉我

谢谢

您可以打印它,看看是否需要。 它会是这样的:

LambdaContext([aws_request_id=7d78a745-bb86-42b8-89f0-389e9bdc3dcfe,log_group_name=/aws/lambda/mldx-devops-v1-TimeLambda-hINHLpDGpaNR,log_stream_name=2022/09/01/[$LATEST]0553dabc81194a57adf2a96775f88d02,function_name=mldx-devops-v1-TimeLambda-hINHLpDGpaNR,memory_limit_in_mb=128,function_version=$LATEST,invoked_function_arn=arn:aws:lambda:eu-west-1:187276065257:function:mldx-devops-v1-TimeLambda-hINHLpDGpaNR,client_context=None,identity=CognitoIdentity([cognito_identity_id=None,cognito_identity_pool_id=None])])

使用此代码打印它:)

def lambda_handler(event: Dict[str, Optional[Any]], context: LambdaContext) -> Dict[str, Optional[Any]]:
print(event)
print('print context variables')
print("context.function_name:", context.function_name)
print("context.function_version:", context.function_version)
print("context.invoked_function_arn:", context.invoked_function_arn)
print("context.memory_limit_in_mb", context.memory_limit_in_mb)
print("context.aws_request_id", context.aws_request_id)
print("context.log_group_name", context.log_group_name)
print("context.log_stream_name", context.log_stream_name)

print("print context.identity variables")
print("context.identity.cognito_identity_id", context.identity.cognito_identity_id)
print("context.identity.cognito_identity_pool_id", context.identity.cognito_identity_pool_id)

print("print context.client_context variables")
print("context.client_context.client.app_package_name", context.client_context.client.app_package_name)
print("context.client_context.client.app_version_name", context.client_context.client.app_version_name)
print("context.client_context.client.app_version_code", context.client_context.client.app_version_code)
print("context.client_context.client.app_title", context.client_context.client.app_title)
print("context.client_context.client.installation_id", context.client_context.client.installation_id)
print("context.client_context.custom", context.client_context.custom)
print("context.client_context.env", context.client_context.env)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM