View a markdown version of this page

Realizar solicitudes - Plataforma Claude en AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Realizar solicitudes

La plataforma Claude en AWS usa la API de mensajes antrópicos (/v1/messages), la misma superficie de API que la plataforma propia de Claude. Las diferencias son la URL base, el método de autenticación y un anthropic-workspace-id encabezado obligatorio que identifica el espacio de trabajo al que se dirige la solicitud.

Shell

curl "https://aws-external-anthropic.us-west-2.api.aws/v1/messages" \ --aws-sigv4 "aws:amz:us-west-2:aws-external-anthropic" \ --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \ -H "x-amz-security-token: $AWS_SESSION_TOKEN" \ -H "content-type: application/json" \ -H "anthropic-version: 2023-06-01" \ -H "anthropic-workspace-id: $ANTHROPIC_AWS_WORKSPACE_ID" \ -d '{ "model": "claude-sonnet-4-6", "max_tokens": 1024, "messages": [ {"role": "user", "content": "Hello!"} ] }'

Python

from anthropic import AnthropicAWS client = AnthropicAWS() message = client.messages.create( model="claude-sonnet-4-6", max_tokens=1024, messages=[{"role": "user", "content": "Hello!"}], ) print(message)

TypeScript

import AnthropicAws from "@anthropic-ai/aws-sdk"; const client = new AnthropicAws(); const message = await client.messages.create({ model: "claude-sonnet-4-6", max_tokens: 1024, messages: [{ role: "user", content: "Hello!" }] }); console.log(message);

C#

using Anthropic; using Anthropic.Aws; var client = new AnthropicAwsClient(); var message = await client.Messages.Create(new() { Model = "claude-sonnet-4-6", MaxTokens = 1024, Messages = [new() { Role = "user", Content = "Hello!" }] }); Console.WriteLine(message);

Go

client, err := anthropicaws.NewClient(context.Background(), anthropicaws.ClientConfig{}) if err != nil { panic(err) } message, err := client.Messages.New(context.Background(), anthropic.MessageNewParams{ Model: anthropic.ModelClaudeSonnet4_6, MaxTokens: 1024, Messages: []anthropic.MessageParam{ anthropic.NewUserMessage(anthropic.NewTextBlock("Hello!")), }, }) if err != nil { panic(err) } fmt.Println(message.Content[0].Text)

Java

import com.anthropic.aws.backends.AwsBackend; import com.anthropic.client.AnthropicClient; import com.anthropic.client.okhttp.AnthropicOkHttpClient; import com.anthropic.models.messages.Message; import com.anthropic.models.messages.MessageCreateParams; import com.anthropic.models.messages.Model; AnthropicClient client = AnthropicOkHttpClient.builder() .backend(AwsBackend.fromEnv()) .build(); Message message = client.messages().create( MessageCreateParams.builder() .model(Model.CLAUDE_SONNET_4_6) .maxTokens(1024) .addUserMessage("Hello!") .build() ); IO.println(message);

PHP

use Anthropic\Aws\Client; $client = new Client(); $message = $client->messages->create( model: 'claude-sonnet-4-6', maxTokens: 1024, messages: [['role' => 'user', 'content' => 'Hello!']], ); echo $message;

Ruby

require "anthropic" client = Anthropic::AWSClient.new message = client.messages.create( model: "claude-sonnet-4-6", max_tokens: 1024, messages: [{ role: "user", content: "Hello!" }] ) puts message

El cliente lee AWS_REGION (oAWS_DEFAULT_REGION) y ANTHROPIC_AWS_WORKSPACE_ID desde el entorno. Se puede anular pasandoaws_region/awsRegionoworkspace_id/workspaceIdal constructor. Se requieren tanto el identificador de la región como el del espacio de trabajo; el constructor los arroja si alguno de ellos no se puede resolver a partir de estas fuentes.

nota

El x-amz-security-token encabezado (curl) solo es necesario para las credenciales temporales, como las funciones de IAM, el SSO o el STS. Omítelo cuando utilice credenciales de usuario de IAM de larga duración. Los clientes del SDK gestionan esto automáticamente en función de la fuente de credenciales.

El --aws-sigv4 valor sigue el formato. aws:amz:<region>:<service> El nombre del servicio SigV4 es aws-external-anthropic y la región debe coincidir con la región de la URL de su punto final. Una discrepancia en cualquiera de ellas produce un error genérico de rechazo de firma en lugar de un diagnóstico específico.

Uso del cliente base de Anthropic

Si prefiere no añadir la dependencia del SDK de AWS, puede utilizar el Anthropic cliente base. Esta ruta usa los nombres de las variables de entorno estándar del SDK en lugar de los ANTHROPIC_AWS_* nombres que lee el cliente dedicado:

export ANTHROPIC_API_KEY='your-api-key' export ANTHROPIC_BASE_URL='https://aws-external-anthropic.us-west-2.api.aws' export ANTHROPIC_WORKSPACE_ID='your-workspace-id'

Los SDK de Python y Go se leen ANTHROPIC_API_KEY y ANTHROPIC_BASE_URL automáticamente; en el caso de los demás lenguajes, se los pasa al constructor. TypeScript En todos los idiomas, pasa el ID del espacio de trabajo al anthropic-workspace-id encabezado.

Python

import os from anthropic import Anthropic client = Anthropic( # ANTHROPIC_API_KEY and ANTHROPIC_BASE_URL are read automatically default_headers={"anthropic-workspace-id": os.environ["ANTHROPIC_WORKSPACE_ID"]}, ) message = client.messages.create( model="claude-sonnet-4-6", max_tokens=1024, messages=[{"role": "user", "content": "Hello!"}], ) print(message.content[0].text)

TypeScript

import Anthropic from "@anthropic-ai/sdk"; const client = new Anthropic({ // ANTHROPIC_API_KEY and ANTHROPIC_BASE_URL are read automatically defaultHeaders: { "anthropic-workspace-id": process.env.ANTHROPIC_WORKSPACE_ID } }); const message = await client.messages.create({ model: "claude-sonnet-4-6", max_tokens: 1024, messages: [{ role: "user", content: "Hello!" }] }); console.log(message.content);