اجرای Claude Code روی Amazon Bedrock و Google Vertex AI
برای اجرای Claude Code روی Bedrock یا Vertex AI باید متغیرهای محیطی را تنظیم کنید. در این راهنما بررسی میکنیم که چگونه با تغییر مسیر API، هزینهها و دسترسی به مدلها را مدیریت کنید.
تغییرات هنگام اجرای Claude Code روی حساب ابری شخصی
شما میتوانید Claude Code را روی Amazon Bedrock یا Google Vertex AI اجرا کنید. این تغییر تنها به تنظیم دو یا سه متغیر محیطی (environment variable) و استفاده از اعتبارنامههای ابری (cloud credentials) که تیم شما از قبل در اختیار دارد، نیاز دارد. تمامی عملکردهای محلی به همان شکل باقی میمانند: CLI، زیرمجموعهها (subagents)، هوکها (hooks)، مهارتها (skills)، سرورهای MCP و فایلهای CLAUDE.md شما بدون تغییر کار میکنند. تنها فراخوانی مدل تغییر مکان میدهد و چهار مورد همراه با آن جابهجا میشوند: شبکهای که درخواست از آن عبور میکند، حسابی که هزینه آن را پرداخت میکند، مدلهای Claude که اجازه فراخوانی آنها را دارید و ویژگیهای سمت سروری که در دسترس هستند.
پرسش اصلی بهندرت درباره کارکرد آن است؛ چرا که این سیستم کار میکند. پرسش اصلی این است که کدامیک از این چهار مورد برای شما اهمیت بیشتری دارد.
سه روش مسیریابی و هزینه هر کدام
استفاده مستقیم از Anthropic با اشتراک. شما با یک حساب claude.ai در طرحهای Pro، Max، Team یا Enterprise وارد میشوید. درخواستها به API شرکت Anthropic ارسال میشوند. شما هزینه را به ازای هر کاربر (seat) پرداخت میکنید و میزان استفاده به جای محاسبه بر اساس توکن، توسط محدودیتهای طرح تعیین میشود. این تنها روش مسیریابی است که به رابطهای ساختهشده روی حساب کاربری دسترسی دارد، مانند Claude Code در وب، اپلیکیشن موبایل، نسخه دسکتاپ و Remote Control. برای تیمها، طرح Claude Enterprise قابلیت ورود یکپارچه (SSO) و تنظیمات سیاستهای مدیریتی را به این موارد اضافه میکند.
استفاده مستقیم از Anthropic با کلید API. شما یک کلید در کنسول Anthropic ایجاد میکنید و هزینه را به ازای هر توکن میپردازید. زیرساخت و مناطق (regions) همانند اشتراک است، اما نیازی به خرید seat نیست و میزان استفاده در داشبورد اختصاصی Anthropic نمایش داده میشود. اینکه کدامیک از این دو روش ارزانتر است، به تعداد ساعات فعالیت واقعی ایجنت در روز بستگی دارد که موضوع اصلی مقایسه هزینه API در برابر اشتراک و هزینههای عملی Claude Code است.
استفاده از endpoint شخص ثالث در Bedrock یا Vertex. حساب AWS یا Google Cloud اختصاصی شما مدل را سرویسدهی میکند. در زمان استنتاج (inference)، شرکت Anthropic در مسیر درخواست قرار ندارد. توکنها در صورتحسابی که از قبل دریافت میکنید محاسبه میشوند و تحت سیاستهای IAM (مدیریت هویت و دسترسی) و لاگهای حسابرسی موجود شما قرار میگیرند. دو گزینه شخص ثالث دیگر نیز وجود دارد: Microsoft Foundry و Claude Platform در AWS که از همین الگو پیروی میکنند: یک متغیر محیطی (environment variable) ارائهدهنده را انتخاب میکند و هزینه از طریق حساب ابری پرداخت میشود.
نکته نامگذاری، تا اوت 2026: گوگل نام Vertex AI را به Google Cloud's Agent Platform تغییر داده است. مستندات Anthropic از نام جدید استفاده میکنند، در حالی که اعلان ورود Claude Code همچنان عبارت Google Vertex AI را نمایش میدهد و متغیرهای محیطی نیز همچنان از VERTEX استفاده میکنند.
محل نگهداری دادهها دلیل اصلی انجام این کار توسط تیمها است
در Bedrock، درخواست به یک endpoint در منطقه (region) انتخابی شما در AWS و داخل حساب کاربری خودتان ارسال میشود. دادههای در حال سکون (at rest) با استفاده از AES-256 و کلیدهای تحت مدیریت AWS رمزنگاری میشوند و شما میتوانید از طریق AWS KMS (سرویس مدیریت کلید) کلید اختصاصی خود را ارائه دهید. در Vertex، معادل این قابلیت، کلیدهای رمزنگاری تحت مدیریت گوگل است و امکان استفاده از CMEK (کلیدهای رمزنگاری تحت مدیریت مشتری) نیز وجود دارد. دسترسیها توسط نقشهای IAM که از قبل استفاده میکنید کنترل میشوند و فراخوانیها مانند هر API call دیگری در CloudTrail یا Cloud Audit Logs ثبت میشوند. برای یک تیم تحت نظارت نهادهای قانونی، این تمام استدلال لازم است و استدلال معتبری هم هست.
دو جزئیات وجود دارد که این موضوع را از آنچه در تبلیغات ادعا میشود، کمتر مطلق میکند.
یک پروفایل استنتاج بینمنطقهای (cross-region inference profile) به معنای یک منطقه واحد نیست. در Bedrock، ابزار Claude Code مدلهای پیشفرض داخلی خود را به IDهای پروفایل استنتاج بینمنطقهای نگاشت میکند و پیشوندی که ترجیح میدهد از منطقهای که در آن حل شده است میآید: us. در یک منطقه us-*، eu. در یک منطقه eu-*، apac. در یک منطقه ap-* و us-gov. در GovCloud. یک پروفایل بینمنطقهای میتواند درخواست را از منطقهای دیگر در همان محدوده جغرافیایی پاسخ دهد، بنابراین تضمینی که دریافت میکنید مربوط به یک محدوده جغرافیایی است، نه یک شهر خاص. اگر الزامات شما نام یک منطقه خاص را ذکر کرده است، درخواست را از طریق یک application inference profile که تحت کنترل شماست هدایت کنید و ANTHROPIC_MODEL را روی ARN آن تنظیم نمایید.
بخشی از ترافیک همچنان به Anthropic میرسد، اما هیچکدام از آنها کد شما نیست. تلهمتری، گزارش خطا و دستور /feedback بهصورت پیشفرض در هر دو پلتفرم Bedrock و Vertex غیرفعال هستند و /feedback بهجای آپلود کردن هر چیزی، یک آرشیو را در مسیر ~/.claude/feedback-bundles/ روی دستگاه خودتان مینویسد. دو استثنا در هر ارائهدهندهای وجود دارد. ابزار WebFetch پیش از فراخوانی یک URL، نام میزبان (hostname) را (و فقط نام میزبان را) برای بررسی لیست سیاه امنیتی به api.anthropic.com ارسال میکند. نظرسنجیهای کیفیت نشست (session) نیز همچنان ظاهر میشوند. مورد اول را با تنظیم skipWebFetchPreflight در فایل تنظیمات خود و مورد دوم را با CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1 خاموش کنید، یا تمام ترافیک غیرضروری را یکجا با CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC غیرفعال نمایید.
در مورد آموزش مدل: طبق شرایط تجاری، Anthropic مدلها را بر اساس کد یا پرامپتهای ارسالشده از طریق Claude Code آموزش نمیدهد و استفاده از پلتفرمهای شخص ثالث تجاری است. برنامه Development Partner Program که یک گزینه انتخابی (opt-in) برای اجازه دادن به آموزش مدل است، اصلاً به کاربران Bedrock یا Vertex ارائه نمیشود. عدم نگهداری دادهها (zero data retention) در این endpointها موضوعی است که به توافقنامه شما با AWS یا Google بستگی دارد.
تنظیم Claude Code برای استفاده از Amazon Bedrock
پیش از آنکه پیکربندی کلاینت اهمیت پیدا کند، دو اقدام باید یکبار برای هر اکانت AWS انجام شود. کنسول Amazon Bedrock را باز کنید، یک مدل Anthropic را از کاتالوگ مدلها انتخاب کرده و فرم مورد استفاده (use case) را ارسال کنید: دسترسی بلافاصله پس از ارسال تأیید میشود. سپس یک IAM policy متصل کنید که به فراخوانیهای Claude Code اجازه اجرا میدهد.
bedrock:InvokeModelbedrock:InvokeModelWithResponseStreambedrock:ListInferenceProfilesbedrock:GetInferenceProfile
ListInferenceProfiles قابلیتی است که به Claude Code اجازه میدهد در زمان شروع، بررسی کند اکانت شما واقعاً امکان فراخوانی کدام مدلها را دارد. GetInferenceProfile به آن اجازه میدهد تا ARN پروفایل inference برنامه را به مدل پایه (foundation model) پشت آن نگاشت کند تا بتواند ساختار درخواست صحیح را انتخاب کند. بدون این مورد، درخواستها همچنان موفقیتآمیز خواهند بود، زیرا Claude Code یکبار با ساختار دیگر تلاش مجدد میکند. نشانه این وضعیت، یک رفتوبرگشت (round trip) اضافی برای هر مدل جدید است، نه یک خطا.
سریعترین مسیر برای کلاینت، استفاده از ویزارد است. دستور claude را اجرا کنید، گزینه 3rd-party platform و سپس Amazon Bedrock را انتخاب کنید، یا در نشستی که از قبل وارد شدهاید، /setup-bedrock را تایپ کنید. این ابزار پروفایلها را در دایرکتوری ~/.aws شما میخواند، مدلهایی که اجازه فراخوانی آنها را دارید تأیید میکند و نتیجه را در بلوک env از فایل ~/.claude/settings.json مینویسد، بنابراین هیچچیز به پروفایل shell شما وابسته نخواهد بود.
برای پیادهسازی اسکریپتی، متغیرها را خودتان تنظیم کنید.
export CLAUDE_CODE_USE_BEDROCK=1
export AWS_REGION=us-east-1اعتبارنامهها از زنجیره استاندارد اعتبارنامههای AWS SDK میآیند، بنابراین هر چیزی که برای aws CLI کار میکند، اینجا نیز کار خواهد کرد: aws configure، یک پروفایل SSO، یک نقش فرضشده (assumed role) یا یک Bedrock API key.
aws sso login --profile=your-profile-name
export AWS_PROFILE=your-profile-nameexport AWS_BEARER_TOKEN_BEDROCK=your-bedrock-api-keyتوکن bearer سادهترین گزینه است و باید با دقت مدیریت شود، زیرا یک secret با طول عمر زیاد است که در یک متغیر محیطی قرار میگیرد. در یک build box اشتراکی، استفاده از نقشی که منقضی میشود را ترجیح دهید. همین استدلال برای هر اعتبارنامه دیگری که عامل (agent) میتواند بخواند صدق میکند، که موضوع دور نگه داشتن secretها از دسترس عامل هوش مصنوعی است.
تله منطقه (Region). Claude Code منطقه را به این ترتیب شناسایی میکند: AWS_REGION، سپس AWS_DEFAULT_REGION، سپس region در پروفایل فعال AWS شما، و در نهایت us-east-1. مرحله آخر یک پیشفرض است، نه یک خطا؛ بنابراین تیمی که هیچ منطقهای را در هیچجا تنظیم نکرده و فرض کرده که مسیریابی اروپایی دارد، درخواستهای خود را بدون هیچ هشدار چاپی به یک منطقه در ایالات متحده میفرستد. دستور /status را داخل Claude Code اجرا کنید تا منطقه شناساییشده و منبع آن را ببینید. برای تأیید اینکه اکانت شما در یک منطقه چه چیزی را میتواند فراخوانی کند، aws bedrock list-inference-profiles --region your-region را اجرا کنید.
اجرای Claude Code روی Google Vertex AI
API را فعال کنید و اعتبارنامهها را دریافت نمایید.
gcloud config set project YOUR-PROJECT-ID
gcloud services enable aiplatform.googleapis.com
gcloud auth application-default loginدر Model Garden، برای مدلهای Claude مورد نظر خود درخواست دسترسی ارسال کنید. تأییدیه آنی نیست، بنابراین 24 تا 48 ساعت زمان در نظر بگیرید. نقش roles/aiplatform.user را اختصاص دهید که شامل مجوز aiplatform.endpoints.predict است و برای فراخوانی مدل و شمارش توکن استفاده میشود.
سپس ارائهدهنده (provider) را انتخاب کنید.
export CLAUDE_CODE_USE_VERTEX=1
export CLOUD_ML_REGION=global
export ANTHROPIC_VERTEX_PROJECT_ID=YOUR-PROJECT-IDCLOUD_ML_REGION از global استفاده میکند که یک موقعیت چند-منطقهای (multi-region) مانند eu یا us، یا یک منطقه واحد است. نقطه پایانی (endpoint) سراسری، بهترین در دسترس بودن را ارائه میدهد اما کمترین کنترل را بر محل پردازش درخواست دارد؛ بنابراین، الزامات مربوط به محل اقامت دادهها (residency) معمولاً مستلزم تعیین یک موقعیت خاص است. پوشش مدلها در این سه حالت متفاوت است. هنگامی که مدل مورد نیاز شما در نقطه پایانی سراسری موجود نیست، آن مدل خاص را با متغیر VERTEX_REGION_CLAUDE_* به یک موقعیت مشخص محدود کنید و بقیه موارد را در حالت سراسری باقی بگذارید. به جای اعتماد به لیستی که قدیمی میشود، صفحه فعلی موقعیتهای Vertex AI را بررسی کنید.
تله پروژه. ANTHROPIC_VERTEX_PROJECT_ID کماولویتترین منبع برای شناسه پروژه است. GCLOUD_PROJECT، GOOGLE_CLOUD_PROJECT و فایل اعتبارنامهای که توسط GOOGLE_APPLICATION_CREDENTIALS نامگذاری شده، همگی بر آن اولویت دارند. روی دستگاهی که یکی از این موارد قبلاً در آن export شده باشد، هزینهها به حساب آن پروژه دیگر منظور میشود و هیچ چیزی در نشست (session) این موضوع را اعلام نمیکند.
پس از هر تغییر در ارائهدهنده، وضعیت را تأیید کنید. دستور /status را اجرا کنید: خط API provider مقدار Google Vertex AI را نشان میدهد و خطوط GCP project، Default region و Model نشان میدهند که Claude Code در واقع چه مقادیری را شناسایی کرده است. اگر خط ارائهدهنده وجود ندارد، متغیرها به پردازش نمیرسند، زیرا در shell متفاوتی نسبت به shell اجراکننده claude export شدهاند. آنها را به بلوک env در فایل تنظیمات منتقل کنید؛ این روش همچنین باعث میشود مقداری مانند AWS_PROFILE از سایر پردازشهایی که شروع میکنید، دور بماند.
کدام مدلها را دریافت میکنید و تأخیر آنها چقدر است
نامهای مستعاری مانند sonnet و opus به معنای جدیدترین مدل نیستند. در یک endpoint شخص ثالث، این نامها به مقدار پیشفرض داخلی Claude Code برای آن ارائهدهنده تبدیل میشوند که ممکن است نسبت به نسخهٔ فعلی عقبتر باشد یا اصلاً در حساب کاربری شما فعال نشده باشد. هنگامی که مقدار پیشفرض در دسترس نباشد، Claude Code برای آن نشست به یک مدل قدیمیتر یا در سطح پایینتر بازمیگردد و یک اعلان چاپ میکند. این بازگشت (fallback) ذخیره نمیشود، بنابراین نشست بعدی دوباره تلاش میکند و دوباره همان اعلان را چاپ میکند.
برای پیادهسازی در سطح یک تیم، نسخهها را ثابت (pin) کنید.
# Copy the exact IDs from your provider's own model catalog.
export ANTHROPIC_DEFAULT_OPUS_MODEL='<provider model id>'
export ANTHROPIC_DEFAULT_SONNET_MODEL='<provider model id>'
export ANTHROPIC_DEFAULT_HAIKU_MODEL='<provider model id>'شناسهها را از نمای کلی مدلها و از کاتالوگ ارائهدهندهٔ خود بردارید، زیرا فرمت آنها بسته به ارائهدهنده متفاوت است: Bedrock انتظار یک شناسهٔ inference profile یا یک ARN را دارد، در حالی که Vertex یک نام مدل ساده میخواهد. آنها را از داخل مقالات، از جمله همین مقاله، کپی نکنید. ثابت کردن نسخهها همچنین راهی برای کنترل هزینه است، زیرا مدل اصلی پیشفرض یک مدل از کلاس Opus است و هزینهٔ Opus به ازای هر توکن از Sonnet بیشتر است؛ بنابراین استقراری که هیچ نسخهای را ثابت نکند، با نرخ بالاتر محاسبه میشود. برای تعیین یک مدل ثابت به عنوان پیشفرض نشست، ANTHROPIC_MODEL را روی شناسهٔ کامل آن تنظیم کنید.
زمان در دسترس قرار گرفتن مدلها، واضحترین تفاوت در این مقایسه است. در API اختصاصی Anthropic، یک مدل از همان روز انتشار کار میکند. در Bedrock و Vertex، مدل زمانی کار میکند که ارائهدهندهٔ ابری شما آن را در منطقهٔ شما فعال کرده باشد و دسترسی آن به حساب شما اعطا شده باشد؛ که این فرآیند در بهترین حالت چند روز و گاهی بسیار طولانیتر زمان میبرد. اگر بخشی از کار باید روی جدیدترین مدل اجرا شود، یک مسیر (routing) داشته باشید که بتواند به آن دسترسی پیدا کند. این همان مورد کاربردی برای هدایت مدلهای مختلف به کارهای مختلف است.
آنچه در Bedrock و Vertex از دست میدهید
همه قابلیتهای محلی در تمام ارائهدهندگان کار میکنند: subagentها، hookها، slash commandها، skillها، پلاگینها، checkpointها، sandboxing، فایل تنظیمات مدیریتشده و معیارهای OpenTelemetry. شکافها همگی مربوط به سمت سرور هستند.
موارد غیرقابلدسترس در هر دو endpoint: حالت fast، قابلیت Advisor، کانالها (Channels)، پیامرسانی بیننشستی، داشبورد تحلیل و تنظیمات مدیریتشده توسط سرور. همچنین هر چیزی که به حساب کاربری claude.ai نیاز داشته باشد در دسترس نیست؛ این شامل Claude Code در وب، اپلیکیشن موبایل، نسخه Desktop، کنترل از راه دور (Remote Control)، روتینها و Artifactها میشود.
فقط در Bedrock: ابزار WebSearch در آنجا وجود ندارد، بنابراین Claude نمیتواند از طریق نشستی که به Bedrock هدایت شده است، جستجو انجام دهد. با این حال، اگر URL را به آن بدهید، همچنان میتواند با استفاده از WebFetch محتوای صفحه را بخواند. در Vertex، جستجوی وب برای مدلهای تولیدی Claude 4 و نسخههای بعد از آن کار میکند.
پشتیبانی محدود در هر دو: حالت auto فقط روی مجموعه محدودی از مدلهای جدیدتر اجرا میشود و /loop به یک بازه زمانی صریح نیاز دارد، زیرا نمیتواند خودش بازهای را انتخاب کند. پیش از آنکه قابلیتی را به تیم خود وعده دهید، صفحه در دسترس بودن قابلیتها در سایت Anthropic را بررسی کنید، زیرا این فهرست همواره در حال تغییر است.
هزینهها بر عهده چه کسی است
اشتراک و استفاده از endpoint شخص ثالث، دو خرید مجزا هستند. هیچکدام جایگزین دیگری نمیشود.
این موضوع ارزش بیان صریح را دارد، زیرا این اشتباه بهصورت بیصدا رخ میدهد. اگر CLAUDE_CODE_USE_BEDROCK=1 را روی سیستمی تنظیم کنید که در آن با یک Max seat وارد شدهاید، تمام توکنها توسط AWS و بر اساس نرخهای Bedrock محاسبه میشوند. هزینه اشتراک ماهانه همچنان دریافت میشود و هیچ بخشی از آن ترافیک را پوشش نمیدهد. همچنین نمای یکپارچهای وجود ندارد: هزینهها به AWS Cost Explorer یا Google Cloud Billing منتقل میشوند و داشبورد تحلیلی Anthropic در هیچکدام از این ارائهدهندگان در دسترس نیست. دستور /logout نیز ناپدید میشود، زیرا نشست (session) Anthropic برای پایان دادن وجود ندارد. اعتبارنامه در اینجا همان اعتبارنامه ابری است.
نرخها در صفحه اختصاصی هر ارائهدهنده قرار دارند و تغییر میکنند، بنابراین بهجای تکیه بر ارقام موجود در مقالات، قیمتگذاری Amazon Bedrock یا قیمتگذاری Vertex AI را مطالعه کنید. یک نکته ساختاری تغییر نمیکند: در این endpointها شما هزینه استنتاج (inference) را بهازای هر توکن پرداخت میکنید؛ بنابراین عاملی (agent) که تمام روز در حال اجرا باشد، هزینه مشخص خود را خواهد داشت و هیچ سقف طرحی برای متوقف کردن آن وجود ندارد.
محدودیتهای نرخ و سهمیهها در هر روش مسیریابی متفاوت عمل میکنند
در اشتراکها، محدودیتها متعلق به حساب کاربری هستند، طبق یک زمانبندی بازنشانی میشوند و رسیدن به آنها به معنای انتظار کشیدن است. این رفتار در نحوه عملکرد محدودیتهای مصرف پوشش داده شده است.
در کلید API شرکت Anthropic، محدودیتها متعلق به سازمان هستند، بر اساس تعداد درخواست و توکن در دقیقه بیان میشوند و با ارتقای سطح مصرف شما افزایش مییابند.
در Bedrock و Vertex، محدودیتها سهمیههای ابری هستند که برای هر حساب یا پروژه، هر مدل و هر منطقه تعریف میشوند و هیچ ارتباطی با طرحهای Anthropic ندارند. خطای 429 به این معناست که حساب کاربری به سقف سهمیه خود برای آن مدل در آن منطقه رسیده است؛ بنابراین راه حل در کنسول ارائهدهنده خدمات قرار دارد: درخواست افزایش سهمیه بدهید یا به مکانی با ظرفیت خالی منتقل شوید. Bedrock سهمیه را بر اساس قانون کاهش توکن محاسبه میکند، نه تعداد درخواست ثابت، و ظرفیت رزرو شده به عنوان throughput تأمینشده خریداری میشود. در Vertex، خطای 429 اغلب به این معناست که endpoint تکمنطقهای شما همزمان از مدل اصلی و مدل کوچک و سریع پشتیبانی نمیکند؛ به همین دلیل است که CLOUD_ML_REGION=global نقطه شروع مستندسازیشده است. صفحه سهمیهها در گوگل، نحوه درخواست افزایش را توضیح میدهد.
حالتهای شکست و پیامهای مربوط به آنها
Could not load the default credentials، در Vertex. اعتبارنامههای پیشفرض برنامه (Application Default Credentials) وجود ندارند یا منقضی شدهاند. دستور gcloud auth application-default login را اجرا کنید یا GOOGLE_APPLICATION_CREDENTIALS را به یک فایل کلید حساب سرویس (service account key) ارجاع دهید.
خطای 404 با نام مدل، در Vertex. این مدل در Model Garden برای آن پروژه فعال نشده است یا در موقعیت جغرافیایی (location) تعیینشده ارائه نمیشود. برخی مدلها فقط روی endpoint جهانی یا در موقعیتهای چند-منطقهای (multi-region) مانند eu سرویسدهی میشوند و در مناطق خاص در دسترس نیستند.
on-demand throughput isn't supported، در Bedrock. شما یک شناسه مدل پایه (foundation model ID) خام را برای مدلی ارسال کردهاید که فقط از طریق یک inference profile ارائه میشود. بهجای آن از شناسه inference profile استفاده کنید.
AWS default-chain credential resolve timed out. یکی از مراحل زنجیره اعتبارنامههای AWS متوقف شده است؛ این اتفاق معمولاً زمانی رخ میدهد که یک helper مانند credential_process منتظر ورودی است که هرگز دریافت نخواهد شد. هر مرحله از این زنجیره پس از 60 ثانیه دچار timeout میشود. اگر زنجیره شما واقعاً به زمان بیشتری نیاز دارد (مثلاً در جریان احراز هویت SSO مرورگر با MFA)، محدودیت زمانی را با استفاده از CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS به میلیثانیه افزایش دهید.
خطا در شروع Bedrock streaming response has content-type. عاملی بین Claude Code و Bedrock در حال بازنویسی جریان (stream) است. Bedrock جریانها را در قالب binary event-stream با نوع محتوای application/vnd.amazon.eventstream ارسال میکند؛ بنابراین اگر یک gateway آن را به صورت server-sent events بازنشر کند، بدنه (body) دریافتی برای Claude Code قابل رمزگشایی نخواهد بود. gateway را طوری تنظیم کنید که بدنه پاسخ و هدر Content-Type را بدون تغییر عبور دهد.
باز شدن حلقهای تبهای مرورگر در حین AWS SSO. یک VPN شرکتی یا یک پروکسی بازرسی TLS (TLS-inspecting proxy) در فرآیند ورود اختلال ایجاد میکند. Claude Code این اتصال ناقص را به عنوان شکست در احراز هویت تلقی کرده، دستور awsAuthRefresh را مجدداً اجرا میکند و این چرخه تکرار میشود. awsAuthRefresh را از فایل تنظیمات خود حذف کنید و پیش از شروع Claude Code، دستور aws sso login را بهصورت دستی اجرا نمایید.
انتخاب روش مسیریابی
زمانی که به مدلهای جدید در روز انتشار و مجموعه کامل قابلیتها نیاز دارید، Anthropic مستقیم را انتخاب کنید. زمانی که میخواهید بدون خرید اشتراک، هزینه را بر اساس هر توکن پرداخت کنید، از API key استفاده کنید. زمانی که الزام دارید استنتاج (inference) در داخل یک حساب ابری تحت مدیریت شما انجام شود، Bedrock یا Vertex را انتخاب کنید؛ در این حالت، پذیرش خط لوله مدل کندتر و لیست قابلیتهای محدودتر، بهای این انتخاب است. صفحات تنظیماتی که ارزش نشانگذاری (bookmark) دارند، صفحات اختصاصی Anthropic برای Amazon Bedrock و Google Vertex AI به همراه لیست AWS از مدلها بر اساس منطقه هستند.
هیچکدام از این سه روش، محل اجرای خودِ عامل (agent) را تغییر نمیدهند. Claude Code یک پردازش محلی است که فایلهای شما را میخواند و دستوراتتان را اجرا میکند، فارغ از اینکه کدام endpoint به آن پاسخ دهد. به همین دلیل است که تیمهایی که میخواهند این ابزار در جایی غیر از لپتاپ اجرا شود، عامل کدنویسی را روی یک VPS قرار میدهند و همان متغیرها را در آنجا export میکنند.
FAQ
Does my Claude subscription pay for Claude Code on Bedrock or Vertex?
No. A Pro, Max, Team or Enterprise seat and a third-party endpoint are separate purchases, and neither covers the other. With CLAUDE_CODE_USE_BEDROCK=1 or CLAUDE_CODE_USE_VERTEX=1 set, every token is metered by AWS or Google Cloud at their rates and lands on that cloud bill, while the seat keeps charging monthly for the surfaces it covers. Spend tracking moves with it, to AWS Cost Explorer or Google Cloud Billing, because the Anthropic analytics dashboard is not available on either provider.
Which region does Claude Code send my requests to on Amazon Bedrock?
The region it resolved, which /status will show you. Claude Code checks AWS_REGION, then AWS_DEFAULT_REGION, then the region on your active AWS profile, and falls back to us-east-1 when none of those is set. Its built-in default models then resolve to cross-region inference profiles whose prefix follows that region, such as us. or eu., and a cross-region profile can serve a request from another region inside the same geography. When one named region is a hard requirement, use an application inference profile you control and set ANTHROPIC_MODEL to its ARN.
Why is the newest Claude model missing in my Bedrock or Vertex account?
Because each cloud provider enables models on its own schedule, and your account has to be granted access on top of that. On Vertex you request access in Model Garden and approval can take 24 to 48 hours. Until then, aliases such as sonnet and opus resolve to Claude Code's built-in default for that provider, and when that default is not available in your account Claude Code falls back to an earlier or lower-tier model for the session and shows a notice. Pin ANTHROPIC_DEFAULT_SONNET_MODEL and its siblings to IDs you have confirmed are enabled.
Is web search available in Claude Code on Amazon Bedrock?
No. The WebSearch tool is not available on Bedrock, so Claude cannot run a search from a session routed there. It can still read a specific page with WebFetch when you supply the URL. On Google Vertex AI web search does work, for Claude 4 generation models and later, which is one of the few capability differences that runs in Vertex's favour.
Do I need an Anthropic account to run Claude Code on Bedrock or Vertex?
No. Authentication is your AWS or Google Cloud credential, which is why /logout is unavailable on both providers. One connection to Anthropic remains whatever provider you use: before fetching a URL, the WebFetch tool sends the hostname, and only the hostname, to api.anthropic.com to check it against a safety blocklist. Set skipWebFetchPreflight in your settings file to turn that off, and pair it with WebFetch permission rules if you still want to limit which domains Claude can reach.