[{"data":1,"prerenderedAt":1781},["ShallowReactive",2],{"/ja-jp/blog/fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab":3,"navigation-ja-jp":1000,"banner-ja-jp":1430,"footer-ja-jp":1438,"blog-post-authors-ja-jp-Regnard Raquedan":1680,"blog-related-posts-ja-jp-fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab":1695,"blog-promotions-ja-jp":1719,"next-steps-ja-jp":1772},{"id":4,"title":5,"authors":6,"body":8,"category":983,"date":984,"description":985,"extension":986,"externalUrl":987,"faq":987,"featured":988,"heroImage":989,"meta":990,"navigation":284,"path":991,"seo":992,"slug":994,"stem":995,"tags":996,"template":998,"updatedDate":987,"__hash__":999},"blogPosts/ja-jp/blog/fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab.md","GitLabで自律型AIをGoogle Cloudに安全・高速デプロイ",[7],"Regnard Raquedan",{"type":9,"value":10,"toc":976},"minimark",[11,39,44,47,50,54,57,60,87,90,97,100,103,125,131,140,143,175,178,183,186,216,222,225,228,246,249,464,469,472,479,822,825,851,858,863,866,883,886,900,903,906,932,935,938,956,967,972],[12,13,14,20,21,26,27,32,33,38],"p",{},[15,16,19],"a",{"href":17,"rel":18},"https://about.gitlab.com/ja-jp/topics/agentic-ai/",[],"自律型AI","の登場により、インテリジェントなアプリケーションの構築方法は大きく変わりつつありますが、\nAIエージェントを安全かつ効率的にデプロイするのは簡単ではありません。\nこのチュートリアルでは、\nGoogleのAgent Development Kit（",[15,22,25],{"href":23,"rel":24},"https://cloud.google.com/vertex-ai/generative-ai/docs/agent-development-kit/quickstart",[],"ADK","）で構築したAIエージェントを、\n",[15,28,31],{"href":29,"rel":30},"https://cloud.google.com/blog/topics/partners/understand-the-google-cloud-gitlab-integration",[],"GitLabのネイティブインテグレーション","と",[15,34,37],{"href":35,"rel":36},"https://docs.gitlab.com/ja-jp/ci/components/",[],"CI/CDコンポーネント","を使って\nCloud Runにデプロイする方法を\n学びます。",[40,41,43],"h2",{"id":42},"aiエージェントの基礎知識と注目される理由","AIエージェントの基礎知識と注目される理由",[12,45,46],{},"自律型AIは、人工知能の分野における大きな進化と言えるでしょう。従来の生成AIツールが常に人間からの指示を必要とするのに対し、AIエージェントは高度な言語モデルや自然言語処理を活用して、自律的に行動を起こします。自律型AIはリクエストを理解し、意思決定を行い、複数のステップからなる計画を実行して、目標を自ら達成できます。",[12,48,49],{},"このチュートリアルでは、GoogleのADKを使用します。ADKは、AIエージェントの開発とデプロイに対応した、柔軟でモジュール化されたフレームワークです。GeminiやGoogleのエコシステム向けに最適化されていますが、モデルやデプロイ方法に依存せず、他のフレームワークとの互換性も考慮して設計されています。",[40,51,53],{"id":52},"デモアプリの紹介canada-city-advisor","デモアプリの紹介：Canada City Advisor",[12,55,56],{},"デプロイプロセスを実演するための実用的な例として「Canada City Advisor」を使います。ユーザーの希望や条件に基づいて、理想的なカナダの都市を提案するAIエージェントです。",[12,58,59],{},"その仕組みは以下の通りです。",[61,62,63,67,84],"ul",{},[64,65,66],"li",{},"ユーザーが予算条件やライフスタイルの希望を入力します。",[64,68,69,70],{},"ルートエージェントが以下2つのサブエージェントを統括します。",[61,71,72,75],{},[64,73,74],{},"経済的な制約を評価する予算分析エージェント。カナダ住宅金融公社から取得したデータを使用します。",[64,76,77,78,83],{},"ユーザーの希望に合う都市を提案するライフスタイル分析エージェント。",[15,79,82],{"href":80,"rel":81},"https://open-meteo.com/",[],"Open-Meteo","から取得した適切な都市情報に基づく天気情報サービスも提供します。",[64,85,86],{},"システムがユーザーに合った都市の候補を生成します。",[12,88,89],{},"異なる専門性を持つAIエージェントが連動して複雑な問題を解決するこのマルチエージェント構成により、自律型AIの強みが活かされます。サブエージェントは、ルートエージェントが予算やライフスタイルの分析が必要と判断したときにのみ呼び出されます。",[12,91,92],{},[93,94],"img",{"alt":95,"src":96},"自律型AIを活用したデモアプリ開発のマルチエージェント構成","https://res.cloudinary.com/about-gitlab-com/image/upload/v1751576568/obgxpxvlnxtzifddrrz1.png",[40,98,99],{"id":99},"前提条件",[12,101,102],{},"始める前に、以下のものが準備できていることを確認してください。",[61,104,105,119,122],{},[64,106,107,108],{},"以下のAPIが有効になっているGoogle Cloudプロジェクト",[61,109,110,113,116],{},[64,111,112],{},"Cloud Run API",[64,114,115],{},"Artifact Registry API",[64,117,118],{},"Vertex AI API",[64,120,121],{},"ソースコード用のGitLabプロジェクト",[64,123,124],{},"GitLabとGoogle Cloudの両方に対する適切な権限",[12,126,127],{},[128,129,130],"strong",{},"ステップ1：ワークロードアイデンティティフェデレーションによるIAMインテグレーションを設定する",[12,132,133,134,139],{},"最初のステップでは、",[15,135,138],{"href":136,"rel":137},"https://cloud.google.com/iam/docs/workload-identity-federation",[],"Workload Identity連携","を使用して、GitLabとGoogle Cloudの間で安全なキーレス認証を確立します。これにより、サービスアカウントキーが不要となり、セキュリティが向上します。",[12,141,142],{},"GitLabプロジェクトでの手順は以下のとおりです。",[144,145,146,152],"ol",{},[64,147,148,151],{},[128,149,150],{},"設定 > インテグレーション > Google Cloud IAM","の順に移動します。",[64,153,154,155],{},"以下の情報を入力します。",[61,156,157,163,169],{},[64,158,159,162],{},[128,160,161],{},"プロジェクトID","：使用しているGoogle CloudプロジェクトのID",[64,164,165,168],{},[128,166,167],{},"プロジェクト番号","：Google Cloudコンソールで確認できるプロジェクト番号\nWorkload Identityプールの固有識別子",[64,170,171,174],{},[128,172,173],{},"プロバイダーID","：アイデンティティプロバイダーの固有識別子",[12,176,177],{},"GitLabがスクリプトを生成します。このスクリプトをコピーして、Google Cloud Shellで実行し、Workload Identity連携を作成します。",[12,179,180],{},[128,181,182],{},"ステップ2：Google Artifact Registryのインテグレーションを設定する",[12,184,185],{},"次に、コンテナイメージを保存するGoogle Artifact Registryとの接続を設定します。",[144,187,188,194],{},[64,189,190,191,151],{},"GitLabで、",[128,192,193],{},"設定 > インテグレーション > Google Artifact Registry",[64,195,154,196],{},[61,197,198,204,210],{},[64,199,200,203],{},[128,201,202],{},"Google CloudプロジェクトID","：ステップ1と同じプロジェクトID",[64,205,206,209],{},[128,207,208],{},"リポジトリ名","：既存のArtifact Registryリポジトリの名前",[64,211,212,215],{},[128,213,214],{},"場所","：リポジトリが存在するリージョン",[12,217,218,221],{},[128,219,220],{},"重要","：リポジトリはすでにArtifact Registryに存在している必要があります。この設定操作では、GitLabが新しいリポジトリを自動で作成することはありません。",[12,223,224],{},"GitLabは、必要な権限を設定するためのコマンドを生成します。これをGoogle Cloud Shellで実行します。",[12,226,227],{},"さらに、Cloud Runへのデプロイのために、サービスプリンシパルに以下のロールを追加します。",[61,229,230,236,241],{},[64,231,232],{},[233,234,235],"code",{},"roles/run.admin",[64,237,238],{},[233,239,240],{},"roles/iam.serviceAccountUser",[64,242,243],{},[233,244,245],{},"roles/cloudbuild.builds.editor",[12,247,248],{},"以下のgcloudコマンドを使用して、これらのロールを追加できます。",[250,251,256],"pre",{"className":252,"code":253,"language":254,"meta":255,"style":255},"language-shell shiki shiki-themes github-light","GCP_PROJECT_ID=\"\u003Cyour-project-id>\" #replace\n\nGCP_PROJECT_NUMBER=\"\u003Cyour-project-number>\" #replace\n\nGCP_WORKLOAD_IDENTITY_POOL=\"\u003Cyour-pool-id>\" #replace\n\n\ngcloud projects add-iam-policy-binding ${GCP_PROJECT_ID} \\\n  --member=\"principalSet://iam.googleapis.com/projects/${GCP_PROJECT_NUMBER}/locations/global/workloadIdentityPools/${GCP_WORKLOAD_IDENTITY_POOL}/attribute.developer_access/true\" \\\n  --role='roles/run.admin'\n\ngcloud projects add-iam-policy-binding ${GCP_PROJECT_ID} \\\n  --member=\"principalSet://iam.googleapis.com/projects/${GCP_PROJECT_NUMBER}/locations/global/workloadIdentityPools/${GCP_WORKLOAD_IDENTITY_POOL}/attribute.developer_access/true\" \\\n  --role='roles/iam.serviceAccountUser'\n\ngcloud projects add-iam-policy-binding ${GCP_PROJECT_ID} \\\n  --member=\"principalSet://iam.googleapis.com/projects/${GCP_PROJECT_NUMBER}/locations/global/workloadIdentityPools/${GCP_WORKLOAD_IDENTITY_POOL}/attribute.developer_access/true\" \\\n  --role='roles/cloudbuild.builds.editor'\n\n","shell","",[233,257,258,279,286,299,304,317,322,327,347,369,378,383,396,413,421,426,439,456],{"__ignoreMap":255},[259,260,263,267,271,275],"span",{"class":261,"line":262},"line",1,[259,264,266],{"class":265},"sgsFI","GCP_PROJECT_ID",[259,268,270],{"class":269},"sD7c4","=",[259,272,274],{"class":273},"sYBdl","\"\u003Cyour-project-id>\"",[259,276,278],{"class":277},"sAwPA"," #replace\n",[259,280,282],{"class":261,"line":281},2,[259,283,285],{"emptyLinePlaceholder":284},true,"\n",[259,287,289,292,294,297],{"class":261,"line":288},3,[259,290,291],{"class":265},"GCP_PROJECT_NUMBER",[259,293,270],{"class":269},[259,295,296],{"class":273},"\"\u003Cyour-project-number>\"",[259,298,278],{"class":277},[259,300,302],{"class":261,"line":301},4,[259,303,285],{"emptyLinePlaceholder":284},[259,305,307,310,312,315],{"class":261,"line":306},5,[259,308,309],{"class":265},"GCP_WORKLOAD_IDENTITY_POOL",[259,311,270],{"class":269},[259,313,314],{"class":273},"\"\u003Cyour-pool-id>\"",[259,316,278],{"class":277},[259,318,320],{"class":261,"line":319},6,[259,321,285],{"emptyLinePlaceholder":284},[259,323,325],{"class":261,"line":324},7,[259,326,285],{"emptyLinePlaceholder":284},[259,328,330,334,337,340,343],{"class":261,"line":329},8,[259,331,333],{"class":332},"s7eDp","gcloud",[259,335,336],{"class":273}," projects",[259,338,339],{"class":273}," add-iam-policy-binding",[259,341,342],{"class":265}," ${GCP_PROJECT_ID} ",[259,344,346],{"class":345},"sYu0t","\\\n",[259,348,350,353,356,358,361,363,366],{"class":261,"line":349},9,[259,351,352],{"class":345},"  --member=",[259,354,355],{"class":273},"\"principalSet://iam.googleapis.com/projects/${",[259,357,291],{"class":265},[259,359,360],{"class":273},"}/locations/global/workloadIdentityPools/${",[259,362,309],{"class":265},[259,364,365],{"class":273},"}/attribute.developer_access/true\"",[259,367,368],{"class":345}," \\\n",[259,370,372,375],{"class":261,"line":371},10,[259,373,374],{"class":345},"  --role=",[259,376,377],{"class":273},"'roles/run.admin'\n",[259,379,381],{"class":261,"line":380},11,[259,382,285],{"emptyLinePlaceholder":284},[259,384,386,388,390,392,394],{"class":261,"line":385},12,[259,387,333],{"class":332},[259,389,336],{"class":273},[259,391,339],{"class":273},[259,393,342],{"class":265},[259,395,346],{"class":345},[259,397,399,401,403,405,407,409,411],{"class":261,"line":398},13,[259,400,352],{"class":345},[259,402,355],{"class":273},[259,404,291],{"class":265},[259,406,360],{"class":273},[259,408,309],{"class":265},[259,410,365],{"class":273},[259,412,368],{"class":345},[259,414,416,418],{"class":261,"line":415},14,[259,417,374],{"class":345},[259,419,420],{"class":273},"'roles/iam.serviceAccountUser'\n",[259,422,424],{"class":261,"line":423},15,[259,425,285],{"emptyLinePlaceholder":284},[259,427,429,431,433,435,437],{"class":261,"line":428},16,[259,430,333],{"class":332},[259,432,336],{"class":273},[259,434,339],{"class":273},[259,436,342],{"class":265},[259,438,346],{"class":345},[259,440,442,444,446,448,450,452,454],{"class":261,"line":441},17,[259,443,352],{"class":345},[259,445,355],{"class":273},[259,447,291],{"class":265},[259,449,360],{"class":273},[259,451,309],{"class":265},[259,453,365],{"class":273},[259,455,368],{"class":345},[259,457,459,461],{"class":261,"line":458},18,[259,460,374],{"class":345},[259,462,463],{"class":273},"'roles/cloudbuild.builds.editor'\n",[12,465,466],{},[128,467,468],{},"ステップ3：CI/CDパイプラインを作成する",[12,470,471],{},"ここからが本番です。デプロイ用のパイプラインを構築しましょう！GitLabのCI/CDコンポーネントを使用すると、非常に簡単に作成できます。",[12,473,474,475,478],{},"プロジェクトのルートに ",[233,476,477],{},".gitlab-ci.yml"," ファイルを作成します。",[250,480,484],{"className":481,"code":482,"language":483,"meta":255,"style":255},"language-yaml shiki shiki-themes github-light","stages:\n  - build\n  - test\n  - upload\n  - deploy\n\nvariables:\n  GITLAB_IMAGE: $CI_REGISTRY_IMAGE/main:$CI_COMMIT_SHORT_SHA\n  AR_IMAGE: $GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_LOCATION-docker.pkg.dev/$GOOGLE_ARTIFACT_REGISTRY_PROJECT_ID/$GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_NAME/main:$CI_COMMIT_SHORT_SHA\n\nbuild:\n  image: docker:24.0.5\n  stage: build\n  services:\n    - docker:24.0.5-dind\n  before_script:\n    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY\n  script:\n    - docker build -t $GITLAB_IMAGE .\n    - docker push $GITLAB_IMAGE\n\ninclude:\n  - template: Jobs/Dependency-Scanning.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Dependency-Scanning.gitlab-ci.yml\n  - template: Jobs/SAST.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/SAST.gitlab-ci.yml\n  - template: Jobs/Secret-Detection.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Secret-Detection.gitlab-ci.yml\n  - component: gitlab.com/google-gitlab-components/artifact-registry/upload-artifact-registry@main\n    inputs:\n      stage: upload\n      source: $GITLAB_IMAGE\n      target: $AR_IMAGE\n  - component: gitlab.com/google-gitlab-components/cloud-run/deploy-cloud-run@main\n    inputs:\n      stage: deploy\n      project_id: \"\u003Cyour-project-id>\" #replace\n      service: \"canadian-city\"\n      region: \"us-central1\"\n      image: $AR_IMAGE\n\n","yaml",[233,485,486,495,503,510,517,524,528,535,546,556,560,567,577,586,593,601,608,615,622,630,638,643,651,667,682,697,710,718,728,739,750,762,769,778,790,801,812],{"__ignoreMap":255},[259,487,488,492],{"class":261,"line":262},[259,489,491],{"class":490},"shJU0","stages",[259,493,494],{"class":265},":\n",[259,496,497,500],{"class":261,"line":281},[259,498,499],{"class":265},"  - ",[259,501,502],{"class":273},"build\n",[259,504,505,507],{"class":261,"line":288},[259,506,499],{"class":265},[259,508,509],{"class":273},"test\n",[259,511,512,514],{"class":261,"line":301},[259,513,499],{"class":265},[259,515,516],{"class":273},"upload\n",[259,518,519,521],{"class":261,"line":306},[259,520,499],{"class":265},[259,522,523],{"class":273},"deploy\n",[259,525,526],{"class":261,"line":319},[259,527,285],{"emptyLinePlaceholder":284},[259,529,530,533],{"class":261,"line":324},[259,531,532],{"class":490},"variables",[259,534,494],{"class":265},[259,536,537,540,543],{"class":261,"line":329},[259,538,539],{"class":490},"  GITLAB_IMAGE",[259,541,542],{"class":265},": ",[259,544,545],{"class":273},"$CI_REGISTRY_IMAGE/main:$CI_COMMIT_SHORT_SHA\n",[259,547,548,551,553],{"class":261,"line":349},[259,549,550],{"class":490},"  AR_IMAGE",[259,552,542],{"class":265},[259,554,555],{"class":273},"$GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_LOCATION-docker.pkg.dev/$GOOGLE_ARTIFACT_REGISTRY_PROJECT_ID/$GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_NAME/main:$CI_COMMIT_SHORT_SHA\n",[259,557,558],{"class":261,"line":371},[259,559,285],{"emptyLinePlaceholder":284},[259,561,562,565],{"class":261,"line":380},[259,563,564],{"class":490},"build",[259,566,494],{"class":265},[259,568,569,572,574],{"class":261,"line":385},[259,570,571],{"class":490},"  image",[259,573,542],{"class":265},[259,575,576],{"class":273},"docker:24.0.5\n",[259,578,579,582,584],{"class":261,"line":398},[259,580,581],{"class":490},"  stage",[259,583,542],{"class":265},[259,585,502],{"class":273},[259,587,588,591],{"class":261,"line":415},[259,589,590],{"class":490},"  services",[259,592,494],{"class":265},[259,594,595,598],{"class":261,"line":423},[259,596,597],{"class":265},"    - ",[259,599,600],{"class":273},"docker:24.0.5-dind\n",[259,602,603,606],{"class":261,"line":428},[259,604,605],{"class":490},"  before_script",[259,607,494],{"class":265},[259,609,610,612],{"class":261,"line":441},[259,611,597],{"class":265},[259,613,614],{"class":273},"docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY\n",[259,616,617,620],{"class":261,"line":458},[259,618,619],{"class":490},"  script",[259,621,494],{"class":265},[259,623,625,627],{"class":261,"line":624},19,[259,626,597],{"class":265},[259,628,629],{"class":273},"docker build -t $GITLAB_IMAGE .\n",[259,631,633,635],{"class":261,"line":632},20,[259,634,597],{"class":265},[259,636,637],{"class":273},"docker push $GITLAB_IMAGE\n",[259,639,641],{"class":261,"line":640},21,[259,642,285],{"emptyLinePlaceholder":284},[259,644,646,649],{"class":261,"line":645},22,[259,647,648],{"class":490},"include",[259,650,494],{"class":265},[259,652,654,656,659,661,664],{"class":261,"line":653},23,[259,655,499],{"class":265},[259,657,658],{"class":490},"template",[259,660,542],{"class":265},[259,662,663],{"class":273},"Jobs/Dependency-Scanning.gitlab-ci.yml",[259,665,666],{"class":277},"  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Dependency-Scanning.gitlab-ci.yml\n",[259,668,670,672,674,676,679],{"class":261,"line":669},24,[259,671,499],{"class":265},[259,673,658],{"class":490},[259,675,542],{"class":265},[259,677,678],{"class":273},"Jobs/SAST.gitlab-ci.yml",[259,680,681],{"class":277},"  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/SAST.gitlab-ci.yml\n",[259,683,685,687,689,691,694],{"class":261,"line":684},25,[259,686,499],{"class":265},[259,688,658],{"class":490},[259,690,542],{"class":265},[259,692,693],{"class":273},"Jobs/Secret-Detection.gitlab-ci.yml",[259,695,696],{"class":277},"  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Secret-Detection.gitlab-ci.yml\n",[259,698,700,702,705,707],{"class":261,"line":699},26,[259,701,499],{"class":265},[259,703,704],{"class":490},"component",[259,706,542],{"class":265},[259,708,709],{"class":273},"gitlab.com/google-gitlab-components/artifact-registry/upload-artifact-registry@main\n",[259,711,713,716],{"class":261,"line":712},27,[259,714,715],{"class":490},"    inputs",[259,717,494],{"class":265},[259,719,721,724,726],{"class":261,"line":720},28,[259,722,723],{"class":490},"      stage",[259,725,542],{"class":265},[259,727,516],{"class":273},[259,729,731,734,736],{"class":261,"line":730},29,[259,732,733],{"class":490},"      source",[259,735,542],{"class":265},[259,737,738],{"class":273},"$GITLAB_IMAGE\n",[259,740,742,745,747],{"class":261,"line":741},30,[259,743,744],{"class":490},"      target",[259,746,542],{"class":265},[259,748,749],{"class":273},"$AR_IMAGE\n",[259,751,753,755,757,759],{"class":261,"line":752},31,[259,754,499],{"class":265},[259,756,704],{"class":490},[259,758,542],{"class":265},[259,760,761],{"class":273},"gitlab.com/google-gitlab-components/cloud-run/deploy-cloud-run@main\n",[259,763,765,767],{"class":261,"line":764},32,[259,766,715],{"class":490},[259,768,494],{"class":265},[259,770,772,774,776],{"class":261,"line":771},33,[259,773,723],{"class":490},[259,775,542],{"class":265},[259,777,523],{"class":273},[259,779,781,784,786,788],{"class":261,"line":780},34,[259,782,783],{"class":490},"      project_id",[259,785,542],{"class":265},[259,787,274],{"class":273},[259,789,278],{"class":277},[259,791,793,796,798],{"class":261,"line":792},35,[259,794,795],{"class":490},"      service",[259,797,542],{"class":265},[259,799,800],{"class":273},"\"canadian-city\"\n",[259,802,804,807,809],{"class":261,"line":803},36,[259,805,806],{"class":490},"      region",[259,808,542],{"class":265},[259,810,811],{"class":273},"\"us-central1\"\n",[259,813,815,818,820],{"class":261,"line":814},37,[259,816,817],{"class":490},"      image",[259,819,542],{"class":265},[259,821,749],{"class":273},[12,823,824],{},"このパイプラインは、以下の4つのステージで構成されています。",[144,826,827,833,839,845],{},[64,828,829,832],{},[128,830,831],{},"Build","：AIエージェントを使用してDockerコンテナを作成します",[64,834,835,838],{},[128,836,837],{},"Test","：セキュリティスキャン（コンテナスキャン、依存関係スキャン、SAST）を実行します",[64,840,841,844],{},[128,842,843],{},"Upload","：コンテナをArtifact Registryにプッシュします",[64,846,847,850],{},[128,848,849],{},"Deploy","：Cloud Runにデプロイします",[12,852,853,857],{},[15,854,856],{"href":35,"rel":855},[],"GitLabのCI/CDコンポーネント","を使う大きなメリットは、いくつかのパラメーターを指定するだけで、認証やデプロイの複雑な処理をすべてコンポーネント側が自動で行ってくれる点です。",[12,859,860],{},[128,861,862],{},"ステップ4：デプロイとテスト",[12,864,865],{},"すべての設定が完了したら、いよいよデプロイの実行です。",[144,867,868,874,877,880],{},[64,869,870,871,873],{},"コードと ",[233,872,477],{}," をGitLabリポジトリにコミットします。",[64,875,876],{},"パイプラインは自動的に実行されます。",[64,878,879],{},"GitLabのCI/CDインターフェースでパイプラインの進行状況を確認します。",[64,881,882],{},"完了後、Google CloudコンソールでCloud RunのURLを確認できます。",[12,884,885],{},"各ステージが順番に実行される様子を確認できます。",[61,887,888,891,894,897],{},[64,889,890],{},"Buildステージでコンテナが作成されます。",[64,892,893],{},"Testステージで包括的なセキュリティスキャンが実行されます。",[64,895,896],{},"UploadステージでArtifact Registryにプッシュされます。",[64,898,899],{},"DeployステージでCloud Runのサービスが作成または更新されます。",[40,901,902],{"id":902},"セキュリティ上のメリット",[12,904,905],{},"この手法には、以下のようなセキュリティ上の利点があります。",[61,907,908,914,920,926],{},[64,909,910,913],{},[128,911,912],{},"長期間有効な認証情報が不要","：Workload identity連携により、サービスアカウントキーが不要になります。",[64,915,916,919],{},[128,917,918],{},"自動セキュリティスキャン","：すべてのデプロイで脆弱性がスキャンされます。",[64,921,922,925],{},[128,923,924],{},"監査証跡","：誰が何をいつデプロイしたのかを完全に可視化します。",[64,927,928,931],{},[128,929,930],{},"最小権限の原則","：きめ細かなIAMロールによりアクセスが制限されます。",[40,933,934],{"id":934},"まとめ",[12,936,937],{},"GitLabのセキュリティ機能とGoogle Cloudの強力なAIおよびサーバーレスプラットフォームを組み合わせることで、安全でスケーラブルなAIエージェントをデプロイできます。GitLabとGoogle Cloudのインテグレーションによって、従来こうしたデプロイに伴っていた複雑さの多くが解消されます。",[939,940,941],"blockquote",{},[12,942,943,944,949,950,955],{},"このチュートリアルの",[15,945,948],{"href":946,"rel":947},"https://gitlab.com/gitlab-partners-public/google-cloud/demos/ai-agent-deployment",[],"サンプルコード\n全文","を使えば、\nすぐに始められます。GitLabをまだご利用でない場合は、ぜひ",[15,951,954],{"href":952,"rel":953},"https://about.gitlab.com/ja-jp/free-trial/?hosted=saas",[],"無料トライアル","でDevSecOpsプラットフォームをご体験ください。",[12,957,958],{},[959,960,961,962],"em",{},"監修：小松原 つかさ ",[15,963,966],{"href":964,"rel":965},"https://gitlab.com/tkomatsubara",[],"@tkomatsubara",[12,968,969],{},[959,970,971],{},"（GitLab合同会社 ソリューションアーキテクト本部 シニアパートナーソリューションアーキテクト）",[973,974,975],"style",{},"html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .shJU0, html code.shiki .shJU0{--shiki-default:#22863A}",{"title":255,"searchDepth":281,"depth":281,"links":977},[978,979,980,981,982],{"id":42,"depth":281,"text":43},{"id":52,"depth":281,"text":53},{"id":99,"depth":281,"text":99},{"id":902,"depth":281,"text":902},{"id":934,"depth":281,"text":934},"ai","2025-07-07","デモアプリ付きの詳細なガイドに従って、自律型AIの使い方を、GitLabのネイティブインテグレーションやCI/CDコンポーネントとあわせて学びましょう。","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670563/Blog/Hero%20Images/cloudcomputing.jpg",{},"/ja-jp/blog/fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab",{"noIndex":988,"title":5,"description":985,"ogImage":993},"https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,w_1640,h_1000,c_lfill/v1749670563/Blog/Hero%20Images/cloudcomputing.jpg","fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab","ja-jp/blog/fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab",[997],"google","BlogPost","zgvkWkxGFaFtvRKF6ScIzZ3E720WprLX_rxkcjKTGg4",{"logo":1001,"freeTrial":1006,"sales":1011,"login":1016,"items":1021,"search":1350,"minimal":1383,"duo":1400,"switchNav":1409,"pricingDeployment":1420},{"config":1002},{"href":1003,"dataGaName":1004,"dataGaLocation":1005},"/ja-jp/","gitlab logo","header",{"text":1007,"config":1008},"無料トライアルを開始",{"href":1009,"dataGaName":1010,"dataGaLocation":1005},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp&glm_content=default-saas-trial/","free trial",{"text":1012,"config":1013},"デモをリクエスト",{"href":1014,"dataGaName":1015,"dataGaLocation":1005},"/ja-jp/sales/?contact-topic=request-demo","sales",{"text":1017,"config":1018},"サインイン",{"href":1019,"dataGaName":1020,"dataGaLocation":1005},"https://gitlab.com/users/sign_in/","sign in",[1022,1051,1153,1158,1272,1328],{"text":1023,"config":1024,"menu":1026},"プラットフォーム",{"dataNavLevelOne":1025},"platform",{"type":1027,"columns":1028},"cards",[1029,1035,1043],{"title":1023,"description":1030,"link":1031},"DevSecOpsに特化したインテリジェントオーケストレーションプラットフォーム",{"text":1032,"config":1033},"プラットフォームの詳細はこちら",{"href":1034,"dataGaName":1025,"dataGaLocation":1005},"/ja-jp/platform/",{"title":1036,"description":1037,"link":1038},"GitLab Duo Agent Platform","ソフトウェアライフサイクル全体を支えるエージェント型AI",{"text":1039,"config":1040},"GitLab Duoのご紹介",{"href":1041,"dataGaName":1042,"dataGaLocation":1005},"/ja-jp/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":1044,"description":1045,"link":1046},"GitLabが選ばれる理由","エンタープライズがGitLabを選ぶ主な理由をご覧ください",{"text":1047,"config":1048},"詳細はこちら",{"href":1049,"dataGaName":1050,"dataGaLocation":1005},"/ja-jp/why-gitlab/","why gitlab",{"text":1052,"left":284,"config":1053,"menu":1055},"製品",{"dataNavLevelOne":1054},"solutions",{"type":1056,"link":1057,"columns":1061,"feature":1132},"lists",{"text":1058,"config":1059},"すべてのソリューションを表示",{"href":1060,"dataGaName":1054,"dataGaLocation":1005},"/ja-jp/solutions/",[1062,1087,1110],{"title":1063,"description":1064,"link":1065,"items":1070},"自動化","CI/CDと自動化でデプロイを加速",{"config":1066},{"icon":1067,"href":1068,"dataGaName":1069,"dataGaLocation":1005},"AutomatedCodeAlt","/ja-jp/solutions/delivery-automation/","automated software delivery",[1071,1075,1078,1083],{"text":1072,"config":1073},"CI/CD",{"href":1074,"dataGaLocation":1005,"dataGaName":1072},"/ja-jp/solutions/continuous-integration/",{"text":1036,"config":1076},{"href":1041,"dataGaLocation":1005,"dataGaName":1077},"gitlab duo agent platform - product menu",{"text":1079,"config":1080},"ソースコード管理",{"href":1081,"dataGaLocation":1005,"dataGaName":1082},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":1084,"config":1085},"自動化されたソフトウェアデリバリー",{"href":1068,"dataGaLocation":1005,"dataGaName":1086},"Automated software delivery",{"title":1088,"description":1089,"link":1090,"items":1095},"セキュリティ","セキュリティを犠牲にすることなくコード作成を高速化",{"config":1091},{"href":1092,"dataGaName":1093,"dataGaLocation":1005,"icon":1094},"/ja-jp/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[1096,1100,1105],{"text":1097,"config":1098},"アプリケーションセキュリティテスト",{"href":1092,"dataGaName":1099,"dataGaLocation":1005},"Application security testing",{"text":1101,"config":1102},"ソフトウェアサプライチェーンセキュリティ",{"href":1103,"dataGaLocation":1005,"dataGaName":1104},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":1106,"config":1107},"ソフトウェアコンプライアンス",{"href":1108,"dataGaName":1109,"dataGaLocation":1005},"/ja-jp/solutions/software-compliance/","software compliance",{"title":1111,"link":1112,"items":1117},"測定",{"config":1113},{"icon":1114,"href":1115,"dataGaName":1116,"dataGaLocation":1005},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[1118,1122,1127],{"text":1119,"config":1120},"可視性と測定",{"href":1115,"dataGaLocation":1005,"dataGaName":1121},"Visibility and Measurement",{"text":1123,"config":1124},"バリューストリーム管理",{"href":1125,"dataGaLocation":1005,"dataGaName":1126},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":1128,"config":1129},"分析とインサイト",{"href":1130,"dataGaLocation":1005,"dataGaName":1131},"/ja-jp/solutions/analytics-and-insights/","Analytics and insights",{"title":1133,"type":1056,"items":1134},"GitLabが活躍する場所",[1135,1141,1147],{"text":1136,"config":1137},"大企業",{"icon":1138,"href":1139,"dataGaLocation":1005,"dataGaName":1140},"Building","/ja-jp/enterprise/","enterprise",{"text":1142,"config":1143},"スモールビジネス",{"icon":1144,"href":1145,"dataGaLocation":1005,"dataGaName":1146},"Work","/ja-jp/small-business/","small business",{"text":1148,"config":1149},"公共部門",{"icon":1150,"href":1151,"dataGaLocation":1005,"dataGaName":1152},"Organization","/ja-jp/solutions/public-sector/","public sector",{"text":1154,"config":1155},"価格",{"href":1156,"dataGaName":1157,"dataGaLocation":1005,"dataNavLevelOne":1157},"/ja-jp/pricing/","pricing",{"text":1159,"config":1160,"menu":1162},"関連リソース",{"dataNavLevelOne":1161},"resources",{"type":1056,"link":1163,"columns":1167,"feature":1261},{"text":1164,"config":1165},"すべてのリソースを表示",{"href":1166,"dataGaName":1161,"dataGaLocation":1005},"/ja-jp/resources/",[1168,1201,1228],{"title":1169,"items":1170},"はじめに",[1171,1176,1181,1186,1191,1196],{"text":1172,"config":1173},"インストール",{"href":1174,"dataGaName":1175,"dataGaLocation":1005},"/ja-jp/install/","install",{"text":1177,"config":1178},"クイックスタートガイド",{"href":1179,"dataGaName":1180,"dataGaLocation":1005},"/ja-jp/get-started/","quick setup checklists",{"text":1182,"config":1183},"学ぶ",{"href":1184,"dataGaLocation":1005,"dataGaName":1185},"https://university.gitlab.com/","learn",{"text":1187,"config":1188},"製品ドキュメント",{"href":1189,"dataGaName":1190,"dataGaLocation":1005},"https://docs.gitlab.com/ja-jp/","product documentation",{"text":1192,"config":1193},"ベストプラクティスビデオ",{"href":1194,"dataGaName":1195,"dataGaLocation":1005},"/ja-jp/getting-started-videos/","best practice videos",{"text":1197,"config":1198},"インテグレーション",{"href":1199,"dataGaName":1200,"dataGaLocation":1005},"/ja-jp/integrations/","integrations",{"title":1202,"items":1203},"検索する",[1204,1209,1214,1219,1223],{"text":1205,"config":1206},"お客様成功事例",{"href":1207,"dataGaName":1208,"dataGaLocation":1005},"/ja-jp/customers/","customer success stories",{"text":1210,"config":1211},"ブログ",{"href":1212,"dataGaName":1213,"dataGaLocation":1005},"/ja-jp/blog/","blog",{"text":1215,"config":1216},"Demo Hub",{"href":1217,"dataGaName":1218,"dataGaLocation":1005},"/ja-jp/demo-hub/","demo hub",{"text":1220,"config":1221},"The Source",{"href":1222,"dataGaName":1213,"dataGaLocation":1005},"/ja-jp/the-source/",{"text":1224,"config":1225},"リモート",{"href":1226,"dataGaName":1227,"dataGaLocation":1005},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":1229,"items":1230},"つなげる",[1231,1236,1241,1246,1251,1256],{"text":1232,"config":1233},"GitLabサービス",{"href":1234,"dataGaName":1235,"dataGaLocation":1005},"/ja-jp/services/","services",{"text":1237,"config":1238},"コントリビュート",{"href":1239,"dataGaName":1240,"dataGaLocation":1005},"https://contributors.gitlab.com","contribute",{"text":1242,"config":1243},"コミュニティ",{"href":1244,"dataGaName":1245,"dataGaLocation":1005},"/community/","community",{"text":1247,"config":1248},"フォーラム",{"href":1249,"dataGaName":1250,"dataGaLocation":1005},"https://forum.gitlab.com/","forum",{"text":1252,"config":1253},"イベント",{"href":1254,"dataGaName":1255,"dataGaLocation":1005},"/events/","events",{"text":1257,"config":1258},"パートナー",{"href":1259,"dataGaName":1260,"dataGaLocation":1005},"/ja-jp/partners/","partners",{"config":1262,"title":1265,"text":1266,"link":1267},{"background":1263,"textColor":1264},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","GitLabの最新情報","最新の機能と改善点に関する情報をお届けします。",{"text":1268,"config":1269},"最新情報を読む",{"href":1270,"dataGaName":1271,"dataGaLocation":1005},"/ja-jp/whats-new/","whats new",{"text":1273,"config":1274,"menu":1276},"企業情報",{"dataNavLevelOne":1275},"company",{"type":1056,"columns":1277},[1278],{"items":1279},[1280,1285,1291,1293,1298,1303,1308,1313,1318,1323],{"text":1281,"config":1282},"GitLabについて",{"href":1283,"dataGaName":1284,"dataGaLocation":1005},"/ja-jp/company/","about",{"text":1286,"config":1287,"footerGa":1290},"採用情報",{"href":1288,"dataGaName":1289,"dataGaLocation":1005},"/jobs/","jobs",{"dataGaName":1289},{"text":1252,"config":1292},{"href":1254,"dataGaName":1255,"dataGaLocation":1005},{"text":1294,"config":1295},"経営陣",{"href":1296,"dataGaName":1297,"dataGaLocation":1005},"/company/team/e-group/","leadership",{"text":1299,"config":1300},"ハンドブック",{"href":1301,"dataGaName":1302,"dataGaLocation":1005},"https://handbook.gitlab.com/","handbook",{"text":1304,"config":1305},"投資家向け情報",{"href":1306,"dataGaName":1307,"dataGaLocation":1005},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":1309,"config":1310},"トラストセンター",{"href":1311,"dataGaName":1312,"dataGaLocation":1005},"/ja-jp/security/","trust center",{"text":1314,"config":1315},"AI Transparency Center",{"href":1316,"dataGaName":1317,"dataGaLocation":1005},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":1319,"config":1320},"ニュースレター",{"href":1321,"dataGaName":1322,"dataGaLocation":1005},"/company/contact/#contact-forms","newsletter",{"text":1324,"config":1325},"プレス",{"href":1326,"dataGaName":1327,"dataGaLocation":1005},"/press/","press",{"text":1329,"config":1330,"menu":1331},"お問い合わせ",{"dataNavLevelOne":1275},{"type":1056,"columns":1332},[1333],{"items":1334},[1335,1340,1345],{"text":1336,"config":1337},"お問い合わせはこちら",{"href":1338,"dataGaName":1339,"dataGaLocation":1005},"/ja-jp/sales/","talk to sales",{"text":1341,"config":1342},"サポートを受ける",{"href":1343,"dataGaName":1344,"dataGaLocation":1005},"https://support.gitlab.com/hc/en-us","support portal",{"text":1346,"config":1347},"カスタマーポータル",{"href":1348,"dataGaName":1349,"dataGaLocation":1005},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":1351,"login":1352,"suggestions":1359},"閉じる",{"text":1353,"link":1354},"リポジトリとプロジェクトを検索するには、次にログインします",{"text":1355,"config":1356},"GitLab.com",{"href":1019,"dataGaName":1357,"dataGaLocation":1358},"search login","search",{"text":1360,"default":1361},"提案",[1362,1364,1369,1371,1375,1379],{"text":1036,"config":1363},{"href":1041,"dataGaName":1036,"dataGaLocation":1358},{"text":1365,"config":1366},"コード提案（AI）",{"href":1367,"dataGaName":1368,"dataGaLocation":1358},"/ja-jp/solutions/code-suggestions/","Code Suggestions (AI)",{"text":1072,"config":1370},{"href":1074,"dataGaName":1072,"dataGaLocation":1358},{"text":1372,"config":1373},"GitLab on AWS",{"href":1374,"dataGaName":1372,"dataGaLocation":1358},"/ja-jp/partners/technology-partners/aws/",{"text":1376,"config":1377},"GitLab on Google Cloud",{"href":1378,"dataGaName":1376,"dataGaLocation":1358},"/ja-jp/partners/technology-partners/google-cloud-platform/",{"text":1380,"config":1381},"GitLabを選ぶ理由",{"href":1049,"dataGaName":1382,"dataGaLocation":1358},"Why GitLab?",{"freeTrial":1384,"mobileIcon":1388,"desktopIcon":1393,"secondaryButton":1396},{"text":1007,"config":1385},{"href":1386,"dataGaName":1010,"dataGaLocation":1387},"https://gitlab.com/-/trials/new/","nav",{"altText":1389,"config":1390},"GitLabアイコン",{"src":1391,"dataGaName":1392,"dataGaLocation":1387},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":1389,"config":1394},{"src":1395,"dataGaName":1392,"dataGaLocation":1387},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":1169,"config":1397},{"href":1398,"dataGaName":1399,"dataGaLocation":1387},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp/get-started/","get started",{"freeTrial":1401,"mobileIcon":1405,"desktopIcon":1407},{"text":1402,"config":1403},"GitLab Duoの詳細について",{"href":1041,"dataGaName":1404,"dataGaLocation":1387},"gitlab duo",{"altText":1389,"config":1406},{"src":1391,"dataGaName":1392,"dataGaLocation":1387},{"altText":1389,"config":1408},{"src":1395,"dataGaName":1392,"dataGaLocation":1387},{"button":1410,"mobileIcon":1415,"desktopIcon":1417},{"text":1411,"config":1412},"/switch",{"href":1413,"dataGaName":1414,"dataGaLocation":1387},"#contact","switch",{"altText":1389,"config":1416},{"src":1391,"dataGaName":1392,"dataGaLocation":1387},{"altText":1389,"config":1418},{"src":1419,"dataGaName":1392,"dataGaLocation":1387},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":1421,"mobileIcon":1426,"desktopIcon":1428},{"text":1422,"config":1423},"料金ページに戻る",{"href":1156,"dataGaName":1424,"dataGaLocation":1387,"icon":1425},"back to pricing","GoBack",{"altText":1389,"config":1427},{"src":1391,"dataGaName":1392,"dataGaLocation":1387},{"altText":1389,"config":1429},{"src":1395,"dataGaName":1392,"dataGaLocation":1387},{"title":1431,"button":1432,"config":1436},"GitLab Orbitが登場: AIエージェントのためのコンテキストレイヤー",{"text":1047,"config":1433},{"href":1434,"dataGaName":1435,"dataGaLocation":1005},"/ja-jp/gitlab-orbit/","orbit",{"layout":1437,"disabled":988},"release",{"data":1439},{"text":1440,"source":1441,"edit":1447,"contribute":1452,"config":1457,"items":1462,"minimal":1671},"GitはSoftware Freedom Conservancyの商標です。当社は「GitLab」をライセンスに基づいて使用しています",{"text":1442,"config":1443},"ページのソースを表示",{"href":1444,"dataGaName":1445,"dataGaLocation":1446},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":1448,"config":1449},"このページを編集",{"href":1450,"dataGaName":1451,"dataGaLocation":1446},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":1453,"config":1454},"ご協力をお願いします",{"href":1455,"dataGaName":1456,"dataGaLocation":1446},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":1458,"facebook":1459,"youtube":1460,"linkedin":1461},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1463,1508,1561,1604,1638],{"title":1154,"links":1464,"subMenu":1479},[1465,1469,1474],{"text":1466,"config":1467},"プランの表示",{"href":1156,"dataGaName":1468,"dataGaLocation":1446},"view plans",{"text":1470,"config":1471},"Premiumを選ぶ理由",{"href":1472,"dataGaName":1473,"dataGaLocation":1446},"/ja-jp/pricing/premium/","why premium",{"text":1475,"config":1476},"Ultimateを選ぶ理由",{"href":1477,"dataGaName":1478,"dataGaLocation":1446},"/ja-jp/pricing/ultimate/","why ultimate",[1480],{"title":1329,"links":1481},[1482,1484,1486,1488,1493,1498,1503],{"text":1329,"config":1483},{"href":1338,"dataGaName":1015,"dataGaLocation":1446},{"text":1341,"config":1485},{"href":1343,"dataGaName":1344,"dataGaLocation":1446},{"text":1346,"config":1487},{"href":1348,"dataGaName":1349,"dataGaLocation":1446},{"text":1489,"config":1490},"ステータス",{"href":1491,"dataGaName":1492,"dataGaLocation":1446},"https://status.gitlab.com/","status",{"text":1494,"config":1495},"利用規約",{"href":1496,"dataGaName":1497,"dataGaLocation":1446},"/terms/","terms of use",{"text":1499,"config":1500},"プライバシーに関する声明",{"href":1501,"dataGaName":1502,"dataGaLocation":1446},"/ja-jp/privacy/","privacy statement",{"text":1504,"config":1505},"Cookie 優先設定",{"dataGaName":1506,"dataGaLocation":1446,"id":1507,"isOneTrustButton":284},"cookie preferences","ot-sdk-btn",{"title":1052,"links":1509,"subMenu":1518},[1510,1514],{"text":1511,"config":1512},"DevSecOpsプラットフォーム",{"href":1034,"dataGaName":1513,"dataGaLocation":1446},"devsecops platform",{"text":1515,"config":1516},"AI支援開発",{"href":1041,"dataGaName":1517,"dataGaLocation":1446},"ai-assisted development",[1519],{"title":1520,"links":1521},"トピック",[1522,1526,1531,1536,1541,1546,1551,1556],{"text":1072,"config":1523},{"href":1524,"dataGaName":1525,"dataGaLocation":1446},"/ja-jp/topics/ci-cd/","cicd",{"text":1527,"config":1528},"GitOps",{"href":1529,"dataGaName":1530,"dataGaLocation":1446},"/ja-jp/topics/gitops/","gitops",{"text":1532,"config":1533},"DevOps",{"href":1534,"dataGaName":1535,"dataGaLocation":1446},"/ja-jp/topics/devops/","devops",{"text":1537,"config":1538},"バージョン管理",{"href":1539,"dataGaName":1540,"dataGaLocation":1446},"/ja-jp/topics/version-control/","version control",{"text":1542,"config":1543},"DevSecOps",{"href":1544,"dataGaName":1545,"dataGaLocation":1446},"/ja-jp/topics/devsecops/","devsecops",{"text":1547,"config":1548},"クラウドネイティブ",{"href":1549,"dataGaName":1550,"dataGaLocation":1446},"/ja-jp/topics/cloud-native/","cloud native",{"text":1552,"config":1553},"コーディングのためのAI",{"href":1554,"dataGaName":1555,"dataGaLocation":1446},"/ja-jp/topics/devops/ai-for-coding/","ai for coding",{"text":1557,"config":1558},"エージェント型AI",{"href":1559,"dataGaName":1560,"dataGaLocation":1446},"/ja-jp/topics/agentic-ai/","agentic ai",{"title":1562,"links":1563},"ソリューション",[1564,1567,1569,1574,1578,1581,1584,1587,1589,1591,1594,1599],{"text":1097,"config":1565},{"href":1092,"dataGaName":1566,"dataGaLocation":1446},"Application Security Testing",{"text":1084,"config":1568},{"href":1068,"dataGaName":1069,"dataGaLocation":1446},{"text":1570,"config":1571},"アジャイル開発",{"href":1572,"dataGaName":1573,"dataGaLocation":1446},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":1575,"config":1576},"SCM",{"href":1081,"dataGaName":1577,"dataGaLocation":1446},"source code management",{"text":1072,"config":1579},{"href":1074,"dataGaName":1580,"dataGaLocation":1446},"continuous integration & delivery",{"text":1123,"config":1582},{"href":1125,"dataGaName":1583,"dataGaLocation":1446},"value stream management",{"text":1527,"config":1585},{"href":1586,"dataGaName":1530,"dataGaLocation":1446},"/ja-jp/solutions/gitops/",{"text":1136,"config":1588},{"href":1139,"dataGaName":1140,"dataGaLocation":1446},{"text":1142,"config":1590},{"href":1145,"dataGaName":1146,"dataGaLocation":1446},{"text":1592,"config":1593},"公共機関",{"href":1151,"dataGaName":1152,"dataGaLocation":1446},{"text":1595,"config":1596},"教育",{"href":1597,"dataGaName":1598,"dataGaLocation":1446},"/ja-jp/solutions/education/","education",{"text":1600,"config":1601},"金融サービス",{"href":1602,"dataGaName":1603,"dataGaLocation":1446},"/ja-jp/solutions/finance/","financial services",{"title":1605,"links":1606},"リソース",[1607,1609,1611,1613,1617,1619,1622,1624,1626,1628,1630,1632,1634,1636],{"text":1172,"config":1608},{"href":1174,"dataGaName":1175,"dataGaLocation":1446},{"text":1177,"config":1610},{"href":1179,"dataGaName":1180,"dataGaLocation":1446},{"text":1182,"config":1612},{"href":1184,"dataGaName":1185,"dataGaLocation":1446},{"text":1187,"config":1614},{"href":1615,"dataGaName":1616,"dataGaLocation":1446},"https://docs.gitlab.com/ja-jp","docs",{"text":1210,"config":1618},{"href":1212,"dataGaName":1213,"dataGaLocation":1446},{"text":1620,"config":1621},"最新リリース",{"href":1270,"dataGaName":1271,"dataGaLocation":1446},{"text":1205,"config":1623},{"href":1207,"dataGaName":1208,"dataGaLocation":1446},{"text":1224,"config":1625},{"href":1226,"dataGaName":1227,"dataGaLocation":1446},{"text":1232,"config":1627},{"href":1234,"dataGaName":1235,"dataGaLocation":1446},{"text":1237,"config":1629},{"href":1239,"dataGaName":1240,"dataGaLocation":1446},{"text":1242,"config":1631},{"href":1244,"dataGaName":1245,"dataGaLocation":1446},{"text":1247,"config":1633},{"href":1249,"dataGaName":1250,"dataGaLocation":1446},{"text":1252,"config":1635},{"href":1254,"dataGaName":1255,"dataGaLocation":1446},{"text":1257,"config":1637},{"href":1259,"dataGaName":1260,"dataGaLocation":1446},{"title":1639,"links":1640},"会社情報",[1641,1643,1645,1647,1649,1651,1655,1660,1662,1664,1666],{"text":1281,"config":1642},{"href":1283,"dataGaName":1275,"dataGaLocation":1446},{"text":1286,"config":1644},{"href":1288,"dataGaName":1289,"dataGaLocation":1446},{"text":1294,"config":1646},{"href":1296,"dataGaName":1297,"dataGaLocation":1446},{"text":1299,"config":1648},{"href":1301,"dataGaName":1302,"dataGaLocation":1446},{"text":1304,"config":1650},{"href":1306,"dataGaName":1307,"dataGaLocation":1446},{"text":1652,"config":1653},"Sustainability",{"href":1654,"dataGaName":1652,"dataGaLocation":1446},"/sustainability/",{"text":1656,"config":1657},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":1658,"dataGaName":1659,"dataGaLocation":1446},"/ja-jp/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":1309,"config":1661},{"href":1311,"dataGaName":1312,"dataGaLocation":1446},{"text":1319,"config":1663},{"href":1321,"dataGaName":1322,"dataGaLocation":1446},{"text":1324,"config":1665},{"href":1326,"dataGaName":1327,"dataGaLocation":1446},{"text":1667,"config":1668},"現代奴隷制の透明性に関する声明",{"href":1669,"dataGaName":1670,"dataGaLocation":1446},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1672},[1673,1675,1678],{"text":1494,"config":1674},{"href":1496,"dataGaName":1497,"dataGaLocation":1446},{"text":1676,"config":1677},"Cookieの設定",{"dataGaName":1506,"dataGaLocation":1446,"id":1507,"isOneTrustButton":284},{"text":1499,"config":1679},{"href":1501,"dataGaName":1502,"dataGaLocation":1446},[1681],{"id":1682,"title":7,"body":987,"config":1683,"content":1685,"description":987,"extension":1689,"meta":1690,"navigation":284,"path":1691,"seo":1692,"stem":1693,"__hash__":1694},"blogAuthors/en-us/blog/authors/regnard-raquedan.yml",{"template":1684},"BlogAuthor",{"name":7,"config":1686},{"headshot":1687,"ctfId":1688},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663118/Blog/Author%20Headshots/regnard_raquedan_headshot.png","rraquedan","yml",{},"/en-us/blog/authors/regnard-raquedan",{},"en-us/blog/authors/regnard-raquedan","1JCF9gTeSA0OaLWrorCsz7_b5_2A2kagAMVhH8r4NcM",[1696,1704,1711],{"title":1697,"description":1698,"heroImage":1699,"category":983,"date":1700,"authors":1701,"slug":1703,"externalUrl":987},"Loop Engineeringの実践方法：GitLab × Claude Codeでの実装例","GitLabとClaude Codeで実践するLoop Engineeringの実装例をご紹介。AIエージェントを自律稼働させるcron起動・Skills活用・ラベルベースのフローと、必須のガードレール設計を解説します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1785215335/oevhcbrbev1zyfubdfxz.jpg","2026-07-31",[1702],"Issei Hamada, Sony Biz Networks Corporation","loop-engineering-gitlab-claude-code",{"title":1705,"description":1706,"heroImage":1707,"category":983,"date":1700,"authors":1708,"slug":1710,"externalUrl":987},"エージェント型AI、MCP、AIコードアシスタントを統制する方法","AIエージェントは、各ステップで人によるレビューを介さずに、コードの記述、プッシュ、デプロイを行うことができます。アクセス、権限、監査証跡を統制する実践的なフレームワークを解説します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1785337625/ifzlc2hyzaxhzmjgyymh.png",[1709],"Julie Griffin","govern-agentic-ai-mcps-code-assistants",{"title":1712,"description":1713,"heroImage":1714,"category":983,"date":1715,"authors":1716,"slug":1718,"externalUrl":987},"Claude Opus 5、GitLabで最難関タスクに挑む","AnthropicのClaude Opus 5がGitLab Duo Agent Platformで利用可能になりました。速度を犠牲にすることなく、より深い推論力を提供します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099203/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2820%29_2bJGC5ZP3WheoqzlLT05C5_1750099203484.png","2026-07-27",[1717],"Brittany Lutz","claude-opus-5-on-gitlab-duo-agent-platform",{"promotions":1720},[1721,1734,1746,1758],{"id":1722,"categories":1723,"header":1724,"text":1725,"button":1726,"image":1731},"ai-modernization",[983],"AIの真価、組織全体で発揮できていますか？","所要時間は5分以内です",{"text":1727,"config":1728},"AI成熟度スコアを確認する",{"href":1729,"dataGaName":1730,"dataGaLocation":1213},"/ja-jp/assessments/ai-modernization-assessment/","modernization assessment",{"config":1732},{"src":1733},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1735,"categories":1736,"header":1738,"text":1725,"button":1739,"image":1743},"devops-modernization",[1737,1545],"product","単にツールを管理するだけでなく、イノベーションを提供していますか？",{"text":1740,"config":1741},"DevOps成熟度スコアを確認しましょう",{"href":1742,"dataGaName":1730,"dataGaLocation":1213},"/ja-jp/assessments/devops-modernization-assessment/",{"config":1744},{"src":1745},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1747,"categories":1748,"header":1750,"text":1725,"button":1751,"image":1755},"security-modernization",[1749],"security","スピードのためにセキュリティを犠牲にしていませんか？",{"text":1752,"config":1753},"セキュリティ成熟度スコアを確認しましょう",{"href":1754,"dataGaName":1730,"dataGaLocation":1213},"/ja-jp/assessments/security-modernization-assessment/",{"config":1756},{"src":1757},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1759,"paths":1760,"header":1763,"text":1764,"button":1765,"image":1770},"github-azure-migration",[1761,1762],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","チームはGitHubのAzure移行に対応できていますか？","GitHubはすでにAzureを基盤として再構築を進めています。それがあなたのチームにとって何を意味するのか、ご確認ください。",{"text":1766,"config":1767},"GitLabとGitHubの比較を見る",{"href":1768,"dataGaName":1769,"dataGaLocation":1213},"/ja-jp/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1771},{"src":1745},{"header":1773,"blurb":1774,"button":1775,"secondaryButton":1779},"今すぐ開発をスピードアップ","DevSecOpsに特化したインテリジェントオーケストレーションプラットフォームで実現できることをご確認ください。\n",{"text":1007,"config":1776},{"href":1777,"dataGaName":1010,"dataGaLocation":1778},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/ja-jp/","feature",{"text":1329,"config":1780},{"href":1338,"dataGaName":1015,"dataGaLocation":1778},1786803769702]