AWS Lambda
开发人员指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

Context 对象 (C#)

通过将 ILambdaContext 参数添加到方法中,您可以获取有关 Lambda 函数如何与 AWS Lambda 运行时交互的有用信息。作为回报,AWS Lambda 将提供运行时详细信息,例如与该函数有关的 CloudWatch 日志流或者可调用函数的客户端的 ID,您可以通过 context 对象的属性访问这些信息。

为实现此目的,请使用以下签名创建方法:

Copy
public void Handler(string Input, ILambdaContext context)

context 对象属性有:

  • MemoryLimitInMB:为 Lambda 函数配置的内存限制 (MB)。

  • FunctionName:正在运行的 Lambda 函数的名称。

  • FunctionVersion:正在执行的 Lambda 函数版本。如果别名用于调用函数,FunctionVersion 将为别名指向的版本。

  • InvokedFunctionArn:用于调用此函数的 ARN。它可以是函数 ARN 或别名 ARN。非限定的 ARN 执行 $LATEST 版本,别名执行它指向的函数版本。

  • AwsRequestId:与请求关联的 AWS 请求 ID。这是返回调用 Lambda 函数的客户端的 ID。可以使用该请求 ID 与 AWS support 进行跟进调查。注意:AWS Lambda 重试函数(例如,当 Lambda 函数处理 Kinesis 记录引发异常时)时,请求 ID 保存不变。

  • LogStreamName:特定 Lambda 函数执行的 CloudWatch 日志流名称。如果提供的 IAM 用户没有执行 CloudWatch 操作的权限,则为空。

  • LogGroupName:与调用的 Lambda 函数关联的 CloudWatch 日志组名称。如果提供的 IAM 用户没有执行 CloudWatch 操作的权限,则为空。

  • ClientContext:客户端应用程序和设备的相关信息(通过 AWS 移动软件开发工具包调用时)。它可以为空。客户端上下文提供了客户端信息,如客户端 ID、应用程序名称、版本名称、版本代码和应用程序包名称。

  • Identity:有关 Amazon Cognito 身份提供商的信息(通过 AWS 移动软件开发工具包调用时)。它可以为空。

  • RemainingTime:函数被终止前剩余的执行时间。在创建 Lambda 函数时,您需要设置最大时间限制,到达该时间限制后,AWS Lambda 会终止函数的执行。有关函数剩余执行时间的信息可用于指定接近超时时的函数行为。这是 TimeSpan 域。

  • Logger:与 ILambdaContext 对象关联的 Lambda 记录器。有关更多信息,请参阅 日志记录 (C#)

以下 C# 代码段表示一个简单的处理程序函数,该函数可显示输出参数的值,然后输出一些上下文信息。

Copy
public async Task Handler(ILambdaContext context) { Console.Writeline("Function name: " + context.FunctionName); Console.Writeline("RemainingTime: " + context.RemainingTime); await Task.Delay(TimeSpan.FromSeconds(0.42)); Console.Writeline("RemainingTime after sleep: " + context.RemainingTime); }