View a markdown version of this page

AgentCore 결제 빠른 시작 - Amazon Bedrock AgentCore

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

AgentCore 결제 빠른 시작

이 자습서에서는 AgentCore 결제를 설정하고 첫 번째 마이크로트랜잭션을 처리하는 방법을 안내합니다. 결국 에이전트는 테스트 네트워크에서 x402 프로토콜을 사용하여 리소스에 대한 비용을 지불합니다.

다음 두 가지 방법으로 결제를 설정할 수 있습니다.

  • AgentCore Payments 스킬 사용 - Kiro, Claude Code 또는 Codex와 같은 AI 코딩 에이전트와의 안내 대화를 통해 모든 리소스를 프로비저닝하는 자동화된 설정 환경입니다. 스킬은 CLI 명령, SDK 스크립트 및 프레임워크 와이어링을 처리합니다.

  • CLI, SDK 또는 Boto3 사용 step-by-step 수동 설정입니다. AgentCore AWS AWS

Coinbase 커넥터를 생성할 때 두 가지 방법으로 자격 증명을 제공할 수 있습니다. 빠른 생성(권장)을 사용하면 Coinbase 및 AgentCore 결제를 통해 자격 증명을 프로비저닝하고 저장할 수 있습니다. 생성하거나 붙여 넣을 키는 없습니다. 수동을 사용하면 직접 생성한 Coinbase API 키를 제공할 수 있습니다. Stripe(Privy)는 수동 흐름만 사용합니다. 빠른 생성을 사용하면 수동 설정의 1단계와 2단계를 건너뜁니다.

AgentCore Payments 스킬 사용

AgentCore Payments 스킬은 대화형 안내 경험을 통해 전체 설정 프로세스를 자동화합니다. 다음 리소스를 프로비저닝합니다.

  • PaymentCredentialProvider - AgentCore 자격 증명에 결제 공급자 자격 증명을 저장합니다.

  • Payment Manager - 결제 작업을 조정하는 최상위 리소스입니다.

  • Payment Connector - AgentCore CLI를 통해 관리자를 자격 증명에 연결합니다.

  • Payment Instrument - 에이전트가 사용자를 대신하여 가맹점에 결제하는 데 사용하는 암호화 지갑입니다.

  • 결제 세션 - 지출 한도가 있는 시간 제한 컨텍스트입니다.

또한이 스킬은 프레임워크에 구애받지 않는 도구를 사용하여 에이전트에 결제를 연결하므로 Strands, LangGraph, OpenAI Agents SDK 또는 Python 프레임워크와 함께 작동합니다.

사전 조건

시작하기 전에 다음이 있는지 확인합니다.

  • AWS 자격 증명이 구성된 계정(aws configure)

  • AgentCore 결제를 사용할 수 있는 AWS 리전 - 지원되는 AWS 리전을 참조하세요.

  • Coinbase AWS Marketplace 구독(Coinbase만 해당) - Coinbase를 결제 공급자로 사용하는 경우 AWS Marketplace에서 Coinbase Wallets for AgentCore Payments 목록을 구독해야 합니다. 이 구독을 사용하면 Coinbase 웹 사이트의 Coinbase 요금을 기반으로 Coinbase Wallet 사용 요금이 월별 AWS 청구서에 통합됩니다. AWS Marketplace에서 AgentCore 결제를 위한 Coinbase Wallets 구독을 참조하세요.

  • Node.js 20 이상 설치됨(Skill이 AgentCore CLI를 자동으로 설치함)

  • 유료 엔드포인트에 액세스하는 에이전트 -이 기술을 사용하면 에이전트가 x402 보호 APIs. 테스트에는 샌드박스 엔드포인트를 사용할 수 있습니다https://sandbox.node4all.com/v1/x402-test.

  • AI 코딩 에이전트에 설치된 플러그인용 에이전트 도구 AWS aws-agents 키트:

    예
    Claude Code
    /plugin marketplace add aws/agent-toolkit-for-aws /plugin install aws-agents@agent-toolkit-for-aws
    Codex

    플러그인은 Marketplace 매니페스트에서 자동으로 검색됩니다. 마켓플레이스를 추가하려면 다음 명령을 실행합니다.

    codex plugin marketplace add aws/agent-toolkit-for-aws

스킬 호출

결제 스킬은 Agent Toolkit for AWS agents-build 스킬의 일부입니다. 이를 트리거하려면 AI 코딩 에이전트에서 의도를 설명하세요. 예제:

  • “aws-agents플러그인에서 agents-build 스킬을 사용하여 에이전트에 결제 추가”

  • “aws-agents플러그인에서 agents-build 스킬을 사용하여 에이전트에 대한 마이크로트랜잭션 설정”

  • “aws-agents플러그인에서 agents-build 스킬을 사용하여 402 Payment Required 응답을 처리해야 합니다.”

  • “aws-agents플러그인에서 agents-build 스킬을 사용하여 x402 보호 APIs에 대한 요금을 지불하도록 에이전트에게 연결”

스킬은 결제 관련 의도를 감지하고 결제 워크플로를 자동으로 로드합니다.

스킬이 수행하는 작업

스킬은 결제 인프라를 end-to-end로 프로비저닝하는 자동화된 프로세스를 실행합니다. 스킬은 대부분의 단계를 자동으로 실행하고 입력을 위해 두 번 일시 중지합니다.

  1. AgentCore CLI를 확인 또는 설치하고 프로젝트를 설정합니다.

  2. 결제 관리자를 생성합니다.

  3. 일시 중지 - 결제 커넥터를 추가합니다. 빠른 생성이 포함된 Coinbase(권장)의 경우 Coinbase를 통해 권한을 부여하고 AgentCore 결제는 보안 암호 없이 자격 증명을 프로비저닝합니다. Coinbase 수동 또는 Stripe(Privy)의 경우를 실행agentcore add payment-connector하여 공급자 암호를 입력합니다.

  4. AWS 계정에 리소스를 배포합니다(agentcore deploy -y).

  5. 프레임워크에 구애받지 않는 결제 도구(x402_payment_tool.py)를 에이전트에 연결

  6. SDK를 통해 사용자당 Wallet(계측기) 및 예산 경계 세션을 생성합니다.

  7. 일시 중지 - 월렛(위임)에 권한을 부여하고 Circle faucet 웹 사이트에서 testnet USDC로 자금을 조달합니다.

  8. 환경 변수를 설정하고 유료 엔드포인트에 대해 테스트 결제를 실행합니다.

수동 흐름(Coinbase 수동 또는 Stripe 권한)을 사용하는 경우 커넥터를 추가하기 전에 공급자로부터 자격 증명을 얻습니다. Coinbase 빠른 생성을 사용하면 키를 붙여넣는 대신 Coinbase를 통해 권한을 부여하는이 작업을 건너뜁니다.

실행에 성공하면 에이전트가를 호출하고x402_fetch,를 감지하고402, AgentCore SDK를 통해 결제를 설정하고, 유료 콘텐츠200와 함께 반환을 재시도합니다.

CLI, SDK 또는 Boto3 사용

이 섹션에서는 AgentCore CLI, CLI AWS 또는 AWS SDK(Boto3)를 사용하여 각 단계를 수동으로 안내합니다.

사전 조건

시작하기 전에 다음이 있는지 확인합니다.

필수 패키지를 설치합니다.

pip install boto3 bedrock-agentcore[strands-agents] strands-agents strands-agents-tools

자격 증명이 구성되어 있는지 확인합니다.

aws sts get-caller-identity
작은 정보

AgentCore CLI v0.19.0 이상이 설치되어 있는 경우 2, 3, 5, 6단계에서 SDK의 대안으로 CLI 명령을 사용할 수 있습니다. 아래 각 단계는 두 옵션을 모두 보여줍니다.

1단계: 결제 공급자 자격 증명 획득(수동 흐름)

1단계와 2단계는 Coinbase(수동) 또는 Stripe(프라이비)와 같은 수동 자격 증명 흐름에 적용됩니다.

참고

Coinbase용 빠른 생성 사용(권장). 1단계와 2단계를 건너뛰고 3단계를 참조하세요. AgentCore 결제는 사용자가 Coinbase를 통해 권한을 부여한 후 Coinbase 자격 증명을 프로비저닝합니다. 사용자는 키를 얻거나 저장하지 않습니다.

AgentCore 결제는 Wallet 작업을 위해 외부 결제 공급자에 연결됩니다. 계속하기 전에 지원되는 공급자 중 하나의 자격 증명이 필요합니다.

예
Coinbase CDP
  1. Coinbase 개발자 플랫폼에 로그인하고 계정을 생성하거나 로그인합니다. 프로젝트를 선택합니다.

  2. API 키 대시보드로 이동하여 보안 암호 API 키 생성을 선택하고 API 키 ID 및 API 키 보안 암호를 기록해 둡니다. 프로젝트로 돌아갑니다.

  3. 제품 > 지갑 > 비관리형 지갑 > 보안에서 지갑 보안 암호 생성에서 새로 생성을 선택하고 지갑 보안 암호를 기록해 둡니다.

  4. 제품 > 지갑 > 비관리형 지갑 > 보안에서 위임 서명을 활성화합니다.

다음 단계에서 이러한 값을 사용합니다.

자격 증명 설명

API Key ID

CDP 프로젝트의 퍼블릭 식별자

API Key Secret

API 요청에 서명하기 위한 프라이빗 보안 암호

Wallet Secret

암호화 Wallet 작업에 대한 보안 암호(주소 추출, 트랜잭션 서명)

Privy
  1. dashboard.privy.io 전용 Privy 앱을 생성합니다. 다른 용도로 사용되는 앱을 재사용하지 마십시오.

  2. 앱 설정에서 앱 ID 및 앱 보안 암호를 복사합니다.

  3. Wallet Infrastructure > Authorization으로 이동하여 New Key를 선택하여 P-256 키 페어를 생성합니다.

다음 단계에서는 다음 네 가지 값을 사용합니다.

자격 증명 설명

App ID

권한 애플리케이션 식별자

App Secret

server-to-server 기본 인증의 보안 암호

Authorization ID

P-256 키 페어의 퍼블릭 키 식별자

Authorization Private Key

P-256 키 페어의 프라이빗 키

보안 모범 사례 및 자격 증명 교체를 포함한 전체 세부 정보는 사전 조건을 참조하세요.

2단계: AgentCore 자격 증명에 자격 증명 저장(수동 흐름)

결제 공급자 자격 증명을 PaymentCredentialProvider로 저장합니다. 이렇게 하면 애플리케이션 코드가 아닌 AWS Secrets Manager에 보안 암호가 보관됩니다. Coinbase 빠른 생성을 사용하는 경우이 단계를 건너뜁니다. AgentCore 결제는 3단계에서 자격 증명 공급자를 생성하고 저장합니다.

예
Coinbase CDP
import boto3 client = boto3.client("bedrock-agentcore-control", region_name="us-west-2") credential_provider = client.create_payment_credential_provider( name="my-coinbase-credentials", credentialProviderVendor="CoinbaseCDP", coinbaseCdpConfig={ "apiKeyId": "<YOUR_CDP_API_KEY_ID>", "apiKeySecret": "<YOUR_CDP_API_KEY_SECRET>", "walletSecret": "<YOUR_CDP_WALLET_SECRET>" } ) CREDENTIAL_PROVIDER_ARN = credential_provider["credentialProviderArn"] print(f"Credential provider created: {CREDENTIAL_PROVIDER_ARN}")
Privy
import boto3 client = boto3.client("bedrock-agentcore-control", region_name="us-west-2") credential_provider = client.create_payment_credential_provider( name="my-privy-credentials", credentialProviderVendor="StripePrivy", stripePrivyConfig={ "appId": "<YOUR_PRIVY_APP_ID>", "appSecret": "<YOUR_PRIVY_APP_SECRET>", "authorizationId": "<YOUR_PRIVY_AUTHORIZATION_ID>", "authorizationPrivateKey": "<YOUR_PRIVY_PRIVATE_KEY_BASE64>" } ) CREDENTIAL_PROVIDER_ARN = credential_provider["credentialProviderArn"] print(f"Credential provider created: {CREDENTIAL_PROVIDER_ARN}")

전체 요청 및 응답 스키마는 API 참조의 CreatePaymentCredentialProvider를 참조하세요.

CLI 대안: 자격 증명 저장

AgentCore CLI를 사용하면 결제 커넥터를 추가할 때 자격 증명 스토리지가 자동으로 수행됩니다(3단계). CLI 경로를 사용하려는 경우이 단계를 건너뜁니다.

3단계: Payment Manager 및 커넥터 생성

Payment Manager는 결제 작업을 조정하는 최상위 리소스입니다. Payment Connector는 관리자를 결제 공급자 자격 증명에 연결합니다. 이러한 리소스를 생성하기 전에 AgentCore 결제에 대한 IAM 역할에 설명된 대로 필요한 IAM 역할을 설정합니다.

먼저 Payment Manager를 생성합니다(모든 공급자에게 공통).

예
Console
  1. Amazon Bedrock AgentCore 콘솔을 엽니다.

  2. 탐색 창의 빌드에서 결제를 선택합니다.

  3. Payment Manager 생성을 선택하고 이름을 입력한 다음 권한에서 새 서비스 역할 생성 및 사용(또는 기존 역할 선택)을 선택합니다.

  4. 인바운드 인증에서 IAM 사용자 이름 사용을 선택합니다.

  5. Payment Manager 생성을 선택합니다. 아래 공급자 섹션에서 커넥터를 추가합니다.

JWT 권한 부여 및 사용자 지정 클레임을 포함한 전체 콘솔 연습은 Payment Manager 및 커넥터 생성을 참조하세요.

AgentCore CLI
agentcore add payment-manager \ --name my-payment-manager \ --auto-payment \ --default-spend-limit 5.00

아래 공급자 섹션에 커넥터를 추가한 다음를 실행합니다agentcore deploy.

AgentCore SDK
from bedrock_agentcore.payments.client import PaymentClient payment_client = PaymentClient(region_name="us-west-2") manager = payment_client.create_payment_manager( name="my-first-payment-manager", authorizer_type="AWS_IAM", role_arn="<YOUR_SERVICE_ROLE_ARN>", ) PAYMENT_MANAGER_ID = manager["paymentManagerId"]

와 PAYMENT_MANAGER_ID 함께 payment_client를 사용하여 아래 공급자 섹션에서 커넥터를 생성합니다.

AWS CLI
aws bedrock-agentcore-control create-payment-manager \ --name "my-first-payment-manager" \ --authorizer-type AWS_IAM \ --role-arn "<YOUR_SERVICE_ROLE_ARN>" \ --region us-west-2

관리자가에 도달할 때까지 기다린 READY다음 아래 공급자 섹션에서 커넥터를 생성합니다.

AWS SDK
import time manager = client.create_payment_manager( name="my-first-payment-manager", authorizerType="AWS_IAM", roleArn="<YOUR_SERVICE_ROLE_ARN>" ) PAYMENT_MANAGER_ID = manager["paymentManagerId"] while client.get_payment_manager(paymentManagerId=PAYMENT_MANAGER_ID)["status"] != "READY": time.sleep(5)

그런 다음 공급자를 위한 Payment Connector를 생성합니다. Coinbase 섹션(빠른 생성 또는 수동) 또는 Stripe(프라이비) 섹션을 선택합니다.

Coinbase - 빠른 생성(권장)

빠른 생성에서는 Coinbase 자격 증명을 가져오거나 저장하지 않습니다. 콘솔에서 Coinbase로 빠른 생성을 선택하여이 작업을 완료합니다. AWS CLI, AWS SDK, AgentCore CLI 또는 AgentCore SDK를 사용하여를 빈 자격 증명 목록provisionMode=QUICK_CREATE과 함께 전달합니다. 커넥터는에서 시작하여를 PENDING_AUTHENTICATION 반환합니다authorizationUrl. 브라우저authorizationUrl에서 반환된를 엽니다. Coinbase를 통해 권한을 부여한 후 AgentCore 결제는 자격 증명을 프로비저닝하고 커넥터를 로 이동합니다READY.

예
Console
  1. 결제 커넥터 섹션에서 아웃바운드 인증 추가 > 결제 인증 생성을 선택하고 결제 공급자에서 Coinbase를 선택합니다.

  2. 빠른 구성 생성을 선택한 다음 결제 인증 생성을 선택합니다.

  3. Coinbase 창이 열립니다. Coinbase CDP 계정에 로그인하거나 가입하고 권한을 부여(링크)합니다.

  4. AgentCore 결제는 Coinbase CDP API 키와 Wallet 보안 암호를 프로비저닝하고 저장합니다. 커넥터는에서 PENDING_AUTHENTICATION로 이동합니다READY.

AgentCore CLI
agentcore add payment-connector \ --manager my-payment-manager \ --name my-coinbase-connector \ --provider CoinbaseCDP \ --provision-mode QUICK_CREATE agentcore deploy

CLI는 Coinbase 권한 부여 흐름을 엽니다. 권한을 부여하면 서비스가 자격 증명을 프로비저닝하고 커넥터가에 도달합니다READY.

AgentCore SDK
connector = payment_client.create_payment_connector( payment_manager_id=PAYMENT_MANAGER_ID, name="my-coinbase-connector", connector_type="CoinbaseCDP", credential_provider_configurations=[], provision_mode="QUICK_CREATE", ) # Open connector["authorizationUrl"], authorize through Coinbase, # then poll get_payment_connector until status == "READY".
AWS CLI
aws bedrock-agentcore-control create-payment-connector \ --payment-manager-id "<PAYMENT_MANAGER_ID>" \ --name "my-coinbase-connector" \ --type CoinbaseCDP \ --credential-provider-configurations '[]' \ --provision-mode QUICK_CREATE \ --region us-west-2

응답에는 status: PENDING_AUTHENTICATION 및가 포함됩니다authorizationUrl. 브라우저에서 URL을 열고 Coinbase 권한 부여를 완료한 다음 커넥터가가 될 때까지 폴링합니다READY.

aws bedrock-agentcore-control get-payment-connector \ --payment-manager-id "<PAYMENT_MANAGER_ID>" \ --payment-connector-id "<PAYMENT_CONNECTOR_ID>" \ --region us-west-2
AWS SDK
connector = client.create_payment_connector( paymentManagerId=PAYMENT_MANAGER_ID, name="my-coinbase-connector", type="CoinbaseCDP", credentialProviderConfigurations=[], provisionMode="QUICK_CREATE", ) PAYMENT_CONNECTOR_ID = connector["paymentConnectorId"] print(connector["status"], connector.get("authorizationUrl")) # PENDING_AUTHENTICATION https://... # Open the authorizationUrl, authorize, then poll get_payment_connector until READY.

Coinbase - 수동

직접 생성한 Coinbase CDP 자격 증명을 사용합니다(1~2단계). 자격 증명 공급자를 생성한 다음 ARN을 참조하는 커넥터를 생성합니다. 콘솔 또는 AgentCore CLI 수동 연습은 Payment Manager 및 커넥터 생성을 참조하세요.

예
AgentCore CLI
agentcore add payment-connector \ --manager <manager-name> \ --name my-coinbase-connector \ --provider CoinbaseCDP \ --api-key-id <YOUR_API_KEY_ID> \ --api-key-secret <YOUR_API_KEY_SECRET> \ --wallet-secret <YOUR_WALLET_SECRET> agentcore deploy

CLI는 자격 증명을 AgentCore 자격 증명에 저장하고를 실행할 때 커넥터를 생성합니다agentcore deploy.

AgentCore SDK
connector = payment_client.create_payment_connector( payment_manager_id=PAYMENT_MANAGER_ID, name="my-coinbase-connector", connector_type="CoinbaseCDP", credential_provider_configurations=[ {"coinbaseCDP": {"credentialProviderArn": CREDENTIAL_PROVIDER_ARN}} ], )
AWS CLI
aws bedrock-agentcore-control create-payment-connector \ --payment-manager-id "<PAYMENT_MANAGER_ID>" \ --name "my-coinbase-connector" \ --type CoinbaseCDP \ --credential-provider-configurations '[{"coinbaseCDP":{"credentialProviderArn":"<CREDENTIAL_PROVIDER_ARN>"}}]' \ --region us-west-2
AWS SDK
connector = client.create_payment_connector( paymentManagerId=PAYMENT_MANAGER_ID, name="my-coinbase-connector", type="CoinbaseCDP", credentialProviderConfigurations=[{"coinbaseCDP": {"credentialProviderArn": CREDENTIAL_PROVIDER_ARN}}], )

Stripe(Privy) - 수동

Stripe(Privy)는 수동 흐름만 사용합니다. 권한 자격 증명(1~2단계)에서 자격 증명 공급자를 생성한 다음 해당 ARN을 참조하는 커넥터를 생성합니다. 콘솔 또는 AgentCore CLI 수동 연습은 Payment Manager 및 커넥터 생성을 참조하세요.

예
AgentCore CLI
agentcore add payment-connector \ --manager <manager-name> \ --name my-privy-connector \ --provider StripePrivy \ --app-id <YOUR_APP_ID> \ --app-secret <YOUR_APP_SECRET> \ --authorization-id <YOUR_AUTHORIZATION_ID> \ --authorization-private-key <YOUR_PRIVATE_KEY_BASE64> agentcore deploy

CLI는 자격 증명을 AgentCore 자격 증명에 저장하고를 실행할 때 커넥터를 생성합니다agentcore deploy.

AgentCore SDK
connector = payment_client.create_payment_connector( payment_manager_id=PAYMENT_MANAGER_ID, name="my-privy-connector", connector_type="StripePrivy", credential_provider_configurations=[ {"stripePrivy": {"credentialProviderArn": CREDENTIAL_PROVIDER_ARN}} ], )
AWS CLI
aws bedrock-agentcore-control create-payment-connector \ --payment-manager-id "<PAYMENT_MANAGER_ID>" \ --name "my-privy-connector" \ --type StripePrivy \ --credential-provider-configurations '[{"stripePrivy":{"credentialProviderArn":"<CREDENTIAL_PROVIDER_ARN>"}}]' \ --region us-west-2
AWS SDK
connector = client.create_payment_connector( paymentManagerId=PAYMENT_MANAGER_ID, name="my-privy-connector", type="StripePrivy", credentialProviderConfigurations=[{"stripePrivy": {"credentialProviderArn": CREDENTIAL_PROVIDER_ARN}}], )

서비스 역할이 없는 경우 생성 지침은 AgentCore 결제에 대한 IAM 역할을 참조하세요. 콘솔은 사용자를 대신하여 역할을 생성할 수도 있습니다. 전체 요청 및 응답 스키마는 Amazon Bedrock AgentCore 제어 API 참조의 CreatePaymentManager 및 CreatePaymentConnector를 참조하세요.

4단계: 결제 수단 생성

결제 수단은 에이전트가 사용자를 대신하여 가맹점에 결제하는 데 사용하는 임베디드 암호화 지갑입니다. 각 계측은 특정 블록체인 네트워크와 연결됩니다.

예
AgentCore SDK
from bedrock_agentcore.payments import PaymentManager manager = PaymentManager( payment_manager_arn=PAYMENT_MANAGER_ARN, region_name="us-west-2" ) instrument = manager.create_payment_instrument( user_id="test-user-123", payment_connector_id=PAYMENT_CONNECTOR_ID, payment_instrument_type="EMBEDDED_CRYPTO_WALLET", payment_instrument_details={ "embeddedCryptoWallet": { "network": "ETHEREUM", "linkedAccounts": [{"email": {"emailAddress": "your-email@example.com"}}] } }, ) INSTRUMENT_ID = instrument["paymentInstrumentId"] REDIRECT_URL = instrument["paymentInstrumentDetails"]["redirectUrl"] print(f"Instrument created: {INSTRUMENT_ID}") print(f"Fund the wallet at: {REDIRECT_URL}")
AWS CLI
aws bedrock-agentcore create-payment-instrument \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --payment-connector-id "$PAYMENT_CONNECTOR_ID" \ --user-id "test-user-123" \ --payment-instrument-type "EMBEDDED_CRYPTO_WALLET" \ --payment-instrument-details '{ "embeddedCryptoWallet": { "network": "ETHEREUM", "linkedAccounts": [{"email": {"emailAddress": "your-email@example.com"}}] } }' \ --client-token "$(uuidgen)" \ --region us-west-2

응답에서 paymentInstrumentId 및 redirectUrl를 저장합니다.

AWS SDK
import uuid dp_client = boto3.client("bedrock-agentcore", region_name="us-west-2", endpoint_url="https://bedrock-agentcore.us-west-2.amazonaws.com") instrument = dp_client.create_payment_instrument( userId="test-user-123", paymentManagerArn=PAYMENT_MANAGER_ARN, paymentConnectorId=PAYMENT_CONNECTOR_ID, paymentInstrumentType="EMBEDDED_CRYPTO_WALLET", paymentInstrumentDetails={ "embeddedCryptoWallet": { "network": "ETHEREUM", "linkedAccounts": [{"email": {"emailAddress": "your-email@example.com"}}] } }, clientToken=str(uuid.uuid4()), ) INSTRUMENT_ID = instrument["paymentInstrumentId"] REDIRECT_URL = instrument["paymentInstrumentDetails"]["redirectUrl"] print(f"Instrument created: {INSTRUMENT_ID}") print(f"Fund the wallet at: {REDIRECT_URL}")

전체 요청 및 응답 스키마는 API 참조의 CreatePaymentInstrument를 참조하세요.

Wallet에 자금 지원 및 권한 부여

에이전트가 트랜잭션하려면 먼저 최종 사용자가 Wallet에 자금을 지원하고 서명 권한을 부여해야 합니다. 브라우저에서 위의 응답redirectUrl에서를 엽니다. Wallet 허브에서 사용자는 다음을 수행할 수 있습니다.

  • 암호화 전송, 신용/직불 카드, Apple Pay, Google Pay 또는 ACH를 사용하여 지갑 보충

  • 에이전트를 대신하여 트랜잭션에 서명할 수 있는 권한을 에이전트에 부여합니다.

테스트 환경의 경우 testnet USDC로 Wallet에 자금을 지원합니다.

펀딩 후가 될 때까지 계측 상태를 폴링합니다ACTIVE.

예
AgentCore SDK
instrument = manager.get_payment_instrument( user_id="test-user-123", payment_instrument_id=INSTRUMENT_ID ) print(f"Status: {instrument['status']}")
AWS CLI
aws bedrock-agentcore get-payment-instrument \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --payment-instrument-id "$INSTRUMENT_ID" \ --region us-west-2
AWS SDK
while True: inst_status = dp_client.get_payment_instrument( paymentManagerArn=PAYMENT_MANAGER_ARN, paymentInstrumentId=INSTRUMENT_ID ) if inst_status["status"] == "ACTIVE": print("Instrument is active and funded.") break print(f"Instrument status: {inst_status['status']}... waiting for funding") time.sleep(10)

공급자별 자금 흐름에 대한 자세한 내용은 Wallet에 자금 지원을 참조하세요.

5단계: 결제 세션 생성

결제 세션은 선택적 지출 제한이 있는 시간 제한 컨텍스트입니다. 세션이 만료되거나 예산이 소진되면 에이전트는 해당 세션 내에서 추가 결제를 수행할 수 없습니다.

예
AgentCore CLI

CLI를 사용하는 경우 세션을 수동으로 생성할 필요가 없습니다. --auto-session 로 전달 agentcore invoke 및 CLI는 결제 관리자에 구성한 기본 지출 한도로 세션을 생성하거나 재사용합니다.

agentcore invoke \ --prompt "your prompt here" \ --payment-instrument-id <INSTRUMENT_ID> \ --auto-session \ --payment-user-id test-user-123

SDK를 통해 생성한 특정 세션을 사용하려면 --payment-session-id 대신를 전달합니다--auto-session.

AgentCore SDK
from bedrock_agentcore.payments import PaymentManager manager = PaymentManager( payment_manager_arn=PAYMENT_MANAGER_ARN, region_name="us-west-2" ) session = manager.create_payment_session( user_id="test-user-123", limits={"maxSpendAmount": {"value": "5.00", "currency": "USD"}}, expiry_time_in_minutes=60 ) SESSION_ID = session["paymentSessionId"] print(f"Session created: {SESSION_ID} (expires in 60 minutes, $5.00 limit)")
AWS CLI
aws bedrock-agentcore create-payment-session \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --user-id "test-user-123" \ --expiry-time-in-minutes 60 \ --limits '{"maxSpendAmount": {"value": "5.00", "currency": "USD"}}' \ --client-token "$(uuidgen)" \ --region us-west-2
AWS SDK
session = dp_client.create_payment_session( userId="test-user-123", paymentManagerArn=PAYMENT_MANAGER_ARN, expiryTimeInMinutes=60, limits={"maxSpendAmount": {"value": "5.00", "currency": "USD"}}, clientToken=str(uuid.uuid4()), ) SESSION_ID = session["paymentSessionId"] print(f"Session created: {SESSION_ID} (expires in 60 minutes, $5.00 limit)")

전체 요청 및 응답 스키마는 API 참조의 CreatePaymentSession을 참조하세요.

6단계: Strands 에이전트로 결제 처리

모든 리소스를 준비한 상태에서 x402 결제를 자동으로 처리하는 Strands 에이전트를 생성합니다. 에이전트가 유료 엔드포인트를 호출하고 HTTP 402 응답을 수신하면 결제 플러그인이 트랜잭션에 서명하고 요청을 재시도합니다.

예
AgentCore CLI

결제 컨텍스트를 사용하여 배포된 에이전트를 호출합니다. CLI는 런타임에 결제 수단과 세션을 에이전트에게 전달하고 에이전트의 x402 인터셉터는 결제를 자동으로 처리합니다.

agentcore invoke \ --prompt "Access the premium endpoint at https://example-x402-merchant.com/paid-api" \ --payment-instrument-id <INSTRUMENT_ID> \ --auto-session \ --payment-user-id test-user-123

세션을 자동으로 생성하는 대신 명시적 세션을 전달하려면:

agentcore invoke \ --prompt "Access the premium endpoint at https://example-x402-merchant.com/paid-api" \ --payment-instrument-id <INSTRUMENT_ID> \ --payment-session-id <SESSION_ID> \ --payment-user-id test-user-123
AgentCore SDK

HTTP 402 응답을 받을 때 PaymentManager 클래스를 사용하여 결제 헤더를 생성합니다.

import uuid from bedrock_agentcore.payments import PaymentManager manager = PaymentManager( payment_manager_arn=PAYMENT_MANAGER_ARN, region_name="us-west-2" ) # When you receive a 402 response, generate payment proof payment_required_request = { "statusCode": 402, "headers": payment_required["headers"], "body": payment_required["body"], } payment_proof_headers = manager.generate_payment_header( user_id="test-user-123", payment_instrument_id=INSTRUMENT_ID, payment_session_id=SESSION_ID, payment_required_request=payment_required_request, client_token=str(uuid.uuid4()), )

payment_proof_headers 에는 결제 증명 헤더가 포함되어 있습니다. 유료 엔드포인트에 대한 요청을 재시도할 때이 헤더를 포함합니다.

AWS CLI

x402 페이로드(지급 오케스트레이션을 직접 처리할 때 사용)를 사용하여 process-payment 직접를 호출합니다.

aws bedrock-agentcore process-payment \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --payment-session-id "$SESSION_ID" \ --payment-instrument-id "$INSTRUMENT_ID" \ --payment-type "CRYPTO_X402" \ --payment-input '{ "cryptoX402": { "version": "2", "payload": { "scheme": "exact", "network": "eip155:84532", "amount": "100000", "asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e", "payTo": "0xMERCHANT_ADDRESS", "maxTimeoutSeconds": 300, "extra": {"name": "USDC", "version": "2"} } } }' \ --client-token "$(uuidgen)" \ --region us-west-2

전체 요청 및 응답 스키마는 API 참조의 ProcessPayment를 참조하세요.

AWS SDK
from strands import Agent from strands_tools import http_request from bedrock_agentcore.payments.integrations.config import AgentCorePaymentsPluginConfig from bedrock_agentcore.payments.integrations.strands.plugin import AgentCorePaymentsPlugin config = AgentCorePaymentsPluginConfig( payment_manager_arn=PAYMENT_MANAGER_ARN, user_id="test-user-123", payment_instrument_id=INSTRUMENT_ID, payment_session_id=SESSION_ID, region="us-west-2", ) plugin = AgentCorePaymentsPlugin(config=config) agent = Agent( system_prompt="You are a helpful assistant that can access paid APIs.", tools=[http_request], plugins=[plugin], ) # The agent handles 402 responses automatically response = agent("Access the premium endpoint at https://example-x402-merchant.com/paid-api") print(response)

기본 API 호출의 전체 요청 및 응답 스키마는 API 참조의 ProcessPayment를 참조하세요.

결제 확인

에이전트가 결제를 처리한 후 세션을 확인하여 트랜잭션이 기록되었는지 확인합니다.

예
AgentCore SDK
session = manager.get_payment_session( user_id="test-user-123", payment_session_id=SESSION_ID ) print(f"Status: {session['status']}, Remaining: {session['remainingAmount']}")

계측 밸런스를 확인할 수도 있습니다.

balance = manager.get_payment_instrument_balance( user_id="test-user-123", payment_instrument_id=INSTRUMENT_ID ) print(f"Remaining balance: {balance['amount']} {balance['currency']}")
AWS CLI
aws bedrock-agentcore get-payment-session \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --payment-session-id "$SESSION_ID" \ --region us-west-2 aws bedrock-agentcore get-payment-instrument-balance \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --payment-instrument-id "$INSTRUMENT_ID" \ --region us-west-2
AWS SDK
session_status = dp_client.get_payment_session( paymentManagerArn=PAYMENT_MANAGER_ARN, paymentSessionId=SESSION_ID ) print(f"Session status: {session_status['status']}") print(f"Amount spent: {session_status.get('spentAmount', '0.00')} USD")

계측 밸런스를 확인할 수도 있습니다.

balance = dp_client.get_payment_instrument_balance( paymentManagerArn=PAYMENT_MANAGER_ARN, paymentInstrumentId=INSTRUMENT_ID ) print(f"Remaining balance: {balance['amount']} {balance['currency']}")

문제 해결

다음 문제는 스킬 기반 및 수동 설정 경로 모두에 적용됩니다.

문제 Solution

Payment Manager가 CREATING에 멈춤

최대 2분간 기다립니다. CREATE_FAILED로 이동하는 경우 서비스 역할 ARN 및 권한이 올바른지 확인합니다.

"PaymentInstrument가 활성화되지 않음"

최종 사용자는 에이전트가 트랜잭션하려면 먼저 리디렉션 URL을 통해 Wallet에 자금을 지원하고 서명 권한을 부여해야 합니다.

“세션 만료 또는 예산 초과”

만료 기간이 더 길거나 지출 한도가 더 높은 새 결제 세션을 생성합니다.

“CredentialProvider를 찾을 수 없음”

자격 증명 공급자 ARN이 2단계에서 생성한 것과 일치하는지 확인합니다. 리전이 모든 호출에서 일관된지 확인합니다.

ProcessPayment에서 FAILED 반환

Wallet에 거래 금액에 가스 요금을 더한 USDC 잔고가 충분한지 확인합니다.

정리

이 자습서 중에 생성한 리소스를 삭제합니다.

예
AgentCore CLI
agentcore remove payment-connector --manager my-payment-manager --name my-coinbase-connector --yes agentcore remove payment-manager --name my-payment-manager --yes agentcore deploy

remove 명령은 로컬 구성을 업데이트합니다. 후속 작업은 계정의 결제 인프라를 deploy 해제합니다.

AgentCore SDK
from bedrock_agentcore.payments.client import PaymentClient payment_client = PaymentClient(region_name="us-west-2") payment_client.delete_payment_manager( payment_manager_id="<paymentManagerId>" ) print("Payment Manager deleted.")
AWS CLI
aws bedrock-agentcore delete-payment-instrument \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --payment-instrument-id "$INSTRUMENT_ID" \ --region us-west-2 aws bedrock-agentcore-control delete-payment-connector \ --payment-manager-id "$PAYMENT_MANAGER_ID" \ --payment-connector-id "$PAYMENT_CONNECTOR_ID" \ --region us-west-2 aws bedrock-agentcore-control delete-payment-manager \ --payment-manager-id "$PAYMENT_MANAGER_ID" \ --region us-west-2
AWS SDK
# Delete payment instrument dp_client.delete_payment_instrument( paymentManagerArn=PAYMENT_MANAGER_ARN, paymentInstrumentId=INSTRUMENT_ID ) # Delete payment connector client.delete_payment_connector( paymentManagerArn=PAYMENT_MANAGER_ARN, paymentConnectorId=PAYMENT_CONNECTOR_ID ) # Delete payment manager client.delete_payment_manager( paymentManagerArn=PAYMENT_MANAGER_ARN ) print("All payment resources deleted.")

빌드한 내용

이 자습서를 통해 다음을 생성했습니다.

  • PaymentCredentialProvider - AgentCore 자격 증명에 저장된 결제 공급자 자격 증명

  • PaymentManager - 결제 작업을 조정하는 최상위 리소스

  • PaymentConnector - 관리자와 외부 결제 공급자 간의 통합

  • PaymentInstrument - 최종 사용자가 자금을 지원하고 승인한 임베디드 암호화 지갑

  • PaymentSession - 시간 제한, 예산 제한 결제 컨텍스트

  • Strands 에이전트 - x402 결제를 자동으로 처리하는 AI 에이전트

다음 단계