0

ImageResizer exampleに基づく単純な Azure Function を構築しようとしていますが、Microsoft Cognitive Server Computer Vision APIを使用してサイズ変更を行います。

Azure 関数に移植した Computer Vision API の作業コードがあります。

すべて正常に動作しているように見えます (エラーはありません) が、出力 BLOB が保存されたり、ストレージ コンテナーに表示されたりすることはありません。作業するエラーがないため、何が間違っているのかわかりません。

私のCSX(C#関数コード)は次のとおりです

using System;
using System.Text;
using System.Net.Http;
using System.Net.Http.Headers;

public static void Run(Stream original, Stream thumb, TraceWriter log)
{
    //log.Verbose($"C# Blob trigger function processed: {myBlob}. Dimensions");
    string _apiKey = "PutYourComputerVisionApiKeyHere";
    string _apiUrlBase = "https://api.projectoxford.ai/vision/v1.0/generateThumbnail";
    string width = "100";
    string height = "100";
    bool smartcropping = true;

    using (var httpClient = new HttpClient())
    {
        //setup HttpClient
        httpClient.BaseAddress = new Uri(_apiUrlBase);
        httpClient.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", _apiKey);

        //setup data object
        HttpContent content = new StreamContent(original);
        content.Headers.ContentType = new MediaTypeWithQualityHeaderValue("application/octet-stream");

        // Request parameters
        var uri = $"{_apiUrlBase}?width={width}&height={height}&smartCropping={smartcropping}";

        //make request
        var response = httpClient.PostAsync(uri, content).Result;

        //log result
        log.Verbose($"Response: IsSucess={response.IsSuccessStatusCode}, Status={response.ReasonPhrase}");

        //read response and write to output stream
        thumb = new MemoryStream(response.Content.ReadAsByteArrayAsync().Result);
    }
}

私の関数jsonは次のとおりです

{
  "bindings": [
    {
      "path": "originals/{name}",
      "connection": "thumbnailgenstorage_STORAGE",
      "name": "original",
      "type": "blobTrigger",
      "direction": "in"
    },
    {
      "path": "thumbs/%rand-guid%",
      "connection": "thumbnailgenstorage_STORAGE",
      "type": "blob",
      "name": "thumb",
      "direction": "out"
    }
  ],
  "disabled": false
}

私の Azure ストレージ アカウントは 'thumbnailgenstorage' と呼ばれ、'originals''thumbs'という名前の 2 つのコンテナーがあります。ストレージ アカウント キーはKGdcO+hjvARQvSwd2rfmdc+rrAsK0tA5xpE4RVNmXZgExCE+Cyk4q0nSiulDwvRHrSAkYjyjVezwdaeLCIb53g==.

人々が私の鍵を使ってこれを理解するのを手伝ってくれることをとてもうれしく思います! :)

4

1 に答える 1