Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Esecuzione di richieste
La piattaforma Claude su AWS utilizza l'API Anthropic Messages (/v1/messages), la stessa superficie API della piattaforma proprietaria Claude. Le differenze sono l'URL di base, il metodo di autenticazione e un'anthropic-workspace-idintestazione obbligatoria che identifica l'area di lavoro a cui è destinata la richiesta.
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
Il client legge AWS_REGION (oAWS_DEFAULT_REGION) e ANTHROPIC_AWS_WORKSPACE_ID dall'ambiente. È possibile eseguire l'override passandoaws_region/awsRegionoworkspace_id/workspaceIdal costruttore. Sono obbligatori sia l'ID della regione che l'ID dell'area di lavoro; il costruttore genera se uno dei due non può essere risolto da queste fonti.
Nota
L'x-amz-security-tokenintestazione (curl) è richiesta solo per credenziali temporanee come ruoli IAM, SSO o STS. Omettilo quando usi credenziali utente IAM a lungo termine. I client SDK lo gestiscono automaticamente in base alla fonte delle credenziali.
Il --aws-sigv4 valore segue il formato. aws:amz:<region>:<service> Il nome del servizio SigV4 è e aws-external-anthropic la regione deve corrispondere alla regione nell'URL dell'endpoint. Una mancata corrispondenza in uno dei due genera un errore generico di rifiuto della firma anziché una diagnostica specifica.
Utilizzo del client Anthropic di base
Se preferisci non aggiungere la dipendenza dell'SDK AWS, puoi utilizzare il client di baseAnthropic. Questo percorso utilizza i nomi delle variabili di ambiente Vanilla SDK anziché i ANTHROPIC_AWS_* nomi letti dal client dedicato:
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'
Gli SDK Python e Go leggono e vengono letti ANTHROPIC_API_KEY ANTHROPIC_BASE_URL automaticamente; per gli altri linguaggi, passali al costruttore. TypeScript In ogni lingua, passa l'ID dell'area di lavoro nell'intestazione. anthropic-workspace-id
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);