2017-05-29 6 views
0

注:私はすでにこれを解決しましたが、とにかくここに投稿していますので、他の人が私よりも素早く答えを見つけることができます:-)Azure関数VS2017プレビューツール - CloudBlockBlobにバインドする方法?

私はAzure関数 "class library"プロジェクト私はVS2015で作成しましたが、私は現在このプロジェクトをVS2017 15.3プレビュー(Azure関数用のVisual Studio 2017ツールを使用)の新しい "Azure関数"プロジェクトタイプに移行しようとしています。 VS2015で

、C#の関数のシグネチャは次のようになります。

public static HttpResponseMessage Run(HttpRequestMessage req, CloudBlockBlob myFile) 

と私のfunction.jsonは次のようになります。VS2017で

{ 
    "bindings": [ 
    { 
     "type": "httpTrigger", 
     "direction": "in", 
     "name": "req", 
     "methods": [ 
     "get" 
     ], 
     "authLevel": "anonymous", 
     "route": "files/{id}/download" 
    }, 
    { 
     "type": "http", 
     "direction": "out", 
     "name": "res" 
    }, 
    { 
     "name": "myFile", 
     "type": "blob", 
     "direction": "inout", 
     "path": "mycontainer/{id}", 
     "connection": "[my connection string]" 
    } 
    ], 
    "disabled": false 
} 

、私の代わりに機能の結合属性を使用する必要があります.jsonなので、私はこれを試した:

public static HttpResponseMessage Run(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "files/{id}/download")] HttpRequestMessage req, 
    [Blob("mycontainer/{id}", FileAccess.Read)] CloudBlockBlob myFile) 

しかし、私はこれを実行しようとすると、私はこのエラーが表示されますメッセージ:

[Function Name]: Microsoft.Azure.WebJobs.Host: Error indexing method '[Function Name]'. Microsoft.Azure.WebJobs.Host: Cannot bind blob to CloudBlockBlob using access Read. 

答えて

0

トリックは私のコードだけで、私はこのように、結合属性にFileAccess.ReadWriteを指定する必要があります(FileAccess.Read)ブロブのプロパティを読み取る必要があるにもかかわらず、次のとおりです。

public static HttpResponseMessage Run(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "files/{id}/download")] HttpRequestMessage req, 
    [Blob("mycontainer/{id}", FileAccess.ReadWrite)] CloudBlockBlob myFile) 

私はfunction.jsonで "inout"にバインド方向を設定しなければならなかったことを思い出したはずです。 FileAccess.ReadWriteは、ICloudBlockBlob、CloudBlockBlobまたはCloudPageBlobの値をバインドするための唯一の有効なFileAccess値です。

関連する問題