AWS Toolkit for Visual Studio に CloudWatch Logs 統合機能が追加されました

2022.07.02

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

いわさです。

Visual Studio で AWSワークロードを開発する際には AWS Toolkit for Visual Studio という Visual Studio 拡張機能を使うことで、様々なAWSサービスをIDEへ統合することが出来ます。

今週のアップデートv1.33.0.0で CloudWatch Logs の統合機能が追加されました。
こちらを使うとマネジメントコンソールを開かずに、Visual Studio上からCloudWatch Logsへアクセスすることが出来ます。

本日はこちらの最新機能を試してみたいと思います。

拡張機能のインストール/アップデート

Visual Studio の拡張機能メニューから AWS Toolkit for Visual Studio のダウンロードとインストールを行うことが出来ます。
本日時点でサポートされているバージョンは Visual Studio の 2022, 2017, 2019 となっています。
この記事では Visual Studio 2022 を使っています。

拡張機能より拡張機能の管理を選択し、オンラインからAWS Toolkit for Visual Studioを検索するか、既に旧バージョンをインストール済みの場合は更新プログラムタブから更新を行います。

更新操作を行ったのちは、一度 Visual Studio の再起動が必要です。
終了したタイミングでスケジュールされたインストールが開始され、再びVisual Studioを起動するとアップデートされた状態になります。この過程で管理者権限が要求される場合もあります。

Lambda関数をデプロイしCloudWatch Logsを確認してみる

AWS Toolkit for Visual Studio を使うと、Lambda も豊富なテンプレートから開発を始めることが出来ます。
また、Lambdaのデプロイ機能を使うことで簡単にデプロイも出来ます。せっかくなのでこのあたりも使ってみます。

Amazon.Lambda.Core.LambdaLoggerを使ってログの出力を行います。
Console.WriteLogでも問題ないです。

using Amazon.Lambda.Core;

// Assembly attribute to enable the Lambda function's JSON input to be converted into a .NET class.
[assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.SystemTextJson.DefaultLambdaJsonSerializer))]

namespace AWSLambda2;

public class Function
{
    
    /// <summary>
    /// A simple function that takes a string and does a ToUpper
    /// </summary>
    /// <param name="input"></param>
    /// <param name="context"></param>
    /// <returns></returns>
    public string FunctionHandler(string input, ILambdaContext context)
    {
        LambdaLogger.Log("hogehogehoge");
        return input.ToUpper();
    }
}

Upload to AWS Lambdaでサクっとデプロイ出来ますが、CloudWatch Logsへのアクセス権限のあるロールを設定しましょう。
既存ロールでも良いですし、以下のようにNew role based on AWS managed policyからAWSLambdaBasicExecutionRoleを選択しても良いです。

実行してみます。

ログを確認

Visual Studio 上のLambda実行ウインドウにLogsのタブがあり、そちらからすぐにログストリームにアクセス出来ます。

また、AWSエクスプローラウィンドウから、CloudWatch Logsを選択するか、あるいは対象のLambdaのコンテキストメニューからView Logsを選択することでも確認することが出来ます。

Logs Insightへアクセス出来るわけではないですが、簡単なフィルター機能くらいであればここから十分に利用出来ます。

さいごに

本日は AWS Toolkit for Visual Studio に追加された CloudWatch Logs 統合機能を使ってみました。
Lambdaのデプロイや実行などに加えてログも Visual Studio から確認出来るようになったので、開発者がAWSマネジメントコンソールへアクセスせずとも開発を進められるのが良いですね。
アクセスキーとシークレットがあればログイン出来なくてもS3やCloudWatch Logsへアクセス出来るので、開発者向けにアクセスキーしか払い出されていない場合でもログにアクセスしやすくなりますね。