【やってみた】Colab EnterpriseからCloud Storageにファイル出力するPythonコードを実装する
2024.6.17
はじめに
こんにちは、フクナガです。
以前、Colab EnterpriseでPythonノートブック環境を超短時間で用意するという記事を執筆しました!
普段からPythonで開発をするわけではないので、サクッと環境を用意できて色々試せるのは非常に便利です。その中で、成果物(csv)を伴うPythonコードを書く機会が出てきました。
どうやって成果物をダウンロードするのか困りましたが、「Cloud Storageに出力すれば早いのでは?」と思ったので実装してみました!!
Colab Enterpriseとは
Colab Enterpriseは、マネージドでノートブック環境を利用できるGoogle Cloudのサービスです。
詳細は、下記の記事にまとめてあります!
Colab EnterpriseでPythonノートブック環境を超短時間で用意する
やってみた
1. Cloud Storageバケットを作成する
(1) Cloud Storageコンソールへ遷移
(2) 「作成」ボタンを押下
(3) 下記パラメーターを選択し、「作成」を押下
バケット名:任意の値
データの保存場所の選択:
①ロケーション:asia-northeast1
②ロケーションタイプ:Region
※コストを安く抑えるため
もし、下記の画面が表示されたらすべてのチェックボックスにチェックを入れて、「確認」を押下します
(4) バケットが作成されたことを確認
2. Colab Enterpriseノートブック環境を用意する
(1) 事前準備として、Colab Enterpriseでノートブックを作成・実行可能な環境を用意する
下記の記事通り実装することで、5~10分程度でノートブック環境を用意することが可能です。
Colab EnterpriseでPythonノートブック環境を超短時間で用意する
(2) Colab Enterpriseコンソールの「ファイル」の隣にある「+」ボタンを押下
(3) 新規で作成したノートブックをわかりやすい名前にリネームする
3. Cloud Storageへのアップロードを実施する
(1) Cloud Storageバケットにアップロードするための関数を定義する
Google Cloud公式ドキュメントにサンプルコードがありましたので、そちらを使います。
from google.cloud import storage def upload_blob(bucket_name, source_file_name, destination_blob_name): """Uploads a file to the bucket.""" # The ID of your GCS bucket # bucket_name = "your-bucket-name" # The path to your file to upload # source_file_name = "local/path/to/file" # The ID of your GCS object # destination_blob_name = "storage-object-name" storage_client = storage.Client() bucket = storage_client.bucket(bucket_name) blob = bucket.blob(destination_blob_name) # Optional: set a generation-match precondition to avoid potential race conditions # and data corruptions. The request to upload is aborted if the object's # generation number does not match your precondition. For a destination # object that does not yet exist, set the if_generation_match precondition to 0. # If the destination object already exists in your bucket, set instead a # generation-match precondition using its generation number. generation_match_precondition = 0 blob.upload_from_filename(source_file_name, if_generation_match=generation_match_precondition) print( f"File {source_file_name} uploaded to {destination_blob_name}." )
(2) 関数を定義したセルを実行する
※ランタイムを作成していない場合、テンプレートから自動で作成されますので少々お待ちください。
実行が問題なく完了したことを確認し、次のステップへ進む
(3) 次のコードセルに、ファイル作成・アップロード用のコードを入力する
ファイルを出力できるかどうかがポイントなので、「テキストファイルの作成」と「アップロード」のみにしています。
with open('example.txt', 'w') as file: file.write('This is new Text.\n') upload_blob('fukunaga-sample-bucket-colab-enterprise', 'example.txt', 'example.txt')
(4) 作成したコードセルを実行する
実行が完了すると下記画像のようになります。
(5) ファイルがアップロードできたか、Cloud Storageを確認する
作成したCloud Storageバケットを確認すると、今回アップロードしたテキストファイルがありました!!
※もし表示されていない場合は、右側の「更新」ボタンをお試しください
中身も想定通りでした!
後片付け
今回も忘れずに、Colab Enterprise用に立ち上げたランタイムは削除しておきましょう!
※やり方が分からない方は、こちらで手順を確認
Cloud Storageについても、削除しておきましょう。
まとめ
今回は、Colab Enterprise環境で作成したファイルをCloud Storageにアップロードする部分を検証しました。
かなり短時間に環境用意ができたので、簡単な分析用Pythonスクリプトを作り、ファイルをCloud Storageで出力するときは、非常に便利だなと思います。
サクッと実装できますので、ぜひ実装してみてください!!
テックブログ新着情報のほか、AWSやGoogle Cloudに関するお役立ち情報を配信中!
Follow @twitterインフラエンジニア歴5年のフクナガです。2024 Japan AWS Top Engineers選出されました! 生成 AI 多めで発信していますが、CI/CDやIaCへの関心も高いです。休日はベースを弾いてます。
Recommends
こちらもおすすめ
-
可分な畳み込みカーネルと計算量の話
2018.7.18
Special Topics
注目記事はこちら
データ分析入門
これから始めるBigQuery基礎知識
2024.02.28
AWSの料金が 10 %割引になる!
『AWSの請求代行リセールサービス』
2024.07.16