ラベル gcloud の投稿を表示しています。 すべての投稿を表示
ラベル gcloud の投稿を表示しています。 すべての投稿を表示

2020/06/07

GCP: ローカルからGCLOUDコマンドを叩くと pyenv: python2: command not found エラー

  • Issue
    gcloud コマンドをローカルから使おうとしたら、pyenv: python2: command not found エラーとなる
  • 環境など
    Mac mojave 10.14.6
    pyenv 1.2.8-182  ※homebrew でインストールしていない。(これが原因かも)
  • 原因
    文字通りなのですが、gcloudの中で、"python2" コマンドが呼び出されるけど、python2 コマンドが見つからないと言われている。


  • Solution
    .zprofile に、export CLOUDSDK_PYTHON=/usr/bin/python を追記
    これを追記することで、呼び出すPython環境を明示できて、python2 を呼ばなくなる。
    (しらんけど。。。)


  • 編集後記
    これは、元々、エラーがでるけど普通に動く。多分、python2 コマンド使って、だめならpython コマンドって順番に呼び出しているのかと想像。
    前のMACだと出なかったんだけど。。。

2020/04/25

GCP: コンテナイメージから、GCEを立ち上げる方法 with Docker HUB -- GCP,GCE,docker


  • Goal
    • GCE(Google Compute Engine)に、コンテナイメージをDeployして立ち上げる。
    • Dockerのイメージは、DockerHUBから持ってくる。
  • How
    1. 準備:DockerHUBに、コンテナイメージを作成する。
      ①Github のrepositoryと、DockerHUBを連携させる
      ■連携の仕方
      https://docs.docker.com/docker-hub/builds/link-source/

      ドットインストールのPHP環境のテストをしたかったので、Docker fileなどを取得し、DockerHUBと連携させたGithubのrepositoryへpushする。すると、自動でDockerHUBにイメージが作成される!
      ■Githubのレポジトリ
      https://github.com/pumpkinpietea/dockerhub
      ■連携されたDockerhubのレポジトリ
      https://hub.docker.com/repository/docker/pumpkinpietea/github
    2. GCPのコンソールでGCEインスタンスをコンテナイメージを利用して立ち上げる。

      ■コンテナイメージ名に docker.io/アカウント名/レポ名 を入力する

    3. イメージを作成し、SSHでつないで見る。
      ~$ docker ps
      でコンテナIDを調べて
      ~$ docker exec -it コンテナ名 sh
      で、コンテナの中に入れる
  • Thanks!!
  • 編集後記
    • PHPの勉強をしようとして、ドットインストールさんの講座をみて進めようとしたが、Dockerをローカルmacには入れたくないと思い、GCPのf1-microインスタンスを使おうを思って取り組んだ。普通にインスタンス立ち上げて設定しようかとおもったが、少し調べてみたらコンテナイメージをDeployできるみたいなので試してみた。
    • GCE 1インスタンスで、 1コンテナとのこと。GKEの勉強しないと実業務には使えないかもしれないが、1インスタンスの開発環境の立ち上げとかには、。

2020/02/11

GCP: gcloud コマンドラインで、GAEの全インスタンスを停止する --- GCP,GAE,shellscript,gcloud

・Goal
 テストで作成したGAEの全サービスの全インスタンスをコマンドラインから削除・停止する。バージョン名等を指定せずに、どんどんデプロイすると稼働中のインスタンスが増える。それをコマンドラインで一気に全停止する。コンソール画面からだと、サービス毎/バージョン毎にプチプチと停止する必要があり面倒だった。。。

・How
 これが基本形
 ~$ gcloud app instances delete [instance ID] -v [version] -s [service]

・Example
# step1  一覧で確認
~ $ gcloud app instances list
SERVICE  VERSION  ID                                      VM_STATUS  DEBUG_MODE
default  master   00XXXXXXX                               N/A
test1    master   00XXXXXX1                               N/A
test2    master   00686ff30                               N/A

# step2 削除
~ $ gcloud app instances list | sed 1d | awk '{print $1, $2, $3}' | while read s v id; do gcloud app instances delete $id -v $v -s $s --quiet; done
Deleting the instance [default/master/00XXXXXXX].
Deleted [https://appengine.googleapis.com/v1/apps/---].
Deleting the instance [test1/master/00XXXXXX1].
Deleted [https://appengine.googleapis.com/v1/apps/---].
Deleting the instance [test2/master/00686ff30].
Deleted [https://appengine.googleapis.com/v1/apps/---].

# 説明
~ $ gcloud app instances list | \ # インスタンスのリストを出力
sed 1d | \ # 一行目をカット
awk '{print $1, $2, $3}' | \ # awk できれいにする。(この処理は不要・・・)
# 以下のハイライトの箇所で、順番に消していく。y/nを聞かれるので --quiet を追加
while read s v id; do gcloud app instances delete $id -v $v -s $s --quiet; done

2020/02/09

GCP: Cloud Tasksにおける queueの設定 (GAEの特定のserviceへリクエストを投げたい) -- GAE 2nd gen, Python3, gcloud

・背景
 GAEをタスクハンドラーとして使っている。
 GAE-py の2nd Genへの移行に伴い、従来のapp engine task queueは
 使えなくなり、Cloud Tasksへの移行が必要。
 それに伴い従来のqueue.yaml の設定も不要。
 今後は、コンソールからgcloudコマンドでqueueを作ることになるとのこと。
   https://cloud.google.com/tasks/docs/migrating?hl=ja

 そこで、試していたのだが、GAEのデフォルトじゃなくて、特定のサービスや、
 バージョンに対してのリクエストの投げ方が解らずハマる。。。
  http://[project ID].appspot.com/
  ではなくて例えば、
  http://[service]-dot-[project ID].appspot.com/
  にリクエストを投げたい。

・Goal
 GAEの特定のサービスに対するqueueを作成したい。

・How
 gcloud コマンドで、--routing-overrideを設定すればよい。

 [As-is]
XXX@cloudshell:~$ gcloud tasks queues describe queue-sample
name: projects/[project ID]/locations/us-central1/queues/queue-sample
rateLimits:
  maxBurstSize: 100
  maxConcurrentDispatches: 1000
  maxDispatchesPerSecond: 500.0
retryConfig:
  maxAttempts: 100
  maxBackoff: 3600s
  maxDoublings: 16
  minBackoff: 0.100s
state: RUNNING

 [変更]
XXX@cloudshell:~$ gcloud tasks queues update queue-sample --routing-override=service:test
WARNING: You are managing queues with gcloud, do not use queue.yaml or queue.xml in the future. More details at: https://cloud.google.com/tasks/docs/queue-yaml.
Updated queue [queue-sample].

 [To-be]
XXX@cloudshell:~$ gcloud tasks queues describe queue-sample
appEngineRoutingOverride:
  host: test.[project ID].appspot.com
name: projects/[project ID]/locations/us-central1/queues/queue-sample
rateLimits:
  maxBurstSize: 100
  maxConcurrentDispatches: 1000
  maxDispatchesPerSecond: 500.0
retryConfig:
  maxAttempts: 100
  maxBackoff: 3600s
  maxDoublings: 16
  minBackoff: 0.100s

state: RUNNING

・Thanks!!
https://cloud.google.com/sdk/gcloud/reference/tasks/queues/update#--routing-override

2018/11/18

GCP: Cloud Shell上でのサンプルコマンド

備忘録
Cloud Shell上でのオペレーション

### Storageの操作
### GCE関連、Snapshotの作成