如何在本地部署和测试在 .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 LocalLocalStack 但我很困惑,因为没有针对 .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);