質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

Q&A

解決済

2回答

1865閲覧

PC電源OFFでもGoogleCloudFunctions定期実行でtmpフォルダにファイルを生成できる理由

ozaki1998

総合スコア9

cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

0グッド

0クリップ

投稿2022/04/10 16:03

下記のコードは、GoogleCloudFunctions定期実行(2分ごと)を使用して、
txtファイルをtmpフォルダに作成後、それをGCSにアップロードします。
PCの電源をOFFしても正しく定期実行がなされ、GCSにアップロードされる理由を教えていただきたいです。
よろしくお願いいたします。

Node.js

1const admin = require('firebase-admin'); 2const fs = require('fs'); 3 4exports.scheduledFunction = functions.pubsub.schedule('every 2 minutes').onRun(async (context) => { 5 const BUCKET_NAME = 'my_bucket' 6 const timestamp = Date.now(); 7 const filePath = `/tmp/test-${timestamp}.txt`; 8 // GCSにアップロードする前に一旦tmpフォルダにファイルを生成 9 fs.writeFileSync(filePath, 'test_text'); 10 const destination = `test/test-${timestamp}.txt` 11 // GCSにアップロード 12 await admin.storage().bucket(BUCKET_NAME).upload(filePath, { destination, public: true, metadata: { cacheControl: `public, max-age=60` } }); 13 return null; 14});

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

Cloud Functions はあなたのPC上で動いているのではなく、GCPのサーバ上で動いているためです。

投稿2022/04/10 16:14

madoka-t

総合スコア379

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ozaki1998

2022/04/10 16:19 編集

早速のご回答ありがとうございます。 コードのtmpフォルダは、ローカルでなくGCPサーバ上のtmpフォルダを指している、ということでしょうか?
madoka-t

2022/04/10 16:21

はい、そういうことです。 >Cloud Functions では、「tmpfs」ボリュームと呼ばれるローカルのディスク マウント ポイント(/tmp)にアクセスできます。このボリュームに書き込まれたデータはメモリに保持されます。/tmp マウント ポイントの使用に伴う料金はありませんが、ここにデータを書き込むと、その関数に対してプロビジョニングされたメモリリソースが消費されます。 >https://cloud.google.com/functions/pricing?hl=ja Cloud Functionsの処理中で一時的にファイルを作成する際に利用できるディレクトリになっています。
ozaki1998

2022/04/10 16:25

そうなんですね!ローカルのtmpかと思っておりました。 公式にそのような記載があることは失念しておりました。 ありがとうございます!
guest

0

ご回答いただいた内容で解決いたしました。
ありがとうございました!

投稿2022/04/10 16:25

ozaki1998

総合スコア9

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YT0014

2022/04/10 23:47

お礼などは回答へのコメントか、質問文への追記で行ったほうが良いかと。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問