現在、ローカル サーバーでビデオの処理を行っていますが、これをクラウドにアウトソースしたいと考えています。Google Cloud には非常に詳しいので、Google を選びます。プロセスは次のようになります。
- クラウドストレージへのビデオファイルのアップロード
- Compute Engine インスタンスでのファイルの処理
- 処理済みのビデオをクラウドストレージに保存する
平均すると、Compute Engine インスタンスは 1 日 1 時間必要になります。インスタンスの電源を自動的にオンにしたり、必要に応じてシャットダウンしたりする簡単な方法はありますか? それを実行するにはどうすればよいでしょうか?
答え1
これを行うにはもっと簡単な方法があります。
GCPは、クラウド機能. その中に、イベントによって呼び出されるスクリプトやトリガーそのうちの一つはクラウドストレージトリガーオブジェクトの作成(ファイルのアップロード)やオブジェクトの削除(ファイルの削除)などの Cloud Storage イベントによってアクティブ化されます。
Cloud Functions は、ファイル (この場合はビデオ) を読み取り、その中のすべてのプロセスを実行して結果を返すか、または、あなたのケースでは、結果を GCS バケット (ファイルがアップロードされた場所と同じでも、別の場所でもかまいません) に保存します。ここアップロードしたファイルとやり取りするためのコードサンプルが見つかります。
処理した動画を保存するには、クラウド ストレージ クライアント ライブラリ使用する言語によって異なります(Cloud StorageとCloud Functionsでサポートされている言語は次のとおりです)。Node.js、パイソン、行く、ジャワそしてC#)を確認する必要がありますコードサンプル結果をバケットにアップロードします。
Cloud Functionsを使用すると、必要なときにのみリソースを使用するため、Compute Engineに比べてはるかに安価なオプションになります。唯一の欠点は、メモリとCPUこのサービスはサポートしています。
リソース (メモリ 128 MB から 4096 MB) が実行するプロセスに適していない場合は、次の手順に従うこともできます。
- Compute Engineインスタンスを作成するには、マシンタイプユースケースに必要なすべてのプロセスを実行するスクリプトを配置します。作成してすべてがセットアップされたら、やめて。
- GCSイベントトリガー(すでに提供されているドキュメントを使用)を使用してCloud Functionを作成し、それが呼び出されるたびにコードを介してGCEを再起動します。これは、Compute Engine クライアント ライブラリまたはAPIについて(あなたの好きな言語で HTTPS リクエストを思いつきます)。
- すべての情報を GCE に送信し、マシンを動作させます (Cloud Functions で GCE からの応答を待機するためのコードを追加する必要がある場合があります)。
- 終了したら、ファイルを Cloud Storage にアップロードし、すべてが完了したことを Cloud Functions に通知します。
- この確認を受け取ったら、Cloud Functions に GCE を再度停止するように指示します。
Compute Engineは、VMが稼働している時間したがって、この代替シナリオを実行すると、必要なリソースを備えた適切な価格で必要なソリューションが提供される可能性もあります。
Cloud Scheduler を使用した GCE のスケジュール設定も選択肢の 1 つですが、GCE がいつ使用されるかは実際にはわかりません。そのため、Cloud Functions を使用すると、必要な製品が少なくなり、ユーザー側の労力も少なくなります。