Cloud StorageからS3へデータ転送の背景
Google Cloudでデータを収集・加工し、AWSでメルマガの自動配信を行いました。
その際の、Cloud StorageからS3にデータを転送する際のCloud Functionsに記述するコードが参考になればと思いまとめてみます。
S3データ転送時の前提
- Google CloudとAWSの初期設定が完了している
- Cloud Functionsの使用方法をおおよそ理解している
- AWSでアクセスキーを作成しキー情報を取得済みである
Cloud StorageからS3にデータ転送してやっていたこと
- Google CloudのCloud StorageからAWSのS3へcsvファイルを転送する
- Google Cloudで購買データと顧客データを収集・加工しS3へ転送
- S3に転送したデータを使用してAmazon PinpointというMA的な使い方が出来るサービスでメルマガを自動配信・分析
S3転送のためCloud Functionsに記述したコードサンプル
Cloud Functionsのpythonファイルに以下コードを記述しました。
(ライブラリのインポート部分等割愛)
※青字部分はコメント
bucket_name = '転送先のgcsバケット名'
file_name = 'gcsに送るファイル名'
client = storage.Client(project_id)
bucket = client.get_bucket(bucket_name)
# 格納するGCSパスを指定
blob = bucket.blob(file_name)
# DataFrameをGCSにUpload
blob.upload_from_string(df.to_csv(index=False, sep=","))
# s3 へのアップロード
key = "アクセスキー"
secret = "シークレットアクセスキー"
path = "S3のパス("s3://s3バケット名/{}.format(file_name) みたいに書ける)"
bytes_to_write = df.to_csv(header=True, index=False).encode()
fs = s3fs.S3FileSystem(key=key, secret=secret)
with fs.open(path, 'wb') as f:
f.write(bytes_to_write)
もしプログラム学習でお困りでしたら受講生に1人ずつ現役のプロのパーソナルメンターがつく TechAcademy [テックアカデミー] のご活用をぜひご検討ください!
CloudFunctionsの実行とAWS学習について
- こちらのCloud FunctionsはPub/Subトリガーで時間指定の定期実行をかけて転送していました
- AWSのことはこちらの本を参考に学習しました。データベースやデータウェアハウスの概念的なことに加えてAWSのサービスとその役割なども説明してくれています。
リンク
Google Cloud関連記事
Google Cloud関連記事をこちらにまとめておりますので、よろしければご参考ください。
また、厳選された優良IT/Web系企業約260社からダイレクトスカウトを受け取ることができる
年収UP率93.8% / 平均年収UP額126万円のエンジニア転職サイト【転職ドラフト】 への登録もおススメです。転職のみならず、ご自身の市場価値の査定にもつながるかと思います!
参考になれば幸いです☕
コメント