4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Strands AgentsをLambdaにデプロイし、トレースをAgentCoreオブザーバビリティ(生成 AI オブザーバビリティ)に送るぜ

4
Posted at

やります。人力で書いてるので、短く、端的に行きます。

手順

マネコンでいきます。

  1. Lambdaを新規作成する

    • ランタイムはPython 3.13(3.14はだめ)
    • ARM64アーキテクチャを選ぶ(好み)
  2. Lambdaレイヤーを追加する
    なんと、Strands AgentsとADOT(AWS Distro for OpenTelemetry)はどちらもLambdaレイヤーがあります。pip不要です。東京リージョンの場合のARNはこちら。

    • arn:aws:lambda:ap-northeast-1:615299751070:layer:AWSOpenTelemetryDistroPython:25
    • arn:aws:lambda:ap-northeast-1:856699698935:layer:strands-agents-py3_13-aarch64:2

    注意点ですが、 Lambdaレイヤーの順番が重要です。 ADOTが先(上)で、Strands Agentsが後(下)です。逆にするとエラーです。
    参考
    https://aws-otel.github.io/docs/getting-started/lambda
    https://strandsagents.com/docs/user-guide/deploy/deploy_to_aws_lambda/#using-the-strands-agents-lambda-layer

  3. 設定->アクセス権限から、ロールに適切な権限を追加する

  4. 一般設定->一般設定からタイムアウトを伸ばす

  5. コードを書く

    from strands import Agent
    import json
    
    def lambda_handler(event, context):
        # TODO implement
        agent = Agent(model="global.anthropic.claude-haiku-4-5-20251001-v1:0")
        response = agent("Hello")
        
        return {
            'statusCode': 200,
            'body': json.dumps(response.message['content'][0]["text"], ensure_ascii=False)
        }
    
  6. CloudWatchでロググループを作成する。名前は何でもいいと思いますが、OTELの送り先のロググループを作ります。AgentCoreをまねるとこんな感じ
    /aws/bedrock-agentcore/runtimes/strands-agents

    ついでに有効化してなかったら「CloudWatch Transaction Search」を有効化します。

  7. Lambdaの環境変数をセットする。
    AWS_LAMBDA_EXEC_WRAPPERはADOTの設定、それ以外はAgentCoreのドキュメントを参考にしました。

    環境変数
    AWS_LAMBDA_EXEC_WRAPPER /opt/otel-instrument
    AGENT_OBSERVABILITY_ENABLED true
    OTEL_PYTHON_DISTRO aws_distro
    OTEL_PYTHON_CONFIGURATOR aws_configurator
    OTEL_RESOURCE_ATTRIBUTES service.name=strands-agents,aws.log.group.names=/aws/bedrock-agentcore/runtimes/strands-agents
    OTEL_EXPORTER_OTLP_LOGS_HEADERS x-aws-log-group=/aws/bedrock-agentcore/runtimes/strands-agents,x-aws-log-stream=runtime-logs,x-aws-metric-namespace=bedrock-agentcore
    OTEL_EXPORTER_OTLP_PROTOCOL http/protobuf
    OTEL_TRACES_EXPORTER otlp

これで行けるはず!?

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?