View a markdown version of this page

요청 만들기 - AWS의 Claude 플랫폼

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

요청 만들기

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