Edited at

Google Cloud Platformを社内プロキシ環境で使う

More than 1 year has passed since last update.

どうも、プロキシの人です。


gcloud

gcloudコマンドは環境変数のhttp_proxy, https_proxyを設定していれば使えます。

$ export http_proxy=http://proxy.local:8080

$ export https_proxy=$http_proxy

設定してないとこんな感じになります。

ビビりますね。

ERROR: gcloud crashed (ResponseNotReady): 

クラッシュてw


他の方法

環境変数指定したくない場合はgcloudコマンドで設定もできます。

gcloud config set proxy/address proxy.local

gcloud config set proxy/port 8080
gcloud config set proxy/username xxx
gcloud config set proxy/password password
gcloud config set proxy/type http_no_tunnel

proxy/typehttp, http_no_tunnel, socks4, socks5と指定できるので、うまく繋がらない場合は指定して試してみてください。


bq

BigQueryを使う際にも設定が必要です。

gcloudと同様に環境変数を設定してればBigQueryのbqコマンドも使えます。


kubectl

GKEでKubernetes使いますよね。

kubectlも環境変数設定してればいけるっぽいです。

特に意識してなかったのでこれでいいんでしょう。


gcloud docker

ここらへんももうそんな感じです。


gsutil

Google Cloud Storage

この流れだと普通にgsutilも使えると思うじゃないですか。

ところがどっこい、使えないんだな、これが。

そんなわけで調べました。

https://cloud.google.com/storage/docs/gsutil/commands/config#additional-configuration-controllable-features

これね。

はいはい。

ホームに.boto を書いてっと…

[Boto]

proxy proxy.local
proxy_port 8080
proxy_user user
proxy_pass password

よっしゃ!gsutilでアップロードするぞ!

$ gsutil cp xxxxx.txt gs://gcs-bucket/xxxxx/

反応なし。

書き方間違えてました。

正解はコチラ。

proxy = proxy.local

proxy_port = 8080
proxy_user = user_name
proxy_pass = passphrase

これが正解です。


Cloud Shell

社内プロキシに苦しむ開発者はそれなりにいると思います。

上記の設定で大体クリアできますが、うちだと外部への80,443以外のポートを使った通信が許可されてません。

正直辛いです。

そこでこんなものがありますよ。

Cloud Shell

社内プロキシ勢の強い味方。

要はコマンドライン実行するためにgcloudコマンドやらdockerコマンドやら色々入った専用のインスタンス立ててブラウザ上で色々できるものです。

ブラウザでコマンドやりとりしてるのでブラウザ(HTTP, HTTPS)さえ通っていればOK。

上記の設定とかしなくてもコマンド使えますよ。


起動

cloud-shell.png

Developer Consoleの右上に赤枠で囲ったアイコンをクリックすると下の方にコンソールが出てきます。

これで何でもできるね!


お値段

現在ベータ版で、無料で使えます。

その後はわかりません。

GCEインスタンスの起動時間分の値段になるのかもしれませんね。