gcloud
gcloud コマンド更新
$ gcloud components update
めちゃいろいろできる
取得
$ gcloud config get-value project で現在のプロジェクト名がゲットできる
$ gcloud projects list --filter=$(gcloud config get-value project) --format="value(PROJECT_NUMBER)"
$ gcloud projects list --filter=$(gcloud config get-value project) --format="table(name, projectNumber)"
数値のプロジェクトIDがゲットできる
config
$ gcloud config list 現在の設定値の表示
$ gcloud config configurations list configuration(≒大抵アカウントの使い分ける単位)のリスト
$ gcloud config configurations describe $NAME は $ gcloud config list とだいたいおなじ
configuration の下に、認証情報や、config やデフォルトプロジェクトが紐付いている
configuration を切り替えるには $ gcloud config configurations activate default
ログイン
$ gcloud auth login と $ gcloud auth application-default login
同時にやるには $ gcloud auth login --update-adc
アカウント切り替え
$ gcloud auth list
$ gcloud config set account {EMAIL}
カレントプロジェクト指定
$ gcloud config set project {project}
手元で使う時ぐらい? 共有コード等うは --project でやろうね
$ gcloud config unset project でカレントプロジェクトを設定しないことができる
カレントプロジェクトを外す
複数のプロジェクトを行ったり来たりする際に事故らないように、むしろ外したい
$ gcloud config unset project
PROJECT が空なら OK
code:unset
$ gcloud config configurations list
NAME IS_ACTIVE ACCOUNT PROJECT DEFAULT_ZONE DEFAULT_REGION
default True pokutuna@hogehoge.com
実行時 project 指定
$ gcloud --project {project}
だいたいは project からその他の設定が決まる? のでスクリプトから叩くときはこれでよい
config 管理
$ gcloud config configurations list
config 追加
$ gcloud init するとプロンプトが出て聞かれる
code:output
Welcome! This command will take you through the configuration of gcloud.
Settings from your current configuration personal are: core:
account: oneetyan@gmail.com
disable_usage_reporting: 'True'
project: pokutuna
Pick configuration to use:
1 Re-initialize this configuration personal with new settings 2 Create a new configuration 3 Switch to and re-initialize existing configuration: default 2 を選ぶと $ gcloud config configurations create 相当(おそらく)
インストールパスとれる
$ gcloud info --format="value(installation.sdk_root)"
これは便利で、dev_appserver.py にパス通して使ってね〜みたいなだるさが減る
homebrew の cask で入れていたら
/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk
$ python2.7 $(gcloud info --format="value(installation.sdk_root)")/bin/dev_appserver.py とかで起動してもいいし
パスを通してもいい
code:gcloud.zshenv.sh
export GCLOUD_INSTALL_DIRECTORY=$(gcloud info --format="value(installation.sdk_root)" 2>/dev/null)
export PATH=${GCLOUD_INSTALL_DIRECTORY}/bin:$PATH
fi
$ $(gcloud info --format="value(installation.sdk_root)")/install.sh するとパスや補完が .zshrc などに書き込まれる
code:.zshrc.added
# The next line updates PATH for the Google Cloud SDK.
# The next line enables shell command completion for gcloud.
コンテナから gcloud を使う / 別のコンテナへ認証情報を渡す
$ docker run -ti --name gcloud-config google/cloud-sdk gcloud auth login
認証情報が gcloud-config ボリュームに保存される
$ docker run --rm --volumes-from gcloud-config gcr.io/google.com/cloudsdktool/cloud-sdk gcloud compute instances list --project your_project
--volumes-from で認証情報をマウントする
API のリスト & 有効な API のリスト
$ gcloud --project={PROJECT} services list
現在有効なもの一覧
--available で利用可能なもの一覧
$ gcloud services enable pubsub.googleapis.com などで個別に有効にできる
勝手に作られている gcloud の実装のミラー
差分見るのに便利
render-markdown
CLI 向けにカワイイ表示をしてくれる
$ gcloud meta render-markdown README.md