サイトアイコン 協栄情報ブログ

AWS Lambda から Gemini APIを利用した呼出しハンズオン

はじめに

仕事の都合で最近は、Geminiばっかりの毎日です。
気になることもあるので、まずはAWS環境からGeminiを呼びだそうと思ったのでハンズオンをしてみます。

Geminiとは?

2種類のAPIについて

API名 内容 認証
Gemini API 直接GeminiモデルにアクセスするAPI GoogleアカウントとAPIキーを使用して認証
Vertex AI API Vertex AIプラットフォーム経由でGemini機能にアクセスするためのAPI Google Cloudサービスアカウントを使用して認証

参照ドキュメント:Gemini API
参照ドキュメント:Vertex AI API

ハンズオン

1.Google Cloudの準備

1.1.アカウント作成(既にある場合は、既存アカウントを利用でも可)

Goolgeアカウントを作成

1.2.Google Cloudプロジェクト作成

プロジェクトを作成する

プロジェクト名 場所
${プロジェクト名} 組織なし

1.3.API有効可

1.4.認証情報の取得

2.Lambdaレイヤーの準備

2.1.ライブラリのインストール

# ディレクトリの作成
mkdir python

# 作成したディレクトリにライブラリをインストール
pip install  google-genai -t python

# ライブラリをZIP圧縮
zip -r layer.zip python

2.2.Lambdaレイヤーの作成

名前 .zipファイルをアップロード 互換性のあるアーキテクチャ 互換性のあるランタイム
${Lambdaレイヤー名} ダウンロードした「layer.zip」 x86_64 Python 3.9

3.Lambdaの構築

3.1.Lambda構築

関数名 ランタイム アーキテクチャ
${Lambda関数名} Python 3.9 x86_64

3.2.コード

キー 選定理由
model gemini-2.0-flash 最新モデルのため選定
contents AIの仕事を50文字で教えて 簡単な質問及び文字数制限で、予想外のトークンを抑える意図
import os
from google import genai

def lambda_handler(event, context):
    api_key = os.environ.get("API_KEY")
    client = genai.Client(api_key=api_key)
    response = client.models.generate_content(
        model="gemini-2.0-flash", 
        contents="AIの仕事を50文字で教えて"
    )
    return {
        "statusCode": 200, 
        "body": response.text
    }

3.3.その他Lambdaの設定変更

3.3.1.レイヤー
レイヤーソース レイヤー選択 バージョン
カスタムレイヤー ${Lambdaレイヤー名} 1
3.3.2.環境変数
キー
API_KEY ${1.4.認証情報の取得した値}

※簡易検証のためAPIキーを環境変数に設定しています。ただし本番利用の際は、AWS Secrets Managerなどを利用してセキュアに運用ください。

3.3.3.一般設定
タイムアウト
5分

※Geminiへの質問量により、各自適切な値に修正する。

4.実行結果

4.1.Lambdaでの画面

4.2.Googleでの画面

おわりに

得られた知見

今後の課題

モバイルバージョンを終了