View a markdown version of this page

Fazer solicitações - Plataforma Claude na AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Fazer solicitações

A Claude Platform na AWS usa a Anthropic Messages API (/v1/messages), a mesma superfície de API da plataforma primária Claude. As diferenças são a URL base, o método de autenticação e um anthropic-workspace-id cabeçalho obrigatório que identifica qual espaço de trabalho a solicitação tem como alvo.

Concha

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

O cliente lê AWS_REGION (ouAWS_DEFAULT_REGION) e ANTHROPIC_AWS_WORKSPACE_ID do ambiente. Você pode substituir passandoaws_region/awsRegionouworkspace_id/workspaceIdpara o construtor. Tanto a ID da região quanto a do espaço de trabalho são obrigatórias; o construtor lança se alguma delas não puder ser resolvida a partir dessas fontes.

nota

O x-amz-security-token cabeçalho (curl) só é necessário para credenciais temporárias, como funções do IAM, SSO ou STS. Omita-o ao usar credenciais de usuário do IAM de longo prazo. Os clientes do SDK lidam com isso automaticamente com base na fonte da credencial.

O --aws-sigv4 valor segue o formatoaws:amz:<region>:<service>. O nome do serviço SigV4 éaws-external-anthropic, e a região deve corresponder à região na URL do seu endpoint. Uma incompatibilidade em qualquer uma delas produz um erro genérico de rejeição de assinatura em vez de um diagnóstico específico.

Usando o cliente antrópico básico

Se você preferir não adicionar a dependência do AWS SDK, você pode usar o cliente baseAnthropic. Esse caminho usa os nomes das variáveis de ambiente vanilla do SDK em vez dos ANTHROPIC_AWS_* nomes que o cliente dedicado lê:

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'

Os SDKs do Python e Go são lidos ANTHROPIC_API_KEY e ANTHROPIC_BASE_URL automaticamente; para as outras linguagens, passe-os para o construtor. TypeScript Em cada idioma, passe o ID do espaço de trabalho no anthropic-workspace-id cabeçalho.

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