everyone!皆さんこんにちは!お久しぶりのSHUです。FunctionComputeの紹介と実用例を1つご紹介します。CloudのFunctionComputeというサーバーレスでコードを実行できるプロダクトを使ってみます。CloudのリソースをAPIで操作することができます。Computeで実現したいこと従量課金で建てたECSを朝と夜の特定時間に自動起動ならびに自動停止させます。背景としては、社内検証でECSを従量課金で複数台作りそのままにしておくことがあり、不使用時にもコストが発生していたことがもったいない!と思ったからです。FunctionComputeで実現する場合に、以下2点メリットが挙げられます。Cloud側で豊富なSDKを用意しており、使い慣れたプログラミング言語で開発できるより柔軟にECSの自動停止と自動起動を実現させるためにECSにはタグ機能があり、タグにはkeyとvalueを設定することが可能です。今回は、このタグのkeyを用いて、自動起動ならびに自動停止の対象とするECSを決定します。keyの値はStart&Stopとして、タグを付けたECSとタグを付けていないECSで比較していきます。タグっぽいアイコンがよりグレー色なECSが、タグなしのECSになります。Cloud国際サイトのドキュメントセンターによると以下の通りです。CloudのFunctionComputeはイベント・ドリブンかつフルマネージドのコンピュートサービスである。FunctionComputeを用いることで、迅速にいかなるタイプのアプリケーションまたはサービスをマネジメントやQ&Mを考慮せずに構築可能になる。複数のバックエンドサービスを僅かな日数で完了させることが可能。run.意訳FunctionComputeを利用することで、インフラリソースの管理や入手を心配せずにコードの作成とアップロードが可能になる。FunctionComputeは信頼性高く柔軟、(あなたの代わりに)コードを実行させるリソースを準備している。実際にコードを実行するにあたって消費したリソースのみの費用を支払う。実行していないアプリケーションコードの費用は請求されない。なんとなくは伝わりますが、英語がちょっとアレで結構?な点が多いです。公式ドキュメントのイメージ図です。FunctionComputeがどうはたらくか、ワークフローが視覚的にわかりやすいです!現在、対応しているSDKのプログラミング言語(ランタイム)は以下です。soon.とあるので、今後はRubyなども登場するのでしょうか?python3.xによる全体コード自動起動と自動停止をインスタンスステータスに応じてif文で分岐させて1つのコードにまとめても良かったのですが、わかりやすくするためにfunctionごとに関数を分けました。次に、自動実行させる設定をしていきます。タイムトリガーが利用でき、cronのような時間設定をすることで指定の時間に作成した関数を実行させることが可能です。注意点FunctionComputeでは、UTC協定時間を採用しています。UTC日本時間とUTC協定時間では+9時間の時差があります。いま僕がこのQitta記事を書いているUTC日本時間とUTC協定時間の時差は以下のとおりです。日本はUTC協定時間に対して、+9時間進んでいるので、日本時間の-9時間の時間をcronの時間として設定してあげる必要があります。タイムトリガーの設定GUIすでに私のコンソールで設定されているStartInstanceの関数のタイムトリガーから設定を見てみます。次に、StopInstanceの設定を見ます。同様にCron式で時間がセットされています。9:00に対象タグ(Start&Stop)がついているECSインスタンスが自動停止するようになりました!!🎉おまけ自身が使用する言語のAPIのClassやメソッドの作りなどを確認するにあたって、いくつかの便利な方法をご紹介します。Cloudで用意されているAPIを検索することができます。検索したAPIに必須パラメータを記載したうえで、そのままAPIリクエストを送信することも可能です。CloudのAPIを利用するにあたって利用は必須です。Cloudが公開しているSDKのGitHubリポジトリを見るあまり見ることはないかもしれませんが、直接GitHubのリポジトリを見るのも1つの方法です。Cloud開発している各種SDKがすべて格納されているので、困ったときに見に行っちゃうのもアリです。python系のメソッドは以下のPathに格納されています。reserved.スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。