2017-12-27 9 views
0

私のワークフローでは、一連のEC2サーバーを起動し、Excelブックのさまざまな部分で動作させることがよくあります。それは理想的ではありませんが、それはどのようにそうですか。私は可能な限りこのプロセスを自動化したいと思います。起動後にEC2インスタンスを開いてファイルを開くことはできますか?

理想的には、起動時にExcelワークブックを開いたAMIを作成します。このブックは、ドロップボックスフォルダから名前付きExcelワークブックを取り出し、そのブックを開いてオートスキャンを実行したスクリプトを自動実行します。私がしなければならなかったこの方法は、2番目のExcelワークブック用のスクリプトをコード化し、それを "魔法の"名前にして、Dropboxにアップロードし、最初のワークブックで適切な数のAMiインスタンスを開始し、作業は完了し、Dropboxフォルダにアップロードされました。

私はこれを行う方法を知っていますが、EC2インスタンスを起動した後に「ブートストラップ」Excelファイルを開くことを除いては、これは可能ですか?

答えて

0

起動時にawsサーバーのセットアップをコントローラとして呼び出すamiを作成します。あなたがamiから発射する多くのインスタンスがコントローラを呼び出し、作業を要求します。

+1

作業が事前に分かっている場合は、作業項目をSQSキューに配置し、各EC2インスタンスでそのキューから項目をプルすることをお勧めします。 – jarmod

2

EC2インスタンスを起動すると、userdataが指定されます。そのuserdataは、インスタンスの起動時に自動実行されるスクリプトにすることができます。

もう1つの方法は、EC2インスタンスの起動後に操作/スクリプトをリモートから呼び出すことです。インスタンスを起動するための簡単な自動化、準備ができるまで待ってから、動的パラメータを使用してExcelスクリプトをリモートから呼び出すことができます。

もう1つの選択肢は、作業項目をSQSキューに配置してから、userdataのアイデアを使用してインスタンスの起動時にスクリプトを実行し、キューからアイテムを引き出して機能させることです。

また、AWSラムダを使用することも考えられます。単にS3にブックをアップロードし、そのトリガーにラムダ機能を持たせるだけです。ワークブック全体を読み込んで処理することもできますし、別のタスクで処理されるワークブックの部分が本当に必要な場合は、ラムダ関数がいくつかの下位ラムダ関数を呼び出すことができます。

0

Windowsサービス/タスクを作成し、起動時にbatファイルを実行できます。 batファイルは、スクリプトを実行するExcelファイルを開きます。

このアプローチは、AWSサービスを使用するより簡単かもしれないと思います。

関連する問題