0

我是新来的AWS服务器少了编程。我创建了一个示例应用程序。博客(使用Visual Studio提供的样本)使用[.Net Core 1.0],现在我想在本地部署并测试它。我试过AWS SAM本地LocalStack但我很困惑,因为没有明确的解释或步骤的.Net核心应用程序。如何在本地部署和测试在.Net Core中创建的AWS无服务器应用程序(API网关)?

任何人都可以提供明确的步骤来部署和执行本地应用程序?

回答

3

从亚马逊开箱即用的无服务器示例没有提供简单的“按F5”方式在本地运行代码。

在本地测试代码的最简单方法是使用单元测试创​​建示例。这些单元测试包含了初始化Functions类所需的一切,以便您可以运行它。您可以将此代码移到简单的控制台应用程序中,或者创建涵盖您想要在本地测试的所有场景的单元测试。

下面是该项目的样本单元测试:

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); 
+0

谢谢你的答案,但我已经知道如何从Visual Studio测试的API,我想知道的东西是,有没有什么办法来部署无服务器在你的本地环境中应用?正如我所说我已经尝试使用AWS SAM Local和LocalStack。 AWS SAM本地不支持dotnetcore运行时尚,我不知道如何使用dotnetcore locastack,因为没有dotnetcore应用程序的文档。 – JustAProgrammer

+0

说实话,我甚至都不知道AWS SAM Local是一件事情。正如你所说,目前它不支持.NET Core。希望这种支持正在进行中。 SAM本地支持以下AWS运行时间: Node.js的4.3 Node.js的6.10 蟒2.7 蟒3.6 java8 http://docs.aws.amazon.com/lambda/latest/dg/test-sam -local.html –

相关问题