web-dev-qa-db-ja.com

Cloud FunctionはCloud Storageから読み取ることができますか?

GCF + GCSの使用に関して私が見つけることができる唯一のドキュメントは https://cloud.google.com/functions/docs/tutorials/storage です。 AFAICTこれは、GCSイベントを使用してGCFをトリガーする方法を示しています。

GCF依存関係 のドキュメントでは、ノードモジュールについてのみ言及しています。 GCFコードがGCSバケットから読み取ることは可能ですか? GCSとの通信方法を知っているノードモジュールが必要な場合だけですか。その場合、その例はありますか?

11
Rick Viscomi

はい、ただし結果はramdiskに保存されるため、ファイルをダウンロードするには、関数で十分なRAMを使用できる必要があります。

var storage = require('@google-cloud/storage');
const gcs = storage({projectId: "<your_project>"});
const bucket = gcs.bucket("<your_bucket>");
const file = bucket.file("<path/to/your_file>")

exports.gcstest = (event, callback) => {
  file.download({destination:"/tmp/test"}, function(err, file) {
    if (err) {console.log(err)}
    else{callback();}
  })
};
5
Jofre

Googleクラウド関数は、アップロードしたコードを実行するだけです。コードにGoogleクラウドストレージに接続するためのライブラリが含まれている場合は、他のAPI /サービスに接続するのと同じように、Googleクラウドストレージに接続できます。

API、oauth、署名付きURLなど、Googleクラウドストレージに接続するにはいくつかの方法があります...これらの方法はすべてGoogleクラウド関数で使用できるため、Googleクラウドストレージのドキュメントを参照して最善の方法を見つけることをお勧めしますあなたの場合。

3
user801247

はい、ストレージバケットの読み取りと書き込みができます

const storage = require('@google-cloud/storage')();
const myBucket = storage.bucket('my-bucket');
const file = myBucket.file('my-file');

file.createReadStream().on('data', () => {
    // do something!
});

詳細については、 Google Cloud のドキュメントを確認してください。

1
Raad Altaie