ファビオCavalcanteによって回答に基づいて、ここに(ローカルまたはホストされている)現在実行中の環境をチェックする作業Azureの機能は次のとおりです。
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Azure.WebJobs.Host;
using System;
namespace AzureFunctionTests
{
public static class WhereAmIRunning
{
[FunctionName("whereamirunning")]
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]HttpRequestMessage req, TraceWriter log)
{
bool isLocal = string.IsNullOrEmpty(Environment.GetEnvironmentVariable("WEBSITE_INSTANCE_ID"));
string response = isLocal ? "Function is running on local environment." : "Function is running on Azure.";
return req.CreateResponse(HttpStatusCode.OK, response);
}
}
}
RoleEnvironmentは、クラウドサービスのためにのみ使用可能です。あなたがしようとすることの1つは、関数プロジェクトに 'Microsoft.WindowsAzure.ServiceRuntime'の参照を追加することです。 –
@GauravMantri:これは動作していません。エラーをスローします。 'ロール環境は初期化されていません。 ' –
これは私が恐れていたものです。私はコードをリファクタリングしてこれをあなたのメソッドのパラメータとして渡すことしかできないと思います。関数コードからfalseを渡します。クラウドサービスコードから、RoleEnvironmentメンバー値の実際の値を渡します。 –