我们如何在 services.AddAzureClients 上配置 HttpProxy

Posted

技术标签:

【中文标题】我们如何在 services.AddAzureClients 上配置 HttpProxy【英文标题】:How can we configure HttpProxy on services.AddAzureClients 【发布时间】:2021-10-27 07:58:40 【问题描述】:

我们的 .Net 5.0 aspnetcore 启动类中有以下代码

public void ConfigureServices(IServiceCollection services)

  services.AddAzureClients(builder =>
  
 
    // Add a storage account client
    builder.AddBlobServiceClient(storageUrl);
    // Use the environment credential by default
    builder.UseCredential(new EnvironmentCredential());
  );

  services.AddControllers();

对于 HttpClient,我们可以使用以下代码配置 httpproxy,但是我们如何为 BlobServiceClient 实现相同的功能??

  services.AddHttpClient("SampleClient", client =>
                
                    client.BaseAddress = new Uri("https://sample.client.url.com");
                )
            .ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler
            
                Proxy = new WebProxy("https://sample.proxy.url.com")
            );

【问题讨论】:

【参考方案1】:

解决方案是将带有指定代理 URI 的 BlobClientOptions 传递到 BlobServiceClient 的构造函数中。

查看此sample code,它显示了如何在 HttpClient 中指定代理

构造新的HttpClientTransport时可以将HttpClient作为参数传入,可以在BlobClientOption的Transport属性中设置,然后传入BlobServiceClient的构造函数中。

【讨论】:

设置环境变量不行吗? azure SDK 指定我们可以设置 HTTPS_PROXY,这将由 SDK 选择。我的假设是错误的,即服务客户端基本上是 azure SDK 的扩展方法?

以上是关于我们如何在 services.AddAzureClients 上配置 HttpProxy的主要内容,如果未能解决你的问题,请参考以下文章

我们如何在php中处理动态表单

async/await 抛出 NullReferenceException 我们如何诊断我们在哪里搞砸了?

我们如何在 Prometheus 度量系列中添加我们自己的时间戳?

我们如何在 Apache Spark 中执行动态重新分区?

如何判断我们是不是在主线程中运行?

我们如何在 agora 应用中对远程流进行情感分析?