Google Scriptを使用してAWS Cloudwatchからデータを取得する例

Cloudwatch Logは、アプリケーションまたはBashスクリプトが文字列またはJSONの形式でデータを送信できるAWSサービスで、同じAWSを使用してそれらを検索したり、さまざまなグラフを作成したりできます。



ある日、AWS Cloudwatch Logからデータを取得し、特別な方法で処理し、グラフに美しく表示したいという思いがありました。 Google Spreadsheetはデータの視覚化に優れており、以前は同様のタスクでRubyを使用してデータをロードしていました。 ただし、同じrubyスクリプトをどこかでホストし、定期的に実行する必要があります。1つのAPI(AWS)からデータを要求し、別のAPI(Spreadsheet)に配置するだけです。 Spreadsheet自体がデータをリクエストできればいいのですが、Google Scriptを使用してデータをリクエストできることがわかりました。 実際にGoogleドックがいくつできるかは驚くべきことです。



Google Scriptを使用すると、JavaScriptを使用してカスタム関数やカスタムマクロを作成できるだけでなく、外部APIにもアクセスできます。

AWSにはJavaScript SDKがあるため、問題はないと思っていましたが、そこにはありませんでした。 GSプロジェクトにインポートされているこのSDKは、「ウィンドウ」オブジェクトを見つけることができず、機能しないことが判明しました。



APIドックを読んで、リクエストの署名計算を自分で実装する必要がありました。 文字列を接着してハッシュを計算するだけで、技術的に複雑なものはありません。 したがって、詳細には触れませんが、誰かが同様のタスクに遭遇した場合に備えて、単に私の決定を提示します。





githubに投稿されたコード



その動作を確認するには、次のことができます。





コードはGetMetricStatisticsリクエストを使用しますが、必要に応じて、他のメソッドをリクエストできます。署名アルゴリズムは変更されません。



更新:「リソース」->「現在のプロジェクトのトリガー」からこの機能の定期的な起動を設定できることを完全に忘れました。



All Articles