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

リソースレコードの管理

  1. 登録されているリソースレコードの確認は以下のコマンド:
# --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.
  1. トランザクションを開始するには、gcloud dns record-sets transaction start コマンドを使用します。
gcloud dns record-sets transaction start --zone="my-zone-name"
  1. レコードセットをトランザクションの一部として追加するには、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 : 管理するレコードセットのマネージド ゾーンの名前です。
  1. トランザクションを実行するには、gcloud dns record-sets transaction execute コマンドを使用します。
gcloud dns record-sets transaction execute --zone="my-zone-name"
  1. トランザクションの状態を確認する
gcloud dns record-sets transaction describe --zone="my-zone-name"
  1. トランザクションを中止する (execute の前に実行)
gcloud dns record-sets transaction abort --zone="my-zone-name"