View a markdown version of this page

Demandes - Claude Platform sur AWS

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);