0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Google Cloud SDK でGCSにデータをアップロード

Posted at

Google Cloud SDK でGCSにデータをアップロード

個人的なメモ、備忘録です。

1 事前準備

google cloud platformのアカウント作成 https://cloud.google.com/iam/docs/creating-managing-service-accounts?hl=ja を参考にアカウントを作成する。 プロジェクトの作成 https://cloud.google.com/resource-manager/docs/creating-managing-projects?hl=ja を参考にプロジェクトを作成する。

2 google cloud sdkのインストールと各種設定

インストール

公式によると、「Cloud SDK には Python が必要です。サポートされているバージョンは Python 3(3.5~3.8 を推奨)と Python 2(2.7.9 以降)です。」https://cloud.google.com/sdk/docs/install?hl=ja とのことでしたが、私のローカルでは、2系も3系もどちらもサポート外のバージョンが入っていたので、dockerコンテナ にインストールすることにしました。

下を参考に、公式のdockerイメージを使いました。
https://cloud.google.com/sdk/docs/downloads-docker?hl=ja

こんな感じでコンテナを立てました。

ディレクトリ構成
root/
  ├ volumes/
  │   ├ data.csv ←最終的にこれをGCSにアップロードしたいので、あらかじめ作った。なくてもいい。
  │   ├ entrypoint.sh
  ├ docker-compose.yml
  ├ Dockerfile

下の公式を参考にDockerfileを作成。alpineの軽量なものを使った。
https://cloud.google.com/sdk/docs/downloads-docker?hl=ja

Dockerfile
FROM gcr.io/google.com/cloudsdktool/cloud-sdk:alpine
WORKDIR googleCloudSdk
ENTRYPOINT ["sh","./entrypoint.sh"]  

コンテナ内に入ってからgoogle-cloud-sdkの設定(ログイン、プロジェクトIDの設定)を行いたかったので、コンテナのコマンドはbashとした。

entrypoint.sh
# !/bin/sh
bash

docker-compose.ymlを作成。
(個人的にdocker-composeにした方が、後々見返したときに何をやっているのか、分かりやすい気がする。。。)

docker-compose.yml
version: "3.7"

services:
  gcp:
    build:
      context: .
      dockerfile: ./Dockerfile
    volumes:
      - ./volumes:/googleCloudSdk

後は、docker image を作って、コンテナ内に入る。

terminal
$ docker-compose run gcp

設定

次に、設定をします。具体的には、 1 google cloud platformにログインし 2 プロジェクトIDを設定します。
google-cloud-sdk
$ gcloud auth login

下のようにリンク先urlが表示されるので、コピペして、ブラウザでアクセスします。
リンク先でアカウントをクリックすると、vertification codeが表示されるので、コピーしてターミナル上に貼り付けます。

google-cloud-sdk
$ gcloud auth login
Go to the following link in your browser:

    https://accounts.google.com/o/oauth2/auth?xxxxxxx~
Enter verification code:
google-cloud-sdk
Enter verification code:xxxxxxxxxxx ←ここに貼り付け

次に、プロジェクトを選択します。

google-cloud-sdk
$ gcloud config set project PROJECT_ID

PROJECT_IDはgoogle cloud platform のコンソール画面から確認して貼り付けます。

3 バケットの作成(GCS)

下の公式のサイトを見ながら、バケットを作成します。

google-cloud-sdk
$ gsutil mb -p PROJECT_ID gs://BUCKET_NAME ←バケット名を任意につけます。

4 アップロード

次は、データをアップロードします。今回はcsvファイルをアップロードしたいので、サンプルのデータを作成します。
google-cloud-sdk
$ vi data.csv
data.csv
id,name,gender,
1,anne,F,
2,jon,M,
3,ken,M,

上記のように、仮に作成したcsvファイルをgoogle cloud storage 上にアップします。
また、公式サイトを確認しながらコマンドを実行します。
https://cloud.google.com/storage/docs/uploading-objects?hl=ja

google-cloud-sdk
$ gsutil cp data.csv gs://BUCKET_NAME

無事、GCSにデータをアップロードできました。

終わり。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?