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 –

相關問題