기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
요청 만들기
AWS의 Claude 플랫폼은 Claude 자사 플랫폼과 동일한 API 표면인 Anthropic Messages API(/v1/messages)를 사용합니다. 차이점은 기본 URL, 인증 방법 및 요청 대상이 되는 워크스페이스를 식별하는 필수 anthropic-workspace-id 헤더입니다.
쉘
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
클라이언트는 환경에서 AWS_REGION (또는 AWS_DEFAULT_REGION) 및 ANTHROPIC_AWS_WORKSPACE_ID를 읽습니다. 생성자에 aws_region / awsRegion 또는 workspace_id /를 전달하여 재정의workspaceId할 수 있습니다. 리전 및 작업 영역 ID가 모두 필요합니다. 이러한 소스에서 둘 중 하나를 확인할 수 없는 경우 생성자가를 발생시킵니다.
참고
x-amz-security-token 헤더(curl)는 IAM 역할, SSO 또는 STS와 같은 임시 자격 증명에만 필요합니다. 장기 IAM 사용자 자격 증명을 사용할 때는 생략합니다. SDK 클라이언트는 자격 증명 소스를 기반으로 이를 자동으로 처리합니다.
--aws-sigv4 값은 형식을 따릅니다aws:amz:<region>:<service>. SigV4 서비스 이름은 이며 aws-external-anthropic리전은 엔드포인트 URL의 리전과 일치해야 합니다. 둘 중 하나가 일치하지 않으면 특정 진단이 아닌 일반적인 서명 거부 오류가 발생합니다.
기본 Anthropic 클라이언트 사용
AWS SDK 종속성을 추가하지 않으려면 기본 Anthropic 클라이언트를 사용할 수 있습니다. 이 경로는 전용 클라이언트가 읽는 이름 대신 바닐라 SDK 환경 변수 ANTHROPIC_AWS_* 이름을 사용합니다.
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'
Python, TypeScript 및 Go SDKs는 ANTHROPIC_API_KEY 자동으로 읽고 ANTHROPIC_BASE_URL 읽습니다. 다른 언어의 경우 생성자에게 전달합니다. 모든 언어에서 anthropic-workspace-id 헤더에 워크스페이스 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);