2017-11-13 11 views
1

関数appからAzure CosmosDBテーブルに接続しようとしています。 Visual StudioでのサンプルC#プロジェクトから同じ接続を実行しようとするとAzure関数AppをAzure Cosmos DBテーブルに接続しようとするとエラー400が発生する

私はエラー

The remote server returned an error: (400) Bad Request.

を取得しています、それが正常に動作します。

コードスニペット:

string connectionString = ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString;   
CloudStorageAccount storageAccount = CreateStorageAccountFromConnectionString(connectionString); 

CloudTableClient tableClient = storageAccount.CreateCloudTableClient(); 
CloudTable table = tableClient.GetTableReference("People"); 

table.CreateIfNotExists(); 

接続文字列は次のとおりです。

DefaultEndpointsProtocol=https;AccountName=digital-signature-db;AccountKey=XXX==;TableEndpoint= https://digital-signature-db.documents.azure.com

フル・エラー・スタック:

Exception while executing function: Functions.SignPDF Microsoft.Azure.WebJobs.Host.FunctionInvocationException : Exception while executing function: Functions.SignPDF ---> System.AggregateException : One or more errors occurred. ---> The remote server returned an error: (400) Bad Request. ---> The remote server returned an error: (400) Bad Request. at Microsoft.Azure.WebJobs.Script.Description.DotNetFunctionInvoker.GetTaskResult(Task task) at C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script\Description\DotNet\DotNetFunctionInvoker.cs : 453 at Microsoft.Azure.WebJobs.Script.Description.DotNetFunctionInvoker.<>c.b__26_0(Task t) at C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script\Description\DotNet\DotNetFunctionInvoker.cs : 276 at System.Threading.Tasks.ContinuationResultTaskFromTask 1.InnerInvoke() at System.Threading.Tasks.Task.Execute() at async Microsoft.Azure.WebJobs.Script.Description.DotNetFunctionInvoker.InvokeCore(Object[] parameters,FunctionInvocationContext context) at C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script\Description\DotNet\DotNetFunctionInvoker.cs : 276 at async Microsoft.Azure.WebJobs.Script.Description.FunctionInvokerBase.Invoke(Object[] parameters) at C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script\Description\FunctionInvokerBase.cs : 90 at async Microsoft.Azure.WebJobs.Host.Executors.VoidTaskMethodInvoker 2.InvokeAsync[TReflected,TReturnType](TReflected instance,Object[] arguments) at async Microsoft.Azure.WebJobs.Host.Executors.FunctionInvoker`2.InvokeAsync[TReflected,TReturnValue](Object instance,Object[] arguments) at async Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.InvokeAsync(IFunctionInvoker invoker,ParameterHelper parameterHelper,CancellationTokenSource timeoutTokenSource,CancellationTokenSource functionCancellationTokenSource,Boolean throwOnTimeout,TimeSpan timerInterval,IFunctionInstance instance) at async Microsoft.Azure.WebJobs.Host.Ex…

してくださいアドバイス。

+0

ローカルに同じデータベースを接続していますか? – Mikhail

+0

これは機能ポータルでのみ問題があるように見えます。タイマートリガを使用してAzure関数でサンプルを試してみました。これは、Table APIを使用するcosmos dbに接続するためです。 – Baskar

+0

@Mikhail - はい、まったく同じデータベースに接続しています。それはなぜそれが変だとアプリの機能の問題のように見えます。 –

答えて

0

CreateIfNotExistsコールには、WindowsAzure.Storage-PremiumTableへの参照が必要です。コンソールアプリケーションで参照すると、Microsoft.WindowsAzure.Storage.dllがバージョン1.0.9.1に置き換えられます。これはAzure関数ではサポートされていません。この問題についてCosmosDBチームに問題を提起してください。これを追跡する問題がありますhttps://github.com/Azure/azure-webjobs-sdk-script/issues/2026#issuecomment-343910660

+0

詳細な説明と参考に感謝します。 私はそれをもっと早く見たければ、数時間を節約できたと思う。 マイクロソフトは、ポータルでプレミアムストレージを宣伝するのを止めるべきです。 –

関連する問題