Amazon.Lambda.Core 2.2.0
前缀已保留
dotnet add package Amazon.Lambda.Core --version 2.2.0
NuGet\Install-Package Amazon.Lambda.Core -Version 2.2.0
<PackageReference Include="Amazon.Lambda.Core" Version="2.2.0" />
paket add Amazon.Lambda.Core --version 2.2.0
#r "nuget: Amazon.Lambda.Core, 2.2.0"
// Install Amazon.Lambda.Core as a Cake Addin #addin nuget:?package=Amazon.Lambda.Core&version=2.2.0 // Install Amazon.Lambda.Core as a Cake Tool #tool nuget:?package=Amazon.Lambda.Core&version=2.2.0
Amazon.Lambda.Core
此包包含可在 AWS Lambda 平台上运行 .NET 代码时有用的接口和类。
ILambdaContext
可以使用 Amazon.Lambda.Core.ILambdaContext 接口在处理函数中使用,以访问关于当前执行的详细信息,例如当前函数的名称、内存限制、剩余执行时间以及日志。
以下是如何在处理函数中使用此接口的一个示例。函数执行一个简单的 ToUpper 内容转换,并将一些上下文数据写入到控制台。
public string ToUpper(string input, ILambdaContext context)
{
Console.WriteLine("Function name: " + context.FunctionName);
Console.WriteLine("Max mem allocated: " + context.MemoryLimitInMB);
Console.WriteLine("Time remaining: " + context.RemainingTime);
Console.WriteLine("CloudWatch log stream name: " + context.LogStreamName);
Console.WriteLine("CloudWatch log group name: " + context.LogGroupName);
return input?.ToUpper();
}
此接口的实例通过 Items
属性和键 "LAMBDA_CONTEXT / LambdaContext"附加到任何 ControllerBase.Request.HttpContext
实例。
下面是如何在控制器方法中使用此接口的一个示例。
[ApiController]
public class TestController : ControllerBase
{
[HttpGet("/[controller]")]
public IActionResult Get()
{
Response.Headers.Add("Access-Control-Allow-Origin", "*"); // NOTE: Should be configured via app.UseCors in Startup.cs
var context = (ILambdaContext)Request.HttpContext.Items[APIGatewayProxyFunction.LAMBDA_CONTEXT];
var tmp = new
{
context.AwsRequestId,
context.FunctionName,
context.MemoryLimitInMB,
context.LogStreamName,
context.LogGroupName
};
return new OkObjectResult(tmp);
}
}
以下几节描述了通过 ILambdaContext
可以访问的各种其他接口。
IClientContext
Amazon.Lambda.Core.IClientContext
接口提供有关客户端应用程序和设备的信息,当 Lambda 函数通过 AWS Mobile SDK 被调用时。这包括环境信息,例如设备的品牌和型号、关于应用程序的信息,以及用户自定义的键值对,描述了此应用程序的安装。该接口位于 ILambdaContext.ClientContext
之下。
IClientApplication
Amazon.Lambda.Core.IClientApplication
接口提供有关客户端应用程序的信息,当 Lambda 函数通过 AWS Mobile SDK 被调用时。这包括应用标题、其版本等。该接口可以在 ILambdaContext.ClientContext.Client
下找到。
ICognitoIdentity
Amazon.Lambda.Core.ICognitoIdentity
接口提供通过 AWS Mobile SDK 被调用时的 Amazon Cognito 身份提供者的信息。这包括 Amazon Cognito IdentityId 和 IdentityPoolId。该接口可以在 ILambdaContext.Identity
下找到。
ILambdaLogger
Amazon.Lambda.Core.ILambdaLogger
接口允许您的函数将数据记录到 CloudWatch。该接口定义了 Log
和 LogLine
方法。这两个方法都接受一个字符串,并在事件大小在允许的范围内时,产生一个或没有行终止符的 CloudWatch Logs 事件。
以下是如何在处理函数中使用该接口的示例。该函数执行一个简单的 ToUpper 内容转换,同时记录上下文数据。
public string ToUpper(string input, ILambdaContext context)
{
context.Logger.Log("Function name: " + context.FunctionName);
context.Logger.Log("Max mem allocated: " + context.MemoryLimitInMB);
context.Logger.Log("Time remaining: " + context.RemainingTime);
return input?.ToUpper();
}
ILambdaSerializer
Amazon.Lambda.Core.ILambdaSerializer
接口允许您实现自己的序列化程序以在任意类型和 Lambda 流之间进行转换。
默认情况下,Lambda 函数只能使用 Stream 类型作为输入或输出。要使用其他类型,您可以编写自己的实现 ILambdaSerializer 的序列化程序,或者使用 Amazon.Lambda.Serialization.Json
包来序列化和反序列化 JSON 数据。
有关 ILambdaSerializer
的示例实现,请参阅 Amazon.Lambda.Serialization.Json.JsonSerializer
类。
LambdaSerializerAttribute
Amazon.Lambda.Core.LambdaSerializerAttribute
是一个属性,它用于指示当将 .NET 类型转换为 Lambda 支持的类型时,Lambda 容器应使用哪个序列化程序。此属性可以位于程序集或处理方法上。如果两者都指定,则方法属性具有优先级。
以下是设置该属性在程序集上的示例。
[assembly: Amazon.Lambda.Core.LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))]
以下是方法如何应用于处理方法。
[LambdaSerializer(typeof(XmlSerializer))]
public Response CustomSerializerMethod(Request input)
{
...
}
产品 | 版本 兼容的和额外的目标框架版本。 |
---|---|
.NET | net5.0 已计算。 net5.0-windows 已计算。 net6.0 兼容。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 兼容。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。 |
.NET Core | netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。 |
.NET Standard | netstandard2.0 兼容。 netstandard2.1 已计算。 |
.NET Framework | net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。 |
MonoAndroid | monoandroid 已计算。 |
MonoMac | monomac 已计算。 |
MonoTouch | monotouch 已计算。 |
Tizen | tizen40 已计算。 tizen60 已计算。 |
Xamarin.iOS | xamarinios 已计算。 |
Xamarin.Mac | xamarinmac 已计算。 |
Xamarin.TVOS | xamarintvos 已计算。 |
Xamarin.WatchOS | xamarinwatchos 已计算。 |
-
.NETStandard 2.0
- 无依赖。
-
net6.0
- 无依赖。
-
net8.0
- 无依赖。
NuGet 包 (151)
显示对 Amazon.Lambda.Core 依赖的前 5 个 NuGet 包
包 | 下载 |
---|---|
Amazon.Lambda.Serialization.SystemTextJson Amazon Lambda .NET Core 支持 - 使用 System.Text.Json 序列化.Json。 |
|
Amazon.Lambda.Serialization.Json Amazon Lambda .NET Core 支持 - 序列化.Json 包。 |
|
Amazon.Lambda.Logging.AspNetCore Amazon Lambda .NET Core 支持 - 记录 ASP.NET Core 包。 |
|
Amazon.Lambda.AspNetCoreServer Amazon.Lambda.AspNetCoreServer使得运行ASP.NET Core Web API应用程序作为AWS Lambda函数变得更加简单。 |
|
Amazon.Lambda.TestUtilities Amazon.Lambda.TestUtilties包括Amazon.Lambda.Core中定义的接口的存根实现和辅助方法。 |
GitHub 仓库 (25)
显示依赖Amazon.Lambda.Core的GitHub热门前5个仓库
仓库 | Stars |
---|---|
lambci/docker-lambda
Docker镜像和测试运行器,用于重现AWS Lambda的现场环境
|
|
mongodb/mongo-csharp-driver
官方C# .NET MongoDB驱动程序
|
|
aws/aws-sdk-net
官方AWS SDK for .NET。有关AWS SDK for .NET的更多信息,请参阅我们的网站
|
|
aws/aws-lambda-dotnet
库、示例和工具,帮助.NET Core开发者开发AWS Lambda函数。
|
|
awslabs/aws-apigateway-lambda-authorizer-blueprints
用于API网关的基于Lambda的自定义Authorizers的蓝图和示例。
|