如何在本地部署和测试在 .Net Core 中创建的 AWS 无服务器应用程序(API 网关)?
How to Deploy and test AWS serverless application (API Gateway) created in .Net Core locally?
我是 AWS server less 编程的新手。我创建了一个示例应用程序。使用 [.Net Core 1.0] 的博客(示例可用 Visual Studio),现在我想在本地部署它并进行测试。我试过 AWS SAM Local 和 LocalStack 但我很困惑,因为没有针对 .Net Core 应用程序的明确解释或步骤。
任何人都可以为我提供在本地部署和执行此应用程序的明确步骤吗?
Amazon 开箱即用的无服务器示例没有提供简单的 "press F5" 方法来 运行 本地代码。
在本地测试代码的最简单方法是使用单元测试创建示例。这些单元测试包括初始化 Functions
class 所需的一切,以便您可以 运行 它。您可以将此代码移动到一个简单的控制台应用程序中,或者创建涵盖您要在本地测试的所有场景的单元测试。
这是项目中的示例单元测试:
public class FunctionTest : IDisposable
{
string TableName { get; }
IAmazonDynamoDB DDBClient { get; }
public FunctionTest()
{
this.TableName = "AWSServerless2-Blogs-" + DateTime.Now.Ticks;
this.DDBClient = new AmazonDynamoDBClient(RegionEndpoint.USWest2);
SetupTableAsync().Wait();
}
[Fact]
public async Task BlogTestAsync()
{
TestLambdaContext context;
APIGatewayProxyRequest request;
APIGatewayProxyResponse response;
Functions functions = new Functions(this.DDBClient, this.TableName);
// Add a new blog post
Blog myBlog = new Blog();
myBlog.Name = "The awesome post";
myBlog.Content = "Content for the awesome blog";
request = new APIGatewayProxyRequest
{
Body = JsonConvert.SerializeObject(myBlog)
};
context = new TestLambdaContext();
response = await functions.AddBlogAsync(request, context);
Assert.Equal(200, response.StatusCode);
我是 AWS server less 编程的新手。我创建了一个示例应用程序。使用 [.Net Core 1.0] 的博客(示例可用 Visual Studio),现在我想在本地部署它并进行测试。我试过 AWS SAM Local 和 LocalStack 但我很困惑,因为没有针对 .Net Core 应用程序的明确解释或步骤。
任何人都可以为我提供在本地部署和执行此应用程序的明确步骤吗?
Amazon 开箱即用的无服务器示例没有提供简单的 "press F5" 方法来 运行 本地代码。
在本地测试代码的最简单方法是使用单元测试创建示例。这些单元测试包括初始化 Functions
class 所需的一切,以便您可以 运行 它。您可以将此代码移动到一个简单的控制台应用程序中,或者创建涵盖您要在本地测试的所有场景的单元测试。
这是项目中的示例单元测试:
public class FunctionTest : IDisposable
{
string TableName { get; }
IAmazonDynamoDB DDBClient { get; }
public FunctionTest()
{
this.TableName = "AWSServerless2-Blogs-" + DateTime.Now.Ticks;
this.DDBClient = new AmazonDynamoDBClient(RegionEndpoint.USWest2);
SetupTableAsync().Wait();
}
[Fact]
public async Task BlogTestAsync()
{
TestLambdaContext context;
APIGatewayProxyRequest request;
APIGatewayProxyResponse response;
Functions functions = new Functions(this.DDBClient, this.TableName);
// Add a new blog post
Blog myBlog = new Blog();
myBlog.Name = "The awesome post";
myBlog.Content = "Content for the awesome blog";
request = new APIGatewayProxyRequest
{
Body = JsonConvert.SerializeObject(myBlog)
};
context = new TestLambdaContext();
response = await functions.AddBlogAsync(request, context);
Assert.Equal(200, response.StatusCode);