[アップデート] AWS SAM の AWS 公式 Kiro power が追加されていたので使ってみた

[アップデート] AWS SAM の AWS 公式 Kiro power が追加されていたので使ってみた

2026.03.15

いわさです。

最近 Kiro IDE を使っていく中で、特に AWS 公式の Kiro powers をよく使うっています。
定期的に様々な公式 power が追加されていっているのですが、先日のアップデートで AWS SAM の power が追加されました。

https://aws.amazon.com/about-aws/whats-new/2026/03/aws-sam-kiro-power/

Kiro powers は AWS re:Invent 2025 でリリースされた機能です。
カスタム power を作ることもできますし、サードパーティや AWS 公式の power など様々なものをインストールすることができます。

https://dev.classmethod.jp/articles/kiro-powers-introduction/

よく AWS SAM を使って開発をすることがあるのですが、最近 AI エージェントを利用して開発することもあります。
そうした時にこれらの公式 power を使うことでベストプラクティスに沿った開発をしてくれます。
今回こちらの AWS SAM 向けの公式 power を使って power なしの場合と比較してみたので、その様子を紹介します。

AWS SAM power なしの場合

Kiro IDE で Vibe モードを使って適当な SAM アプリケーションを作ってみましょう。

A93D9338-2882-4B30-A4CD-ED0AFEC37BB9.png

Hello Worlds 的なものが作成されるのですが、次のような内容になっています。
sam initしただけのような最低限の実装ですね。

template.yaml
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: SAM Application

Globals:
  Function:
    Timeout: 10
    Runtime: python3.12
    MemorySize: 128

Resources:
  HelloFunction:
    Type: AWS::Serverless::Function
    Properties:
      Handler: app.lambda_handler
      CodeUri: src/
      Architectures:
        - arm64
      Events:
        HelloApi:
          Type: Api
          Properties:
            Path: /hello
            Method: get

Outputs:
  HelloApi:
    Description: API Gateway endpoint URL
    Value: !Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/hello/"
  HelloFunction:
    Description: Lambda Function ARN
    Value: !GetAtt HelloFunction.Arn
src/app.py
import json


def lambda_handler(event, context):
    return {
        "statusCode": 200,
        "body": json.dumps({"message": "hello world"}),
    }

AWS SAM power ありの場合

では power を使ってみましょう。
「AWS SAM」という power が追加されているのでインストールします。

A4349B47-A390-41D5-9A7C-836675E9A286.png

先ほどと同じように Vibe モードで指示をします。
AWS SAM power がアクティベートされていることが確認できますね。

7885839A-E64F-47BB-91A0-840422D73973.png

実装が終了しました。

44EE6AD6-2EB6-444A-91FF-A1ED35FA2DF1.png

template.yaml
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: >
  my-serverless-app

  Sample SAM Template for my-serverless-app

Globals:
  Function:
    MemorySize: 512
    Runtime: python3.13
    Timeout: 5
    Tracing: Active
    Layers:
      - !Sub arn:aws:lambda:${AWS::Region}:017000801446:layer:AWSLambdaPowertoolsPythonV3-python313-x86_64:29
  Api:
    TracingEnabled: true

Resources:
  HelloWorldFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: infrastructure/lambda/hello_world/
      Handler: app.lambda_handler
      Architectures:
        - x86_64
      Environment:
        Variables:
          POWERTOOLS_SERVICE_NAME: HelloWorld
          POWERTOOLS_METRICS_NAMESPACE: MyServerlessApp
      Events:
        HelloWorld:
          Type: Api
          Properties:
            Path: /hello
            Method: get

Outputs:
  HelloWorldApi:
    Description: "API Gateway endpoint URL for Prod stage for Hello World function"
    Value: !Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.${AWS::URLSuffix}/Prod/hello/"
  HelloWorldFunction:
    Description: "Hello World Lambda Function ARN"
    Value: !GetAtt HelloWorldFunction.Arn
  HelloWorldFunctionIamRole:
    Description: "Implicit IAM Role created for Hello World function"
    Value: !GetAtt HelloWorldFunctionRole.Arn
infrastructure/lambda/hello_world/app.py
from aws_lambda_powertools import Logger, Metrics, Tracer
from aws_lambda_powertools.metrics import MetricUnit

logger = Logger()
tracer = Tracer()
metrics = Metrics()


@logger.inject_lambda_context
@tracer.capture_lambda_handler
@metrics.log_metrics
def lambda_handler(event, context):
    metrics.add_metric(name="HelloWorldInvocations", unit=MetricUnit.Count, value=1)

    return {
        "statusCode": 200,
        "body": '{"message": "hello world"}',
    }

同じように Hello World のサーバーレス API が実装されている感じですが、細かいところが違っていますね。

インフラレイヤーを見てみると、Lambda Powertools レイヤーが追加されていたり、X-Ray トレーシングオプションが有効化されています。
アプリケーションレイヤーを見てみると、その Lambda Powertools を使ってトレーシングやメトリクスなどの情報がいくつか付与されていますね。
プロジェクト構造も若干違っています。

この power はどういう内容になっているのでしょうか。リポジトリが公開されているので確認してみましょう。
power の内容を確認するためには POWER.md をまずは確認してみます。

https://github.com/kirodotdev/powers/blob/main/aws-sam/POWER.md

この power がアクティベートされるキーワードはsamserverlessなどです。
AWS Serverless MCP Server を使って SAM の操作を行うみたいですね。

https://awslabs.github.io/mcp/servers/aws-serverless-mcp-server/

今回のじそす範囲では使われていませんが、POWER.md を見てみると他にも様々なベストプラクティスが定義されていたり、ユースケースごとの推奨実装例みたいものが定義されていますね。

また、ステアリングファイルを確認してみるとインフラレイヤーの様々なベストプラクティスが定義されています。
例えば暗号化は必須で有効化することや、各サービスのバックアップ機能を有効化すること、オブザーバビリティの実装などです。

さいごに

本日は AWS SAM の AWS 公式 Kiro power が追加されていたので使ってみました。

特に power なしでプロンプトも不十分な場合は最低限の実装になっており、追加で対応するべきベストプラクティスがいくつも存在していることがわかりました。
power を使うことでそれらを暗黙的に導入することができますし、必要な時だけアクティベートされるのでそれらの MCP やステアリングファイルに必要なコンテキストも最適化されそうです。
AWS SAM の開発をするのであればとりあえずインストールしておいたほうが良さそうな power だなと思いました。

この記事をシェアする

FacebookHatena blogX

関連記事