1

WebClient 呼び出しの戻り値に基づいて BLOB を作成する Web ジョブがあります。これはうまくいっています。しかし、Blob 属性 (以下のコードを参照) からわかるように、ファイルの名前は静的です。そのため、ブロブ ストレージでは毎回上書きされます。

関数クラス:

public class Functions
{
    private static int _retryCount;
    private static readonly int _retryLimit = int.Parse(ConfigurationManager.AppSettings["retryLimit"]);
    private static readonly string _ghostRestfullUri = ConfigurationManager.AppSettings["ghostRestfullUri"];

    [NoAutomaticTrigger]
    public static void LightUpSite([Blob("ghost/response.json")] out string output, TextWriter logger)
    {
        _retryCount = 0;
        output = string.Empty;

        do
        {
            try
            {
                using (var request = new WebClient())
                {
                    var response = request.DownloadString(_ghostRestfullUri);

                    _retryCount++;

                    output = response;

                    break;
                }
            }
            catch(Exception exception)
            {
                logger.WriteLine("Job failed. Retry number:{0}", _retryCount);
            }

        } while (_retryCount < _retryLimit);
    }
}

メインメニュー:

public class Program
{
    static void Main()
    {
        var host = new JobHost();

        host.Call(typeof(Functions).GetMethod("LightUpSite"));
    }
}

プレースホルダーを使用して受信ファイルに動的に名前を付けるにはどうすればよいですか?

私はすでに次のことを試しました:

  1. ゴースト/{名前}
  2. ゴースト/{ブロブ名}

その他の注意事項:

このジョブはスケジュールに従って実行されるため、ホストは実行およびブロックされません。このジョブはトリガーによって呼び出されず、ウェイクアップして実行されるだけです。ソースはメッセージ キュー オブジェクトまたはアップロードされたファイルからのものではないため、この BLOB にどのような名前を付ければよいかわかりません。

おそらく何らかの方法で blob storage API を直接使用していますか?

4

1 に答える 1