Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Demandes
La plateforme Claude sur AWS utilise l'API Anthropic Messages (/v1/messages), la même surface d'API que la plateforme propriétaire Claude. Les différences concernent l'URL de base, la méthode d'authentification et un anthropic-workspace-id en-tête obligatoire qui identifie l'espace de travail cible par la demande.
Coquille
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
Le client lit AWS_REGION (ouAWS_DEFAULT_REGION) et ANTHROPIC_AWS_WORKSPACE_ID depuis l'environnement. Vous pouvez le remplacer en passantaws_region/awsRegionouworkspace_id/workspaceIdau constructeur. La région et l'identifiant de l'espace de travail sont requis ; le constructeur les renvoie si l'un ou l'autre ne peut pas être résolu à partir de ces sources.
Note
L'x-amz-security-tokenen-tête (curl) n'est requis que pour les informations d'identification temporaires telles que les rôles IAM, SSO ou STS. Omettez-le lorsque vous utilisez des informations d'identification utilisateur IAM à long terme. Les clients du SDK gèrent cela automatiquement en fonction de la source des informations d'identification.
La --aws-sigv4 valeur suit le formataws:amz:<region>:<service>. Le nom du service Sigv4 estaws-external-anthropic, et la région doit correspondre à la région dans l'URL de votre point de terminaison. Une incompatibilité entre l'un ou l'autre produit une erreur générique de rejet de signature plutôt qu'un diagnostic spécifique.
Utilisation du client Anthropic de base
Si vous préférez ne pas ajouter de dépendance au SDK AWS, vous pouvez utiliser le Anthropic client de base. Ce chemin utilise les noms des variables d'environnement du SDK vanilla plutôt que les ANTHROPIC_AWS_* noms lus par le client dédié :
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'
Les SDK Python et Go lisent ANTHROPIC_API_KEY et se lisent ANTHROPIC_BASE_URL automatiquement ; pour les autres langages, transmettez-les au constructeur. TypeScript Dans chaque langue, transmettez l'identifiant de l'espace de travail dans l'anthropic-workspace-iden-tête.
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);