Google Cloud Platform - Shell
Page content
Gcloud beta command の勉強
google cloud SDK のインストール
AWS CLI 相当のものかな。シェルで GCP リソースを操作できる様になる。
インストール方法: https://cloud.google.com/sdk/docs/?hl=ja
$ tar zxvf google-cloud-sdk.tar.gz $ mv google-cloud-sdk ~/.google-cloud-sdk $ cd ~/.google-cloud-sdk $ ./install.sh $ ./bin/gcloud init
- 注意: ダウンロードして展開された
google-cloud-sdk
ディレクトリは install, init の後も保持する必要がある (~/.*shrc ファイルもそこを見るように更新される)。 そのため、インストール実行前に永久保存しても良さそうなディレクトリに移動させておくこと。
- 注意: ダウンロードして展開された
できること: これで Google Cloud Functions のデプロイや、 Stack driver でのログ閲覧などもできるので、結構重宝する。
- コマンド例:
$ gcloud beta functions deploy <function_name> --trigger-http --runtime nodejs10 $ gcloud beta functions logs read <function_name> --limit 100
- コマンド例:
良いと感じたこと: functions のデプロイがとてもシンプルで、デプロイだけなら serverless framework 使うまでもないかも
gcloud command
- ログイン
gcloud auth login
- アカウントの明示
gcloud --account=youremail@address.com <command>
gcloud config 管理 で複数アカウントの管理
gcloud config configurations list # config セットの一覧表示
gcloud config configurations create <config_name> # config セットの作成
gcloud config configurations activate <config_name> # config セットの利用(有効化)
gcloud config set account <youraccount@gmail.com> # config セットに対してアカウントを設定
gcloud config set project <project_name> # config セットに対してプロジェクトを設定
参考: gcloudコマンド(GCP)で複数のプロジェクトとアカウントの使い分けを便利に
アカウントの切り替え
上に同じ
プロジェクト操作
- 自分のプロジェクト一覧を表示
gcloud projects list
- コマンド実行時にプロジェクトの明示
--project=sys000000-000000
DNS
ドメインの一覧
gcloud dns managed-zone list
コマンドです
# --project オプションは config プリセットされていれば不要
$ gcloud --project=xxxxx dns managed-zones list
NAME DNS_NAME DESCRIPTION VISIBILITY
my-zone-name my.example.com. my own testing environment public
リソースレコードの管理
- 登録されているリソースレコードの確認は以下のコマンド:
# --project オプションは config プリセットされていれば不要
$ gcloud --project=xxxxx dns record-sets list --zone=<zone_name>
# 出力. ドメイン作成したてなら NS と SOA しか無い
NAME TYPE TTL DATA
my.example.com. NS 21600 ns-cloud-xx.googledomains.com.,ns-cloud-xx.googledomains.com.,ns-cloud-xx.googledomains.com.,ns-cloud-xx.googledomains.com.
my.example.com. SOA 21600 ns-cloud-xx.googledomains.com. cloud-dns-hostmaster.google.com. 4 21600 3600 259200 300
web.my.example.com. A 300 10.0.0.1
web2.my.example.com. CNAME 300 web.another.example.com.
- トランザクションを開始するには、gcloud dns record-sets transaction start コマンドを使用します。
gcloud dns record-sets transaction start --zone="my-zone-name"
- レコードセットをトランザクションの一部として追加するには、gcloud dns record-sets transaction add コマンドを使用します。
# beta にしないと CNAME が入らない??間違いかも。なしでも試してください
gcloud dns beta record-sets transaction add 10.2.3.4 --name="test.example.com" --ttl="60" --type="A" --zone="my-zone-name"
- オプション
--name
: 追加するレコードセットの DNS またはドメイン名です。--ttl
: レコードセットの秒数で表された TTL(有効期間)です。--type
: 表で説明されているレコードタイプです。--zone
: 管理するレコードセットのマネージド ゾーンの名前です。
- トランザクションを実行するには、gcloud dns record-sets transaction execute コマンドを使用します。
gcloud dns record-sets transaction execute --zone="my-zone-name"
- トランザクションの状態を確認する
gcloud dns record-sets transaction describe --zone="my-zone-name"
- トランザクションを中止する (execute の前に実行)
gcloud dns record-sets transaction abort --zone="my-zone-name"