はじめに
こんにちは!年度末ということもあり、最近はもっぱら業務に追われているなーがです。今回は業務でAzure FunctionsからVertex AIのClaudeモデルを呼び出す機会があったので、その設定手順をまとめてみました。
AnthropicのClaudeモデルは直接Anthropic APIを使う方法が一般的ですが、Google Cloud Vertex AIを経由して利用することもできます。既にGCPを利用している組織であれば、Vertex AI経由のほうがIAMによるアクセス管理や既存の請求体系との統合ができて便利です。
ただ、Vertex AIからClaudeを使うための設定手順は、GCPの認証周りも絡むため少し複雑です。今回は、GCPの基本的な設定からPython SDKを使った動作確認まで、一通りの手順をまとめてみました。
Vertex AIのClaudeモデルとは
Vertex AIでは、AnthropicのClaudeモデルをModel Garden経由で利用できます。自分のGCPプロジェクト内でClaudeを呼び出せるため、データの送信先やアクセス制御をGCPの仕組みで管理できるのがメリットです。
利用可能なモデル一覧
2026年2月時点で、Vertex AIで利用可能なClaudeモデルは以下の通りです。
| モデル名 | モデルID | 特徴 |
|---|---|---|
| Claude Opus 4.6 | claude-opus-4-6@20260205 | 最高性能モデル。高度な推論・分析向け |
| Claude Opus 4.5 | claude-opus-4-5@20251101 | 高性能モデル。複雑なタスク向け |
| Claude Sonnet 4.5 | claude-sonnet-4-5@20250929 | パフォーマンスとコストのバランスが良い |
| Claude Opus 4.1 | claude-opus-4-1@20250805 | 高性能モデル |
| Claude Opus 4 | claude-opus-4@20250514 | 高性能モデル |
| Claude Sonnet 4 | claude-sonnet-4@20250514 | コスト効率の良い汎用モデル |
| Claude Haiku 4.5 | claude-haiku-4-5@20251001 | 高速・低コストモデル |
以下のモデルは非推奨(Deprecated)となっています。既存のコードで使用している場合は、上記のモデルへの移行を検討してください。
| モデル名 | 非推奨開始日 |
|---|---|
| Claude 3.7 Sonnet | 2025年11月11日 |
| Claude 3.5 Haiku | 2026年1月5日 |
サポートリージョン
Claudeモデルを利用できるリージョンはモデルによって異なります。
| モデル | 利用可能なリージョン |
|---|---|
| Opus 4.6 | us-east5, global |
| Opus 4.5 / Sonnet 4.5 | us-east5, europe-west1, asia-southeast1, global |
| Sonnet 4 | us-east5, europe-west1, asia-east1, global |
| Haiku 4.5 | us-east5, europe-west1, asia-east1, global |
| Opus 4.1 / Opus 4 | us-east5, global |
リージョンによっては利用できないモデルがあるため、事前に確認しておきましょう。最新情報はModel Gardenでチェックしてください。
前提条件
この記事の手順を進めるにあたり、以下が必要です。
- Google Cloudアカウント
- GCPプロジェクト(課金が有効になっていること)
- gcloud CLIがインストール済みであること(インストール方法は後述)
- 以下のいずれかの権限を持つIAMロール
| ロール | 用途 |
|---|---|
roles/serviceusage.serviceUsageAdmin | APIの有効化 |
roles/iam.workloadIdentityPoolAdmin | Workload Identityプール/プロバイダの管理 |
roles/iam.serviceAccountCreator | サービスアカウントの作成 |
roles/resourcemanager.projectIamAdmin | プロジェクトIAMの管理 |
roles/iam.serviceAccountAdmin | サービスアカウントIAMの管理 |
Vertex AIの有効化
まず、GCPプロジェクトで必要なAPIを有効化します。
gcloud services enable \
iam.googleapis.com \
sts.googleapis.com \
iamcredentials.googleapis.com \
aiplatform.googleapis.com
各APIの役割は以下の通りです。
| API | 役割 |
|---|---|
iam.googleapis.com | IAMの管理 |
sts.googleapis.com | Security Token Service(トークン交換) |
iamcredentials.googleapis.com | サービスアカウントの認証情報生成 |
aiplatform.googleapis.com | Vertex AI本体 |
Model GardenからClaudeモデルを有効化する
APIを有効化しただけでは、まだClaudeモデルは使えません。Model Gardenから利用したいモデルを有効化する必要があります。
- Google Cloud Consoleにログインします
- 左側メニューから Vertex AI > Model Garden を選択します
- 検索バーで「Claude」と入力します
- 利用したいClaudeモデル(例: Claude Sonnet 4.5)を選択します
- 有効化 ボタンをクリックします
- 利用規約を確認し、同意して有効化を完了します
有効化が完了すると、そのモデルをVertex AI API経由で呼び出せるようになります。
参照: Model Garden でパートナー モデルを有効にする
認証設定: ADCによるローカル開発
ローカル環境からVertex AIを利用する最も簡単な方法は、Application Default Credentials(ADC)を使う方法です。
gcloud CLIのインストール
ADCの設定にはgcloud CLIが必要です。まだインストールしていない場合は、以下の手順でインストールしてください。
- Windows: Google Cloud CLI インストーラーからダウンロードしてインストール
- macOS(Homebrew):
brew install --cask google-cloud-sdk
- Linux(Debian/Ubuntu):
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates gnupg curl
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | \
sudo gpg --dearmor -o /usr/share/keyrings/cloud.google.gpg
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | \
sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
sudo apt-get update && sudo apt-get install -y google-cloud-cli
ADCの設定
ADC(Application Default Credentials)は、Google Cloudクライアントライブラリが自動的に認証情報を検索する仕組みです。以下のコマンドでローカルにADCファイルを作成できます。
gcloud auth application-default login
このコマンドを実行するとブラウザが開き、Googleアカウントでのログインが求められます。ログインが完了すると、認証情報が以下のパスに保存されます。
- Linux/macOS:
~/.config/gcloud/application_default_credentials.json - Windows:
%APPDATA%\gcloud\application_default_credentials.json
Python SDKなどのクライアントライブラリは、このファイルを自動的に読み取って認証します。

認証設定: Workload Identity FederationによるGCP外からのアクセス
Azure FunctionsなどのGCP外の環境からVertex AIにアクセスしたい場合は、Workload Identity Federationを使います。
Workload Identity Federationは、外部のIDプロバイダ(Azure AD、AWS IAMなど)が発行したトークンをGCPの短命トークンに交換する仕組みです。サービスアカウントキーを直接配布する必要がないため、セキュリティ面で優れています。
最初に設定するときは「プール?プロバイダ?SA Impersonation?」と概念が多くて面食らいましたが、一度理解すると鍵を一切管理しなくていいのが本当に楽です。
ここでは、Azure Functions の Managed Identity を使った連携を例に手順を説明します。WIF のベストプラクティスとして、--allowed-audiences にはAzure側でアプリの登録(サービスプリンシパル)を作成し、そのApplication IDを指定します。これにより、認証を受け付けるトークンの対象を自分のアプリケーション固有のIDに絞り込むことができます。

Azureサービスプリンシパルの作成
まず、Azure側でアプリの登録(サービスプリンシパル)を作成します。このApplication IDをWIFの --allowed-audiences に指定することで、Managed Identityが取得するトークンの受け入れ対象を自分のアプリケーションに限定できます。
Azure Portal で以下の手順を実行してください。
- Microsoft Entra ID > アプリの登録 > 新規登録 を選択
- 名前を入力(例:
gcp-workload-identity)し、登録 をクリック - 登録後に表示される アプリケーション(クライアント)ID をメモしておく
このApplication IDが --allowed-audiences に指定する値になります。
Workload Identityプールの作成
外部IDを管理するためのWorkload Identityプールを作成します。
gcloud iam workload-identity-pools create "azure-pool" \
--location="global" \
--display-name="Azure Pool"
OIDCプロバイダの追加
作成したプールにAzure ADをOIDCプロバイダとして追加します。
gcloud iam workload-identity-pools providers create-oidc "azure-provider" \
--location="global" \
--workload-identity-pool="azure-pool" \
--display-name="Azure Provider" \
--issuer-uri="https://sts.windows.net/<AZURE_TENANT_ID>/" \
--allowed-audiences="<SERVICE_PRINCIPAL_APPLICATION_ID>" \
--attribute-mapping="google.subject=assertion.sub,attribute.tid=assertion.tid,attribute.oid=assertion.oid" \
--attribute-condition="attribute.tid == '<AZURE_TENANT_ID>' && attribute.oid == '<MANAGED_IDENTITY_OBJECT_ID>'"
各パラメータの説明です。
| パラメータ | 説明 |
|---|---|
--issuer-uri | Azure ADのIssuer URI。Managed Identityが発行するv1トークンの場合はこの形式 |
--allowed-audiences | 作成したサービスプリンシパルのApplication ID(Client ID) |
--attribute-mapping | OIDCトークンのクレームをGCP属性にマッピング。assertion.oid はObject IDに対応 |
--attribute-condition | 受け入れるトークンの条件。テナントIDとObject IDを指定して不正なトークンを弾く |
Azure Functionsが複数ある場合など、複数のManaged IdentityのObject IDを許可したい場合は、in 演算子で列挙できます。
--attribute-condition="assertion.tid == '<AZURE_TENANT_ID>' && assertion.oid in ['<MANAGED_IDENTITY_OBJECT_ID_1>', '<MANAGED_IDENTITY_OBJECT_ID_2>']"
--allowed-audiences にテナントIDを使う場合
--allowed-audiences にはサービスプリンシパルのApplication ID(Client ID)の代わりに、認証用テナントのテナントIDを指定することもできます。
ただし、Azure Functionsが属するテナント(呼び出し側テナント)と、サービスプリンシパルが登録されているテナント(認証用テナント)が異なる場合は、サービスプリンシパルをマルチテナントとして設定する必要があります。シングルテナントのサービスプリンシパルは、自テナント以外のManaged Identityからのトークン取得を受け付けないためです。
マルチテナント設定は以下のいずれかの方法で行います。
Azure Portal の場合:
- アプリの登録 > Authentication を選択
- Supported account types を Accounts in any organizational directory に変更
- Save をクリック
Azure CLI の場合:
az ad app update \
--id "<SERVICE_PRINCIPAL_APPLICATION_ID>" \
--sign-in-audience AzureADMultipleOrgs
サービスアカウントの作成と権限付与
Vertex AI呼び出し用のサービスアカウントを作成し、必要な権限を付与します。
# サービスアカウントの作成
gcloud iam service-accounts create vertex-ai-workload \
--display-name="Vertex AI for Azure Workload"
# Vertex AI利用権限の付与
gcloud projects add-iam-policy-binding YOUR_GCP_PROJECT_ID \
--member="serviceAccount:vertex-ai-workload@YOUR_GCP_PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/aiplatform.user"
YOUR_GCP_PROJECT_ID は自分のGCPプロジェクトIDに置き換えてください。
Azure Managed Identityへの権限借用許可
Azure FunctionsのManaged Identityがこのサービスアカウントを借用できるように設定します。attribute.oid 属性を使ってバインディングするため、principalSet:// 形式で指定します。
gcloud iam service-accounts add-iam-policy-binding \
"vertex-ai-workload@YOUR_GCP_PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/iam.workloadIdentityUser" \
--member="principalSet://iam.googleapis.com/projects/YOUR_PROJECT_NUMBER/locations/global/workloadIdentityPools/azure-pool/attribute.oid/MANAGED_IDENTITY_OBJECT_ID"
YOUR_PROJECT_NUMBER はGCPプロジェクトの番号(プロジェクトIDではありません)、MANAGED_IDENTITY_OBJECT_ID はAzure FunctionsのManaged IdentityのObject IDに置き換えてください。
サンプルコード(WIF認証フロー)
以下のサンプルは、credential config ファイルを使用せず、辞書形式で load_credentials_from_dict に渡す方式です。実際の実装では AzureFunctionsWIFCredentials と Azure Functions のエントリポイントを別ファイルに分けることが多いですが、ここでは見通しよく1ファイルにまとめています。google.auth ライブラリが IMDS へのトークン取得・WIF STS との交換・SA Impersonation をすべて自動で処理します。
credential_config 辞書の構造は、Google Cloud が定義する外部認証情報設定ファイルの仕様に準拠しています。各フィールドの意味は以下のとおりです。
| フィールド | 説明 |
|---|---|
type: "external_account" | WIF を使った外部アカウント認証であることを示す |
audience | 認証先の WIF プール・プロバイダーの識別子 |
subject_token_type | Azure から取得するトークンの種別(JWT) |
token_url | GCP の Security Token Service (STS) エンドポイント |
credential_source | トークン取得元(Azure IMDS)の URL・ヘッダー・形式 |
service_account_impersonation_url | SA への権限借用リクエスト先 URL |
- 参考: 外部 ID のワークロード ID 連携を構成する – Google Cloud
- 参考: google-auth: load_credentials_from_dict – Python クライアントライブラリ
import os
from google.auth import load_credentials_from_dict
from google.auth.credentials import Credentials
from anthropic import AnthropicVertex
class AzureFunctionsWIFCredentials:
"""Azure Functions の Managed Identity を使った Workload Identity Federation 認証"""
def __init__(
self,
service_principal_app_id: str,
project_number: str,
pool_id: str,
provider_id: str,
service_account_email: str,
) -> None:
self.service_principal_app_id = service_principal_app_id
self.project_number = project_number
self.pool_id = pool_id
self.provider_id = provider_id
self.service_account_email = service_account_email
def get_credentials(self) -> Credentials:
identity_endpoint = os.environ["IDENTITY_ENDPOINT"]
identity_header = os.environ["IDENTITY_HEADER"]
credential_config = {
"type": "external_account",
"audience": (
f"//iam.googleapis.com/projects/{self.project_number}/locations/global/"
f"workloadIdentityPools/{self.pool_id}/providers/{self.provider_id}"
),
"subject_token_type": "urn:ietf:params:oauth:token-type:jwt",
"token_url": "https://sts.googleapis.com/v1/token",
"credential_source": {
"url": f"{identity_endpoint}?resource={self.service_principal_app_id}&api-version=2019-08-01",
"headers": {"X-IDENTITY-HEADER": identity_header},
"format": {"type": "json", "subject_token_field_name": "access_token"},
},
"service_account_impersonation_url": (
f"https://iamcredentials.googleapis.com/v1/projects/"
f"-/serviceAccounts/{self.service_account_email}:generateAccessToken"
),
}
credentials, _ = load_credentials_from_dict(
credential_config, scopes=["https://www.googleapis.com/auth/cloud-platform"]
)
return credentials
class VertexAIClaudeClient:
"""Vertex AI Claude クライアント"""
def __init__(self, project_id: str, region: str, credentials: Credentials) -> None:
self._client = AnthropicVertex(
region=region,
project_id=project_id,
credentials=credentials,
)
def generate(self, prompt: str, model: str = "claude-sonnet-4-5@20250929") -> str:
message = self._client.messages.create(
model=model,
max_tokens=1024,
messages=[{"role": "user", "content": prompt}],
)
return message.content[0].text
import azure.functions as func
app = func.FunctionApp()
# クライアントはコールドスタートのコストを避けるためモジュールレベルで初期化
_wif = AzureFunctionsWIFCredentials(
service_principal_app_id="<SERVICE_PRINCIPAL_APPLICATION_ID>",
project_number="<YOUR_PROJECT_NUMBER>",
pool_id="azure-pool",
provider_id="azure-provider",
service_account_email="vertex-ai-workload@<YOUR_GCP_PROJECT_ID>.iam.gserviceaccount.com",
)
_client = VertexAIClaudeClient(
project_id="<YOUR_GCP_PROJECT_ID>",
region="us-east5",
credentials=_wif.get_credentials(),
)
@app.route(route="generate", methods=["POST"])
def generate(req: func.HttpRequest) -> func.HttpResponse:
prompt = req.get_json().get("prompt", "")
if not prompt:
return func.HttpResponse("prompt is required", status_code=400)
result = _client.generate(prompt)
return func.HttpResponse(result, mimetype="text/plain")
参照: Workload Identity Federation の構成
認証設定(ローカルDevContainer環境)
ローカルDevContainerを使用する場合の手順です。DevContainerはコンテナ内で開発環境を構築するため、コンテナ内にgcloud CLIをインストールし、ADCの設定を行う必要があります。また、コンテナ内ではブラウザを直接起動できないため、認証方法にも工夫が必要です。Google Cloudのアカウントが割り当てられている前提です。
私もDevContainerでの認証は最初かなりハマりました。「ブラウザが開かない!」となったところで、後述する --no-launch-browser オプションに気づいて解決した経験があります。同じところで詰まっている方はぜひ参考にしてみてください。
gcloud CLIのインストール(DevContainer内)
DevContainerではコンテナビルド時にgcloud CLIをインストールしておくのがベストプラクティスです。Dockerfile に以下を追記することでインストールできます。
RUN apt-get update && apt-get install -y apt-transport-https ca-certificates gnupg curl \
&& curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | \
gpg --dearmor -o /usr/share/keyrings/cloud.google.gpg \
&& echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" \
> /etc/apt/sources.list.d/google-cloud-sdk.list \
&& apt-get update && apt-get install -y google-cloud-cli \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
Dockerfileを更新したら、コンテナを再ビルド(Rebuild Container)してください。これでDevContainer内からgcloudコマンドが使えます。
サービスアカウントの権限借用設定
ユーザーアカウントがサービスアカウントのトークンを生成できるように、serviceAccountTokenCreator ロールを付与します。
この操作には resourcemanager.projects.setIamPolicy 権限が必要です。
gcloud iam service-accounts add-iam-policy-binding \
SERVICE_ACCOUNT_EMAIL \
--member="user:YOUR_EMAIL_ADDRESS" \
--role="roles/iam.serviceAccountTokenCreator"
ADCの設定(権限借用)
サービスアカウントの権限借用を使って、ローカルADCファイルを作成します。
gcloud auth application-default login \
--impersonate-service-account=SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com
このコマンドを実行するとブラウザ認証が開き、認証完了後にサービスアカウントの権限借用を使ったADCが設定されます。以降、Python SDKなどがこの認証情報を自動的に利用します。
参照: サービスアカウントの権限借用を使用して、ローカル ADC ファイルを作成
代替手段: –no-launch-browserオプション
DevContainer内でブラウザが起動できない場合の代替手段として、--no-launch-browser オプションも利用できます。
gcloud auth application-default login --no-launch-browser
このコマンドを実行すると、認証用のURLがターミナルに表示されます。ホストマシンのブラウザでそのURLを開いて認証を完了し、表示された認証コードをターミナルに貼り付けてください。
サービスアカウントの権限借用を設定せずに済むため手軽ですが、認証されるのはユーザーアカウント自身のため、サービスアカウントベースのアクセス制御が必要な場合は前述の権限借用方式を使用してください。
Global vs Regionalエンドポイント
Vertex AIのClaudeモデルには、GlobalとRegionalの2種類のエンドポイントがあります。
| 項目 | Global | Regional |
|---|---|---|
| ルーティング | 動的に最適なリージョンへ | 指定リージョンのみ |
| 料金 | 追加料金なし | 10%のプレミアム料金 |
| データ所在地の保証 | なし | あり |
| ユースケース | 一般的な利用 | データ所在地の要件がある場合 |
Globalエンドポイントは、リクエストを自動的に最適なリージョンにルーティングするため、可用性が高く、追加料金もかかりません。特にデータ所在地の要件がなければ、まずはGlobalを選んでおけば間違いないでしょう。
Regionalエンドポイントは、指定したリージョン内でのみデータが処理されることが保証されます。コンプライアンス上、データの所在地を制御しなければならないケースで活躍します。
なお、10%のプレミアム料金が発生するのはClaude Sonnet 4.5・Haiku 4.5以降のモデルのみ。それ以前のモデル(Sonnet 4、Opus 4など)は既存の料金体系のままです。
コード上では、region パラメータで使い分けます。
# Globalエンドポイント
client = AnthropicVertex(region="global", project_id="your-project-id")
# Regionalエンドポイント(例: 東京に近いリージョン)
client = AnthropicVertex(region="asia-southeast1", project_id="your-project-id")
Python SDKのセットアップ
Vertex AI経由でClaudeを使うには、Anthropic Python SDKのVertex AI拡張をインストールします。
pip install -U google-cloud-aiplatform google-auth "anthropic[vertex]"
anthropic[vertex] をインストールするだけで、AnthropicVertex クライアントがすぐ使えます。
サンプルコード
基本的なテキスト生成
最もシンプルなテキスト生成のサンプルです。
from anthropic import AnthropicVertex
# クライアントの初期化
client = AnthropicVertex(
region="us-east5",
project_id="your-gcp-project-id",
)
# メッセージの送信
message = client.messages.create(
model="claude-sonnet-4-5@20250929",
max_tokens=1024,
messages=[
{"role": "user", "content": "Vertex AIとは何ですか?簡潔に教えてください。"}
],
)
print(message.content[0].text)
region と project_id は自分の環境に合わせて変更してください。ADCが設定されていれば、認証情報は自動的に読み取られます。
ストリーミングレスポンス
長い応答を逐次的に受け取りたい場合は、ストリーミングを使います。
from anthropic import AnthropicVertex
client = AnthropicVertex(
region="us-east5",
project_id="your-gcp-project-id",
)
# ストリーミングでメッセージを送信
with client.messages.stream(
model="claude-sonnet-4-5@20250929",
max_tokens=1024,
messages=[
{"role": "user", "content": "Pythonで簡単なWebサーバーを作る方法を教えてください。"}
],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
print() # 最後に改行
messages.stream() を使うと、レスポンスが生成されるたびにチャンク単位でテキストを受け取れます。チャットアプリケーションのようなリアルタイムな応答表示に便利です。
トラブルシューティング
Vertex AIからClaudeを利用する際によく遭遇するエラーとその対処法をまとめました。
「Permission denied」エラー
google.api_core.exceptions.PermissionDenied: 403 Permission denied on resource project
原因: ADCに設定されたアカウントにVertex AIの利用権限がない。
対処法:
roles/aiplatform.userロールが付与されているか確認するgcloud auth application-default loginを再実行して認証情報を更新する
「Model not found」エラー
anthropic.NotFoundError: 404 Model not found
原因: 指定したモデルがModel Gardenで有効化されていない、またはリージョンで利用できない。
対処法:
- Model Gardenで対象モデルが有効化されているか確認する
- 指定したリージョンでモデルが利用可能か確認する(サポートリージョンを参照)
「Could not automatically determine credentials」エラー
google.auth.exceptions.DefaultCredentialsError: Could not automatically determine credentials.
原因: ADCファイルが存在しない、または読み取れない。
対処法:
gcloud auth application-default loginを実行してADCを再設定する- 環境変数
GOOGLE_APPLICATION_CREDENTIALSが意図しないパスを指していないか確認する
「Quota exceeded」エラー
anthropic.RateLimitError: 429 Rate limit exceeded
原因: APIの呼び出しレートまたはトークン数の上限に達した。
対処法:
- しばらく待ってからリトライする
- Google Cloud Consoleの IAMと管理 > 割り当て でクォータの引き上げをリクエストする
さいごに
今回は、Vertex AIからClaudeモデルを利用するための設定手順を一通り紹介しました。
ポイントをまとめると以下の通りです。
- Model Gardenでの有効化が必要(APIの有効化だけでは不十分)
- ローカル開発にはADCが最も手軽(
gcloud auth application-default login) - GCP外からのアクセスにはWorkload Identity Federationを使うことでサービスアカウントキーの配布が不要になる。
--allowed-audiencesにはサービスプリンシパルのApplication IDを指定し、--attribute-conditionで認証対象を絞り込むのがベストプラクティス - Globalエンドポイントは追加料金なしで可用性が高いのでおすすめ
- Python SDKは
anthropic[vertex]をインストールするだけで使える
GCPを既に利用している方にとっては、Vertex AI経由でClaudeを使うことで既存のIAM管理や課金体系にそのまま統合できるのが大きなメリットです。ぜひ試してみてください!
最後までお読みいただき、ありがとうございます!
参照:


