Teams move Claude workloads from Google Vertex AI to Claude Platform on AWS for two main reasons: consolidation onto AWS, and feature velocity — the Anthropic-operated platform typically gets same-day parity with the first-party API, including endpoints Vertex does not offer. Here is the migration broken into its actual parts.
The client swap
# before: Vertex AI (ADC, project + region in the constructor)
from anthropic import AnthropicVertex
client = AnthropicVertex(project_id="my-project", region="global")
# after: Claude Platform on AWS (SigV4 via the AWS credential chain;
# reads AWS_REGION + ANTHROPIC_AWS_WORKSPACE_ID from the environment)
from anthropic import AnthropicAWS
client = AnthropicAWS()
msg = client.messages.create(model="claude-opus-4-8", max_tokens=1024,
messages=[{"role": "user", "content": "Hello"}])
The messages.create call is unchanged. What moved is everything around it:
- Auth: ADC → SigV4. Vertex authenticated through Google Application Default Credentials.
AnthropicAWSsigns requests with SigV4 using the standard AWS credential chain (env vars, SSO, roles, IMDS) against service nameaws-external-anthropic; access is governed by IAM actions such asaws-external-anthropic:CreateInference. - Scoping: project → workspace. Vertex scoped everything to a GCP project. Claude Platform on AWS scopes usage, quotas, files, and batches to a workspace; every request carries an
anthropic-workspace-idheader, which the SDK sets fromANTHROPIC_AWS_WORKSPACE_IDor theworkspace_idconstructor arg. Workspaces are bound to a single AWS region, and the client raises at construction if region or workspace ID is missing. - Model IDs: mostly unchanged. Both platforms use bare IDs for current-generation models (
claude-opus-4-8,claude-sonnet-5,claude-fable-5). Drop any Vertex@datesuffixes on older models — Claude Platform on AWS uses IDs identical to the first-party API, so Vertex'sclaude-haiku-4-5@20251001becomes the aliasclaude-haiku-4-5. Also stop parsing Vertex'smsg_vrtx_response-ID prefix if anything depended on it.
Account setup you cannot skip
Signing up (via the AWS Console's Claude Platform on AWS page plus Anthropic's partner signup) provisions a new Anthropic organization tied to your AWS account. Then comes the most common setup error: a one-time per-account prerequisite to enable outbound web identity federation with aws iam enable-outbound-web-identity-federation. Without it, every request fails with "Outbound web identity federation is disabled for your account." Create a workspace, note its wrkspc_... ID, export it with your region, and attach an IAM policy — AnthropicInferenceAccess is the narrowest managed policy sufficient for inference.
Validating feature parity
Mostly you gain features. Anthropic's Message Batches API, the Files API, the Models API, code execution, web fetch, the MCP connector, programmatic tool calling, Managed Agents (beta), and inference_geo data residency are available on Claude Platform on AWS and absent on Vertex. Two upgrades deserve specific attention:
- Web search: Vertex supports only the basic
web_search_20250305variant; Claude Platform on AWS supports the current tooling. If you worked around the older variant, simplify. - Batch: if you used Google's Vertex batch prediction (BigQuery/GCS based), you will re-implement against Anthropic's Message Batches API — a different mechanism with the same 50% discount economics.
And a few things change against you or just differently:
- Long-context pricing improves: Vertex charges long-context rates for requests at or over 200K tokens; Anthropic bills the full 1M window at standard per-token rates.
- Rate limits move to Anthropic: quotas are managed by Anthropic (organizations start on the Start tier and do not move up automatically — contact Anthropic to raise limits), not by a cloud quota console.
- Compliance boundary changes: Anthropic becomes the data processor, and inference may route to Anthropic's primary cloud rather than staying inside AWS. Vertex's FedRAMP High boundary does not carry over — orgs needing FedRAMP High or HIPAA-ready deployments on AWS should use Claude in Amazon Bedrock instead. Confirm specifics with your providers.
- Not available: fast mode, most Admin API endpoints, spend limits, and OAuth auth are documented exceptions on Claude Platform on AWS.
Where to go next
Route the switch through a provider factory so it is a config change, and see the workspace ID guide and migrating between clouds for the broader playbook.