あれとアレは混ぜるな危険

日々精進をしているふり

Azure Search をプロキシ経由でも使えるようにしておいた

こんにちは、はるたまです。クラウドごった煮が終わって、今年も終わった感じがしています。

新しく Azure に追加された Search サービスですが、ライブラリとして用意されている RedDog.Search がプロキシに対応していない問題がありました。働いている会社では認証プロキシに対応していないとインターネットにアクセスできないという環境のため、仕事中に調査と称して新しいサービスでキャホキャホ遊んだりできないという状態、しかも認証プロキシのため大変にクリティカルな問題になります。
そこでついカッとなって PullRequest 送ったらマージされてました。
Add "proxy" argument to support proxy. by harutama · Pull Request #2 · reddog-io/RedDog.Search · GitHub
ということで、RedDog.Search.Portalでプロキシを使いたい場合は、Startup.cs の中にある Configuration メソッドに、こんな感じでどうぞ。

        public void Configuration(IAppBuilder app)
        {
            // Configure Autofac.
            var builder = new ContainerBuilder();
            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());

            //ここでWebProxyを作る
            WebProxy proxy = new WebProxy("プロキシのアドレス", ポート番号);
            //認証プロキシの場合はここも設定
            proxy.Credentials = new NetworkCredential("ユーザー", "パスワード");

            // Configure Search.
            builder.Register(ctx => ApiConnection.Create(CloudConfigurationManager.GetSetting("Azure.Search.ServiceName"),
                CloudConfigurationManager.GetSetting("Azure.Search.ApiKey"), proxy))//ここにproxyを指定
                .InstancePerRequest();
            builder.RegisterType<IndexManagementClient>()
                .InstancePerRequest();
            builder.RegisterType<IndexQueryClient>()
                .InstancePerRequest();