
- TOP
- ã¿ã°äžèЧ
- Google Cloud
Google Cloud
ã€ãã³ã
ãã¬ãžã³
æè¡ããã°
LINE ã¢ããªéçºã«æºãã£ãŠãã Hiraki ãšç³ããŸããæ®æ®µã¯ãLINE ã¢ããªã«ãããã¢ãŒããã¯ãã£ã®çµ±äžãæšé²ãããããžã§ã¯ãã®ãªãŒãããAI ãã€ãã£ããªéçºã¹ã¿ã€ã«ãæ¥åã«çµã¿èŸŒãããã®...
G-gen ã®äœã
æšã§ããåœèšäºã§ã¯ãAgent Development KitïŒä»¥äž ADK ãšèšèŒïŒã§éçºãã AI ãšãŒãžã§ã³ãã Cloud Run ã«ãããã€ããCloud Run ã®ãµã³ãããã¯ã¹æ©èœã«ãã Code ExecutionïŒLLM ãçæããã³ãŒãã®å®å
šãªå®è¡ïŒã詊ããŸãã æ§æ åœèšäºã§äœ¿çšãããã® Cloud Run ãšã¯ Cloud Run ã®ãµã³ãããã¯ã¹ãšã¯ ãµã³ãããã¯ã¹ã®æŠèŠ sandbox ã³ãã³ãã©ã€ã³ããŒã« å®è¡çµæã®ååŸãšãã¡ã€ã«ã®åãæž¡ã Agent Development KitïŒADKïŒãšã¯ ãšãŒãžã§ã³ãã®éçº ãã£ã¬ã¯ããªæ§æ uv ãããžã§ã¯ãã®äœæ agent.py __init__.py main.py Dockerfile .dockerignore Google Cloud åŽã®æºå API ã®æå¹å ãµãŒãã¹ã¢ã«ãŠã³ãã®äœæ ããã〠åäœç¢ºèª Web UI ãžã®ã¢ã¯ã»ã¹ ãšãŒãžã§ã³ããšã®å¯Ÿè©± ãã°ã®ç¢ºèª æ§æ åœèšäºã§ã¯ãADK ã§éçºãã AI ãšãŒãžã§ã³ããããµã³ãããã¯ã¹æ©èœãæå¹åãã Cloud Run ãµãŒãã¹ãšããŠãããã€ããŸãã åŠçã®æµãã¯ä»¥äžã®ãšããã§ãã ãŠãŒã¶ãŒã ADK ã® Web UI ãããšãŒãžã§ã³ãã«è³ªåãã ãšãŒãžã§ã³ãã質åãžã®åçã«å¿
èŠãªã³ãŒããçæãããµã³ãããã¯ã¹å
ã§ã³ãŒããå®è¡ããããã®ã«ã¹ã¿ã ããŒã«ãåŒã³åºã ããŒã«ã Cloud Run ã®éé¢ããããµã³ãããã¯ã¹å
ã§ã³ãŒããå®è¡ãã ãšãŒãžã§ã³ããå®è¡çµæãå
ã«åçãçæãã LLM ãçæããã³ãŒããã¢ããªã±ãŒã·ã§ã³ã®ã³ã³ããå
ã§çŽæ¥å®è¡ãããšãæå³ããªããã¡ã€ã«æäœãå€éšéä¿¡ãªã©ã®ãªã¹ã¯ããããŸããCloud Run ã®ãµã³ãããã¯ã¹æ©èœã䜿çšãããšããã¹ãã³ã³ããããéé¢ãããç°å¢ã§ã³ãŒããå®è¡ã§ããŸãã åœèšäºã§äœ¿çšãããã® Cloud Run ãšã¯ Cloud Run ã¯ãGoogle Cloud ã®ãã«ãããŒãžããªãµãŒããŒã¬ã¹ã³ã³ããå®è¡åºç€ã§ããã³ã³ããã€ã¡ãŒãžãŸãã¯ãœãŒã¹ã³ãŒãããããã€ããã ãã§ããªã¯ãšã¹ãæ°ã«å¿ããèªåã¹ã±ãŒãªã³ã°ãåãã Web ãµãŒãã¹ãå®è¡ã§ããŸãã Cloud Run ã®è©³çްã¯ã以äžã®èšäºã§è§£èª¬ããŠããŸãã blog.g-gen.co.jp Cloud Run ã®ãµã³ãããã¯ã¹ãšã¯ ãµã³ãããã¯ã¹ã®æŠèŠ Cloud Run ã® ãµã³ãããã¯ã¹ ïŒCloud Run sandboxesïŒã¯ãä¿¡é Œã§ããªãã³ãŒããé«éã»å®å
šã»éé¢ãããç°å¢ã§å®è¡ããããã®æ©èœã§ãã Cloud Run ãµãŒãã¹ã§ãµã³ãããã¯ã¹æ©èœãæå¹åãããšãã³ã³ããå
ã§ sandbox ã³ãã³ãã©ã€ã³ããŒã«ãå©çšå¯èœã«ãªããä»»æã®ã³ãã³ãããµã³ãããã¯ã¹å
ã§å®è¡ã§ããŸãã2026幎7æçŸåšããã®æ©èœã¯ Preview å
¬é ã§ãã ãµã³ãããã¯ã¹ã®äž»ãªç¹åŸŽã¯ä»¥äžã®ãšããã§ãã 第2äžä»£å®è¡ç°å¢ã® Cloud Run ã§ã®ã¿äœ¿çšå¯èœ ãµã³ãããã¯ã¹ã¯å¿
èŠã«å¿ããŠç¬æã«äœæãããããã«ã³ãã³ããå®è¡ã§ãã ãµã³ãããã¯ã¹å
ã®ããã»ã¹ã¯é root ãŠãŒã¶ãŒãšããŠå®è¡ãããããã©ã«ãã§ã¯èŠªã¯ãŒã¯ããŒãã Cloud Run ã®ã¡ã¿ããŒã¿ãµãŒããŒã«ã¢ã¯ã»ã¹ã§ããªãïŒããã»ã¹ã¬ãã«ã®åé¢ïŒ ãã¹ãã³ã³ããã®ç°å¢å€æ°ã¯ãµã³ãããã¯ã¹ã«ç¶æ¿ããããAPI ããŒãªã©ã®æ©å¯æ
å ±ãæå³ããåç
§ãããããšãé²ããïŒæž¡ãå Žå㯠--env ãã©ã°ã§æç€ºçã«æå®ããïŒ å€éšãžã®ã¢ãŠãããŠã³ãéä¿¡ã¯ããã©ã«ãã§ãããã¯ãããïŒ --allow-egress ãã©ã°ã§èš±å¯ã§ããïŒ ãµã³ãããã¯ã¹ããèŠããã«ãŒããã¡ã€ã«ã·ã¹ãã ã¯èªã¿åãå°çšïŒ --write ãã©ã°ããã€ã³ãããŠã³ãã§æžã蟌ã¿ãèš±å¯ã§ããïŒ ãµã³ãããã¯ã¹ã¯ãã¹ãã³ã³ãããšåäžã€ã³ã¹ã¿ã³ã¹å
ã§åäœããCPU ãšã¡ã¢ãªããã¹ãã³ã³ãããšå
±æãã ãµã³ãããã¯ã¹ã®äœæã»åé€ãªã©ã®ã©ã€ããµã€ã¯ã«ã€ãã³ã㯠Cloud Logging ã«èªåçã«èšé²ããã åè : Code execution in Cloud Run åè : Configure sandboxes for services sandbox ã³ãã³ãã©ã€ã³ããŒã« sandbox ã³ãã³ãã©ã€ã³ããŒã«ã«ã¯ä»¥äžã®ãµãã³ãã³ãããããŸãã ã³ãã³ã 説æ sandbox do äžæçãªãµã³ãããã¯ã¹ãäœæããŠã³ãã³ããå®è¡ããçµäºåŸã«ç Žæ£ãã sandbox run ãµã³ãããã¯ã¹ãèµ·åãã sandbox exec å®è¡äžã®ãµã³ãããã¯ã¹ã§ã³ãã³ããå®è¡ãã sandbox tar ãµã³ãããã¯ã¹ã®ãã¡ã€ã«ã·ã¹ãã ã®ã¹ãããã·ã§ãããååŸãã sandbox delete ãµã³ãããã¯ã¹ãåé€ãã åœèšäºã§ã¯ãåçºã®ã³ãŒãå®è¡ã«é©ãã sandbox do ã䜿çšããŸãã å®è¡çµæã®ååŸãšãã¡ã€ã«ã®åãæž¡ã ãµã³ãããã¯ã¹å
ã§å®è¡ããããã»ã¹ã®æšæºåºåã»æšæºãšã©ãŒã¯ãåŒã³åºãå
ã®ããã»ã¹ã«çŽæ¥è¿ãããŸããåŸè¿°ã®ãµã³ãã«ã³ãŒãã§ã¯ããã®ä»æ§ãå©çšã㊠subprocess ã¢ãžã¥ãŒã«çµç±ã§ã³ãŒãã®å®è¡çµæãååŸããŸãã ãµã³ãããã¯ã¹ã®ãã¡ã€ã«ã·ã¹ãã ãžã®æžã蟌ã¿ã¯ã --write ãã©ã°ã§èš±å¯ããå Žåãäžæçãªãã®ã§ããã¹ãã³ã³ããããã¯åç
§ã§ããŸããã å®è¡çµæãšããŠãã¡ã€ã«ãåãåºãå Žåã¯ããµã³ãããã¯ã¹å
ã§å€æŽããããã¡ã€ã«ã tar ã¢ãŒã«ã€ããšããŠåºåãã --export-tar ãã©ã°ïŒåã蟌ã¿ã¯ --import-tar ãåæ¹ååæã¯ --sync-tar ïŒãã --mount ãã©ã°ã«ãããã€ã³ãããŠã³ãã䜿çšããŠããã¹ãã³ã³ãããšãã¡ã€ã«ãåãæž¡ãããŸãã Agent Development KitïŒADKïŒãšã¯ Agent Development Kit ïŒä»¥äž ADK ãšèšèŒïŒã¯ãGoogle ãéçºãããªãŒãã³ãœãŒã¹ã®ãšãŒãžã§ã³ãéçºãã¬ãŒã ã¯ãŒã¯ã§ãã ADK 㯠PythonãTypeScriptãGoãJava ã«å¯Ÿå¿ããŠãããéçºãããšãŒãžã§ã³ãã¯ããŒã«ã«ç°å¢ã®ã»ããAgent RuntimeïŒæ§ç§° Agent EngineïŒãCloud RunãGoogle Kubernetes EngineïŒGKEïŒã«ãããã€ã§ããŸãã åœèšäºã§ã¯ Python çã® ADKïŒ google-adk ïŒã䜿çšããŸãã åè : Agent Development Kit åè : google/adk-python ãšãŒãžã§ã³ãã®éçº ãã£ã¬ã¯ããªæ§æ äœæãããããžã§ã¯ãã®ãã£ã¬ã¯ããªæ§æã¯ä»¥äžã®ãšããã§ãïŒ uv init ãçæãã README.md ã .python-version ãªã©ã¯çç¥ïŒã sandbox-agent/ âââ .dockerignore âââ Dockerfile âââ main.py # FastAPI ã¢ããªã®ãšã³ããªãŒãã€ã³ã âââ pyproject.toml âââ uv.lock âââ sandbox_agent/ # ADK ãšãŒãžã§ã³ãã®ããã±ãŒãž âââ __init__.py âââ agent.py # ãšãŒãžã§ã³ããšããŒã«ã®å®çŸ© uv ãããžã§ã¯ãã®äœæ uv ãããžã§ã¯ããåæåããäŸåããã±ãŒãžãšã㊠google-adk ãš uvicorn ã远å ããŸãã # uv ã®ã»ããã¢ãã $ uv init sandbox-agent --python 3 . 13 $ cd sandbox-agent # äŸåããã±ãŒãžã®ã€ã³ã¹ããŒã« $ uv add google-adk uvicorn # ãšãŒãžã§ã³ãã®ããã±ãŒãžãã£ã¬ã¯ããªãšãã¡ã€ã«ã®äœæ $ mkdir sandbox_agent $ touch sandbox_agent/__init__.py sandbox_agent/agent.py Dockerfile .dockerignore main.py 㯠uv init ã«ãã£ãŠçæããããããããã§ã¯äœæãããåŸã®æé ã§å
å®¹ãæžãæããŸããåãã¡ã€ã«ã®äžèº«ã¯ä»¥éã®ç¯ã§é ã«èšè¿°ããŠãããŸãã pyproject.toml ã¯ä»¥äžã®ããã«ãªããŸãã [project] name = "sandbox-agent" version = "0.1.0" description = "Add your description here" readme = "README.md" requires-python = ">=3.13" dependencies = [ "google-adk>=2.4.0" , "uvicorn>=0.51.0" , ] agent.py ãšãŒãžã§ã³ãæ¬äœãšã«ã¹ã¿ã ããŒã«ã sandbox_agent/agent.py ã«å®çŸ©ããŸãã import subprocess from google.adk.agents import Agent from google.adk.tools import FunctionTool SANDBOX_BIN = "/usr/local/gcp/bin/sandbox" PYTHON_BIN = "/usr/local/bin/python3" def execute_python_code (code: str ) -> dict : """Python ã³ãŒãããµã³ãããã¯ã¹å
ã§å®è¡ããçµæãè¿ãã Args: code: å®è¡ãã Python ãœãŒã¹ã³ãŒãã Returns: stdoutãstderrãreturncode ãå«ã dictã """ result = subprocess.run( [SANDBOX_BIN, "do" , "--" , PYTHON_BIN, "-c" , code], capture_output= True , text= True , timeout= 60 , ) return { "stdout" : result.stdout, "stderr" : result.stderr, "returncode" : result.returncode, } root_agent = Agent( name= "sandbox_agent" , model= "gemini-2.5-flash" , description= "Python ã³ãŒãããµã³ãããã¯ã¹ã§å®è¡ããŠåçãããšãŒãžã§ã³ã" , instruction=( "ããªãã¯ãŠãŒã¶ãŒã®è³ªåã«çããã¢ã·ã¹ã¿ã³ãã§ãã" "èšç®ãããŒã¿åŠçãå¿
èŠãªå Žåã¯ãå¿
ã Python ã³ãŒããæžããŠ" " execute_python_code ããŒã«ã§å®è¡ãããã®å®è¡çµæã«åºã¥ããŠåçããŠãã ããã" "å®è¡çµæã® stdout ããã®ãŸãŸåŒçšããã³ãŒãã®å
容ãç°¡åã«èª¬æããŠãã ããã" ), tools=[FunctionTool(func=execute_python_code)], ) ãã€ã³ãã¯ä»¥äžã®ãšããã§ãã execute_python_code 颿°ã FunctionTool ã§ã©ããããŠãšãŒãžã§ã³ãã®ããŒã«ãšããŠç»é²ããŠããã颿°ã®ããã¥ã¡ã³ããŒã·ã§ã³æååãšåãã³ããããŒã«ã®ä»æ§ãšã㊠LLM ã«æž¡ããã ããŒã«å
ã§ã¯ããµã³ãããã¯ã¹æ©èœã®æå¹åæã«ã³ã³ãããžé
眮ããããã€ã㪠/usr/local/gcp/bin/sandbox ã subprocess ã§åŒã³åºãã sandbox do -- /usr/local/bin/python3 -c <ã³ãŒã> ã®åœ¢åŒã§ LLM ãçæãã Python ã³ãŒãããµã³ãããã¯ã¹å
ã§å®è¡ããŠãã ãµã³ãããã¯ã¹ããã¯ãã¹ãã³ã³ããã®ã«ãŒããã¡ã€ã«ã·ã¹ãã ãèªã¿åãå°çšã§åç
§ã§ãããããã³ã³ããã€ã¡ãŒãžã«å«ãŸãã Python ã©ã³ã¿ã€ã ããµã³ãããã¯ã¹å
ã§ãå®è¡ã§ãã ãµã³ãããã¯ã¹ã«ã¯ãã¹ãã®ç°å¢å€æ°ãç¶æ¿ããããå®è¡ããã³ãã³ãã® PATH 解決ãè¡ãããªããããã³ãã³ã㯠/usr/local/bin/python3 ã®ãããªçµ¶å¯Ÿãã¹ã§æå®ããå¿
èŠããã __init__.py ADK ããšãŒãžã§ã³ããèªèã§ããããã«ã sandbox_agent/__init__.py ã§ agent ã¢ãžã¥ãŒã«ãã€ã³ããŒãããŠãããŸãã from . import agent main.py Cloud Run äžã§ãšãŒãžã§ã³ãã Web ã¢ããªã±ãŒã·ã§ã³ãšããŠå
¬éãããããADK ãæäŸãã get_fast_api_app() ã§ FastAPI ã¢ããªãäœæããŸãã import os from google.adk.cli.fast_api import get_fast_api_app AGENTS_DIR = os.path.dirname(os.path.abspath(__file__)) app = get_fast_api_app( agents_dir=AGENTS_DIR, allow_origins=[ "http://localhost:8080" , "http://127.0.0.1:8080" ], web= True , ) if __name__ == "__main__" : import uvicorn uvicorn.run(app, host= "0.0.0.0" , port= int (os.environ.get( "PORT" , 8080 ))) get_fast_api_app() ã¯ãADK ã®éçºçš Web UI ãšãšãŒãžã§ã³ãå®è¡çšã® REST API ãå«ã FastAPI ã¢ããªãè¿ããŸãã agents_dir ã«ã¯ãšãŒãžã§ã³ãã®ããã±ãŒãžïŒåœèšäºã§ã¯ sandbox_agent/ ïŒã眮ããããã£ã¬ã¯ããªãæå®ãã web=True ã§ Web UI ãæå¹åããŸããããŒãçªå·ã¯ Cloud Run ãèšå®ããç°å¢å€æ° PORT ããååŸããŸãã allow_origins ã«ã¯ãåŸè¿°ã®åäœç¢ºèªã§ gcloud run services proxy ã³ãã³ãçµç±ã§ Web UI ã«ã¢ã¯ã»ã¹ãããšãã®ãªãªãžã³ãæå®ããŸããADK ã® API ãµãŒããŒã¯ãã»ãã¥ãªãã£å¯Ÿçãšã㊠POST ãªã©ã®ç¶æ
倿Žãªã¯ãšã¹ãã® Origin ããããŒãæ€èšŒããŸãããããã·çµç±ã®ã¢ã¯ã»ã¹ã§ã¯ OriginïŒ http://127.0.0.1:8080 ãªã©ïŒãšãªã¯ãšã¹ãå
ïŒ run.app ãã¡ã€ã³ïŒãäžèŽããªãããã allow_origins ãæå®ããŠããªããš Web UI ããã®æäœã403ãšã©ãŒã«ãªããŸãã Dockerfile uv ã䜿çšããŠã³ã³ããã€ã¡ãŒãžããã«ããã Dockerfile ãäœæããŸãã FROM python:3.13-slim COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv WORKDIR /app COPY pyproject.toml uv.lock ./ RUN uv sync --frozen --no-dev COPY . . ENV PATH= "/app/.venv/bin:$PATH" CMD [ " python ", " main.py " ] .dockerignore .dockerignore ã«ä»¥äžã®å
容ãèšè¿°ããããŒã«ã«ã® .venv ãªã©ãã³ã³ããã€ã¡ãŒãžã®ãã«ãã³ã³ããã¹ãããé€å€ããŸãã .venv __pycache__ *.pyc .git åŸè¿°ã®ãããã€ã§äœ¿çšãã --source ãã©ã°ã¯ãã«ã¬ã³ããã£ã¬ã¯ããªå
šäœã Cloud Build ã«ã¢ããããŒãããŸãã .dockerignore ã§é€å€ããŠããªãå Žåã COPY . . ã®éã«ããŒã«ã«ç°å¢çšã® .venv ãã³ã³ããå
ã«äœææžã¿ã® .venv ãäžæžãããã³ã³ããã®èµ·åã«å€±æããããæ³šæããŠãã ããã Google Cloud åŽã®æºå API ã®æå¹å 䜿çšãã API ãæå¹åããŸãããœãŒã¹ã³ãŒãããã®ãããã€ïŒ --source ãã©ã°ïŒã§ã¯ Cloud Build ãš Artifact Registry ã䜿çšããããããããããŠæå¹åããŸãããªã2026幎7æçŸåšãGemini ã®åŒã³åºãã«äœ¿çšãã Agent Platform ã® API åã IAM ããŒã« ID ã«ã¯ãæ§ç§°ã® Vertex AI ã«ç±æ¥ãã aiplatform ãšããåç§°ãæ®ã£ãŠããŸãã $ gcloud services enable \ run.googleapis.com \ aiplatform.googleapis.com \ cloudbuild.googleapis.com \ artifactregistry.googleapis.com \ --project =< ãããžã§ã¯ãID > ãµãŒãã¹ã¢ã«ãŠã³ãã®äœæ Cloud Run ãµãŒãã¹ã䜿çšãããµãŒãã¹ã¢ã«ãŠã³ããäœæããŸãããšãŒãžã§ã³ãã Agent Platform ã® API çµç±ã§ Gemini ãåŒã³åºããããAgent Platform ãŠãŒã¶ãŒïŒ roles/aiplatform.user ïŒãä»äžããŸãã # ãµãŒãã¹ã¢ã«ãŠã³ãã®äœæ $ gcloud iam service-accounts create sandbox-agent \ --project =< ãããžã§ã¯ãID > # Agent Platform ãŠãŒã¶ãŒã®ä»äž $ gcloud projects add-iam-policy-binding < ãããžã§ã¯ãID > \ --member =" serviceAccount:sandbox-agent@<ãããžã§ã¯ãID>.iam.gserviceaccount.com " \ --role =" roles/aiplatform.user " ãããã€ äœæãããããžã§ã¯ãã®ãã£ã¬ã¯ããªïŒ sandbox-agent/ ïŒã§ã以äžã®ã³ãã³ããå®è¡ã㊠Cloud Run ã«ãããã€ããŸãããµã³ãããã¯ã¹æ©èœãæå¹åãã --sandbox-launcher ãã©ã°ã¯ã2026幎7æçŸåšã gcloud beta ã³ãã³ãã§ã®ã¿äœ¿çšã§ããŸãã $ gcloud beta run deploy sandbox-agent \ --source . \ --project =< ãããžã§ã¯ãID > \ --region = asia-northeast1 \ --execution-environment = gen2 \ --sandbox-launcher \ --service-account = sandbox-agent@ < ãããžã§ã¯ãID > .iam.gserviceaccount.com \ --set-env-vars = GOOGLE_GENAI_USE_VERTEXAI =TRUE, GOOGLE_CLOUD_PROJECT = < ãããžã§ã¯ãID > , GOOGLE_CLOUD_LOCATION =asia-northeast1 \ --no-allow-unauthenticated äž»ãªãã©ã°ã®æå³ã¯ä»¥äžã®ãšããã§ãã ãã©ã° 説æ --source . ã«ã¬ã³ããã£ã¬ã¯ããªã®ãœãŒã¹ã³ãŒããã Cloud Build ã§ã³ã³ããã€ã¡ãŒãžããã«ãããŠãããã€ããã Dockerfile ãååšããå Žåã¯ããã䜿çšããã --execution-environment=gen2 第2äžä»£å®è¡ç°å¢ãæå®ããããµã³ãããã¯ã¹æ©èœã®äœ¿çšã«å¿
é --sandbox-launcher ãµã³ãããã¯ã¹æ©èœãæå¹åãããã³ã³ããå
ã« sandbox ã³ãã³ãã©ã€ã³ããŒã«ãé
眮ããã --service-account ã©ã³ã¿ã€ã ãµãŒãã¹ã¢ã«ãŠã³ããšããŠãåã®æé ã§äœæãããµãŒãã¹ã¢ã«ãŠã³ããæå®ãã --set-env-vars ADK ã Agent Platform çµç±ã§ Gemini ãåŒã³åºãããã®ç°å¢å€æ°ãèšå®ããã GOOGLE_GENAI_USE_VERTEXAI ãšãã倿°åã«ãæ§ç§°ã«ç±æ¥ããåç§°ãæ®ã£ãŠãã --no-allow-unauthenticated æªèªèšŒã®ã¢ã¯ã»ã¹ãæåŠãã ç°å¢å€æ° GOOGLE_CLOUD_LOCATION ã¯ãGemini ãåŒã³åºã Agent Platform åŽã®ãã±ãŒã·ã§ã³ã§ãããCloud Run ãµãŒãã¹ã®ãªãŒãžã§ã³ïŒ --region ïŒãšã¯ç¬ç«ããŠããŸããåœèšäºã§ã¯ asia-northeast1 ãæå®ããæ±äº¬ãªãŒãžã§ã³ã®ãªãŒãžã§ã³ãšã³ããã€ã³ãçµç±ã§ã¢ãã«ãåŒã³åºããŸãã åè : gcloud beta run deploy åäœç¢ºèª Web UI ãžã®ã¢ã¯ã»ã¹ ãããã€ãããµãŒãã¹ã¯æªèªèšŒã¢ã¯ã»ã¹ãæåŠããŠããããã gcloud run services proxy ã³ãã³ãã§æå
ã®ç«¯æ«ãããããã·çµç±ã§ã¢ã¯ã»ã¹ããŸãã $ gcloud run services proxy sandbox-agent \ --project =< ãããžã§ã¯ãID > \ --region = asia-northeast1 ãã©ãŠã¶ã§ http://localhost:8080 ãéããšãADK ã®éçºçš Web UI ã«ã¢ã¯ã»ã¹ã§ããŸããç»é¢å·Šäžã®ãã«ããŠã³ã§ãšãŒãžã§ã³ã sandbox_agent ãéžæããŸãã ADK ã®éçºçš Web UI ã«ã¢ã¯ã»ã¹ããsandbox_agent ãéžæãã ãšãŒãžã§ã³ããšã®å¯Ÿè©± ãšãŒãžã§ã³ãã«ãã³ãŒãå®è¡ãå¿
èŠãªè³ªåãéä¿¡ããŸããäŸãšããŠã1ãã100ãŸã§ã®çŽ æ°ã®åèšãèšç®ããŠãã ããããšè³ªåãããšããšãŒãžã§ã³ã㯠Python ã³ãŒããçæã㊠execute_python_code ããŒã«ãåŒã³åºãããµã³ãããã¯ã¹å
ã§ã®å®è¡çµæãå
ã«åçããŸãã ãšãŒãžã§ã³ããã³ãŒããçæããŠå®è¡ããŠãã Web UI ã® Info ãã€ã³ã§ã¯ãããŒã«åŒã³åºãã®å
容ã確èªã§ããŸãã Function Calls ã€ãã³ãã«ã¯ãšãŒãžã§ã³ããçæãã Python ã³ãŒããã Function Responses ã€ãã³ãã«ã¯ãµã³ãããã¯ã¹ã§ã®å®è¡çµæïŒ stdout ãªã©ïŒãèšé²ãããŠããŸãã Function Calls ã«ãšãŒãžã§ã³ããçæããã³ãŒããèšé²ãããŠãã Function Responses ã«ã³ãŒãã®å®è¡çµæãèšé²ãããŠãã ãã°ã®ç¢ºèª åè¿°ã®ãšããããµã³ãããã¯ã¹ã®ã©ã€ããµã€ã¯ã«ã€ãã³ã㯠Cloud Logging ã«èªåçã«èšé²ãããŸãããµã³ãããã¯ã¹ã®å®è¡ãã°ã¯ãCloud Run ã®æšæºãã°ïŒ stdout ã requests ïŒãšã¯å¥ã®å°çšãã° run.googleapis.com//var/log/sandbox.log ã«åºåãããããããã°ãšã¯ã¹ãããŒã©ã§ä»¥äžã®ã¯ãšãªãå®è¡ããŠç¢ºèªããŸãã resource.type="cloud_run_revision" resource.labels.service_name="sandbox-agent" logName="projects/<ãããžã§ã¯ãID>/logs/run.googleapis.com%2F%2Fvar%2Flog%2Fsandbox.log" sandbox do ã®å®è¡1åã«ã€ã [start] ãš [end] ã®ãã¢ãèšé²ãããå®è¡ããã³ãã³ãã®å
šæïŒLLM ãçæãã Python ã³ãŒããå«ãïŒãæ®ããŸãã以äžã¯å
ã»ã©ã®å¯Ÿè©±ã§å®éã«èšé²ããããã°ã§ãïŒ [end] ã®ã³ãã³ãæååã¯çç¥ããŠããŸãïŒã [start] cwd=/app "/usr/local/gcp/bin/sandbox do -- /usr/local/bin/python3 -c def is_prime(n): if n < 2: return False for i in range(2, int(n**0.5) + 1): if n % i == 0: return False return True total_sum = 0 for number in range(2, 101): if is_prime(number): total_sum += number print(total_sum) " [end] exit_code=0 elapsed=541ms "/usr/local/gcp/bin/sandbox do -- /usr/local/bin/python3 -c ..." Cloud Run ã§ãµã³ãããã¯ã¹ã䜿çšããããšãã®ãã°ãæ€çŽ¢ãã [end] ãšã³ããªã«ã¯çµäºã³ãŒãïŒ exit_code ïŒãšå®è¡æéïŒ elapsed ïŒãä»ãããããµã³ãããã¯ã¹ãå®éã«äœ¿çšãããããšãã©ã®ãããªã³ãŒããå®è¡ãããããæ£åžžã«çµäºãããã©ãããŸã§ç¢ºèªã§ããŸããä»åã®å®è¡æéã¯çŽ540ããªç§ã§ããµã³ãããã¯ã¹ã®äœæããã³ãŒãå®è¡ãç Žæ£ãŸã§ãé«éã«å®äºããŠããããšãããããŸãã åè : Code execution in Cloud Run äœã
æš é§¿å€ª (èšäºäžèЧ) ã¯ã©ãŠããœãªã¥ãŒã·ã§ã³éš ã¯ã©ãŠããšã³ãžãã¢ãªã³ã°1課 åæµ·éåšäœ 倧åŠé¢ãŸã§ç€ŸäŒå¿çåŠãå°æ»ããAI ã«èå³ãæã¡ IT æ¥çãžã2022幎6æã« G-gen ã«ãžã§ã€ã³ãGoogle Cloud Partner Top Engineer ã«éžåºïŒ2024 / 2025 Fellow / 2026ïŒã奜ã㪠Google Cloud ãããã¯ã㯠Cloud Runã è¶£å³ã¯ã³ãŒããŒãå°èª¬ïŒSFããã¹ããªïŒãã«ã©ãªã±ãªã©ãæè¿ã¯æ³åŸã®å匷ã«ãç®èŠãã2çŽç¥ç財ç£ç®¡çæèœå£«ãååŸã Follow @sasashun0805
ã¯ããã« ããã«ã¡ã¯ãã¯ã©ãŠããšãŒã¹ã®æ¢¶å°Ÿã§ãã Google Cloud ã®éçšä¿å®ãé²ããäžã§ãã瀟å
ãããã¯ãŒã¯ä»¥å€ã®IPã¢ãã¬ã¹ããã®ã¢ã¯ã»ã¹ãé²ãããããšãã課é¡ã¯é¿ããŠéããŸããã æ£çŽãªãšãããGoogle Workspace ã®ææã©ã€ã»ã³ã¹ïŒContext-Aware AccessïŒãå¥çŽããŠå
¥ãå£ã§ã·ã£ããã¢ãŠãããã®ãäžçªæè»œãã€ç¢ºå®ãªæ¹æ³ã§ãã ãã ãäºç®ã®éœåã§ãã©ã€ã»ã³ã¹è²»çšã¯åºããªãããã©ãèš±å¯ããŠãªãIPã¢ãã¬ã¹ããã®ã¢ã¯ã»ã¹ã«ã¯å³åº§ã«æ°ã¥ããããã«ãããããšããã±ãŒã¹ã¯å°ãªããããŸããã ããã§ä»åã¯ã远å è²»çšãŒãã Google Cloud æšæºæ©


















