Windows: Power Automate DesktopでAWS起動・停止

Windows

Power Automate Desktopを導入したので試験的にいじってみる。まずはAWSの起動と停止から。

事前準備

事前準備として「Power Automate Desktop」の導入と、AWSへのIAMでのログイン設定が必要。
過去の記事参照

Windows:Power Automate Desktopを使って無料でRPA
Windows 10ユーザ向けにRPA(Robotic Process Automation)機能を利用できる「Power Automate Desktop」を無料で公開しています。 Windows 10上の操作を記録し、記録した内容をカスタマイズして再実行させるといったことが可能になり、さまざまなWindowsの操作を自動化できるらしいので、試しに使ってみる。
AWS:IAMで作業用のアカウントを作成する
今まですべてルートユーザで作業してきたが、IAMで別途作業用のユーザを作成する。 IAMでユーザを作るのに料金は発生しない。 (Power Automate Desktop でAWSを起動するためにも必要っぽい。)

Power Automate Desktop フロー

新しいフローを適当な名前を付けて作成。
作ったフローは下記のようなもの。アクションの「AWS」→「EC2」にある機能をざっとつかってみた。EC2を起動して、停止してしまっているので、意味はない。起動だけの方が使い道はあると思う。
結果として「インスタンスを記述します」、「使用可能なEC2インスタンスを取得します」は利用する必要性が感じられなかった。

アクション:EC2セッションを作成します

これをすることでAWSのEC2の操作ができる。IAMのユーザに権限がついていることが重要。
アクセスキーIDとシークレットはAWSのIAMで設定したユーザのもの。リージョンのエンドポイントはEC2の作成されている場所を設定すればOK

アクション:インスタンスを記述します

インスタンスの情報を「EC2Instances」という変数に格納してくれる。変数の内容は「インスタンスの状態(RunningとかStoppedとか)」と「可用性ゾーン」。
設定値のEC2クライアントは前述のセッションの作成で得られる変数。「インスタンスID」、「可用性ゾーン」はEC2の設定から。(AWS側では「可用性ゾーンは「アベイラビリティゾーン」という名前)

アクション:使用可能なEC2インスタンスを取得します

使用可能なインスタンスの情報を「EC2InstancesInfo」という変数に格納してくれる。変数の内容は「EC2Instances」と同じ「インスタンスの状態(RunningとかStoppedとか)」と「可用性ゾーン」。
(インスタンスが複数ある場合にこっちは複数のインスタンス情報が表示されるものと思われる。)

設定値のEC2クライアントは前述のセッションの作成で得られる変数。「可用性ゾーン」はEC2の設定から。(AWS側では「可用性ゾーンは「アベイラビリティゾーン」という名前)

アクション:EC2インスタンスを開始する

指定したインスタンスIDのEC2サーバを起動する。

設定値のEC2クライアントは前述のセッションの作成で得られる変数。「インスタンスID」はEC2の設定から。(ここでフローを止めて、インスタンスがちゃんと起動していることを確認してみるとよいかも)

アクション:メッセージを表示

試験的に実施しているので、アクションで取得した変数の内容を表示してみたもの。

出力内容は下のようなものでした。最後の「StartingEc2Instances」は起動処理を仕掛けてすぐの状態らしく、まだ「pending」で起動はしきっていない状態となっている。
(何か待ちの処理で起動しきってから次に進む方がよさそうだが、ぱっと見ではどれかわからなかった。)

アクション:EC2インスタンスを停止します

指定したインスタンスIDのEC2サーバを停止する

設定値のEC2クライアントは前述のセッションの作成で得られる変数。「インスタンスID」はEC2の設定から。

アクション:EC2セッションを終了する

最初に開始したセッションを終了。
設定値のEC2クライアントは前述のセッションの作成で得られる変数。

終わりに

Power Automate DesktopでできるAWSの操作はある程度わかった。
AWS操作に関しては他は「スナップショット」しかないので、いまのところはそんなにできることはなさそう。まあ有料版ならもっと多機能なのかもしれないけど。

AWS以外のところでまた機能をみていこうかな。

コメント

タイトルとURLをコピーしました