2017-09-04 27 views
2

我正在嘗試Azure功能應用程序。如何解決片狀Azure功能應用程序行爲?

以下與打開天氣地圖教程的例子中的第一個,停止我用log.WriteLine(),其正確地扔一個編譯錯誤後工作。我改爲log.Info(),並一直抱怨TraceWriter不包含WriteLine的定義。

一個冗長的排查會議結束後,我創建了一個新的功能,在複製一個破碎的所有內容,並立即工作。

創建一個新的功能,像以前一樣,並開始在更改Run()方法,並運行此功能可得:

「您正在尋找已被刪除的資源,有其名稱 改變,或者暫時不可用。「

銘記,功能網址是基於默認密鑰創建功能時Azure的生成:創建//.azurewebsites.net/api/WeatherWhereYouAre碼= my1really2RAndom3defauLT4Key5from6Azure ==

:HTTPS?另一個功能,從默認的「Hello天青」的樣品,沒有變化和它產生一個500錯誤有:

「異常而執行功能:Functions.HttpTriggerCSharp2 - >發生 一個或多個錯誤 - >異常綁定參數'req' - > 輸入字符串的格式不正確。「

這是project.json文件的內容:

{ 
    "frameworks": { 
     "net46": { 
      "dependencies": { 
       "Microsoft.IdentityModel.Clients.ActiveDirectory": "3.16.0", 
       "Microsoft.Azure.KeyVault": "2.3.2", 
       "Microsoft.AspNet.WebApi.Client": "5.2.3" 
      } 
     } 
    } 
} 

而run.csx:

using System.Net; 

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log) 
{ 
    log.Info("C# HTTP trigger function processed a request."); 

    // parse query parameter 
    string name = req.GetQueryNameValuePairs() 
     .FirstOrDefault(q => string.Compare(q.Key, "name", true) == 0) 
     .Value; 

    // Get request body 
    dynamic data = await req.Content.ReadAsAsync<object>(); 

    // Set name to query string or body data 
    name = name ?? data?.name; 

    return name == null 
     ? req.CreateResponse(HttpStatusCode.BadRequest, "Please pass a name on the query string or in the request body") 
     : req.CreateResponse(HttpStatusCode.OK, "Hello " + name); 
} 

EDIT

Completely inconsistent behaviour 在上述圖像請注意,這是httpTriggerFSharp1,但例外是Ht tpTriggerCSharp2(這是唯一可行的!)

有沒有一種方法,我可以適當地解決這些?

+0

有時,您必須在部署後手動重新啓動功能應用程序,才能正確地重新加載新的二進制文件。這真的很煩人,看起來你可能正在經歷同樣的事情。 –

回答

1

爲C#默認HttpTrigger模板,你可以把它叫做如下:

Get https://brucefunapp.azurewebsites.net/api/HttpTriggerCSharp3?name=bruce&code=ItDhLMxwDYmTvMTYzVbbALtL5GEcmaL5DlzSaD4FRIuFdh17ZkY71g== 

Or 

Post https://brucefunapp.azurewebsites.net/api/HttpTriggerCSharp3?code=ItDhLMxwDYmTvMTYzVbbALtL5GEcmaL5DlzSaD4FRIuFdh17ZkY71g== 
Content-type: application/json 
{"name": "bruce"} 

有關Azure的功能C#腳本的詳細信息,你可以參考here

有沒有一種方法,我可以適當地解決這些?

根據我的理解,您可以利用Precompiled functions並使用Visual Studio 2017 Tools for Azure Functions來創建,本地調試和發佈到Azure。

+0

我知道如何調用這些函數。這只是一些工作,有些不會編譯,即使使用相同的代碼。創建一個新功能,點擊運行,一些成功,相同的步驟,一些失敗。他們只是片狀... – reckface

+0

我現在還沒有遇到這種行爲。我假設你可以使用預編譯函數並在本地開發你的函數應用程序,然後在本地測試後部署到天藍色。此外,您可以添加您的反饋並報告此行爲[此處](https://feedback.azure.com/forums/355860-azure-functions)。 –

相關問題