[Heroku] Guzzleを使用してProximo経由で接続する
Herokuにて、外部APIに接続する際に固定IPにて接続したいことはたまにある。
以前、QuotaGuard Staticを使用してのやり方は書いたけれど、今回はProximoを利用した際に少しハマったのでメモ。
Proximo
Proximoは一番下のプランでも$5/月かかる有料アドオンとなっている。
Guzzle
以前の記事ではCURLで接続していたが、今回はGuzzleを使って接続してみる。
proxy経由で接続
ドキュメントを確認すると、以下の方法でプロキシを指定可能、とのこと。
http://docs.guzzlephp.org/en/stable/request-options.html#proxy
1
|
|
ProximoをHerokuに追加すると、環境変数に自動的にプロキシのURLが追加される。
1
|
|
上記URL内の、xx-xxx-x-xxx
の部分の数字が固定IPとなる。
(ダッシュボードからも確認可)
これをそのままproxyのURLとして指定してやればOK…だと思ったのだが、エラーが出てしまった。
cURL error 56: Proxy CONNECT aborted
QuotaGuard Staticのアドオンを追加した際に取得出来るURLを同じように指定してやったところ、問題なくアクセス出来たので、Guzzleは悪くなさそう。
ProximoだとURLをパースしたりとかが必要なのか…など悩んでいて、URLを見比べていると、ProximoのURLにはポート番号がついてないことに気付く。
改めてドキュメントを確認してみると、ポート番号は80
で固定、とのこと。
If you’d rather use Proximo as a standard HTTP proxy, use PROXIMO_URL on port 80.
https://devcenter.heroku.com/articles/proximo#using-the-proximo-http-proxy
よって、環境変数に追加されたURLの最後に :80
とポート番号を追加してやると、無事、アクセスすることが出来た。
1 2 3 4 5 6 |
|
Proximoの固定IPがJSON内に返ってきたらOK。
ポート番号がデフォルトでは入っていないため、少しハマってしまった。