本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建付款会话
付款会话是一种有时限的付款环境,可以选择强制执行支出预算。当会话到期或达到预算时,该会话内的其他付款请求将被拒绝。有关完整的请求和响应架构,请参阅 API 参考CreatePaymentSession中的。
您可以使用 AWS 代理工具包中的 AgentCore 付款技能自动执行此页面上的步骤。该技能是 aws-agents 插件的一部分,它允许 AI 编码代理使用 agentcore CLI 创建您的支付管理器、连接器、凭证提供商、支付工具和会话,并为您的代理添加流程付款工具。有关详细信息,请参阅上的 GitHub快速入门和AWS 代理工具包。
例
- AgentCore SDK
-
from bedrock_agentcore.payments import PaymentManager
manager = PaymentManager(
payment_manager_arn=mgr["paymentManagerArn"],
region_name="us-west-2"
)
# Create payment session with payment limits
session = manager.create_payment_session(
user_id="test-user-123",
limits={"maxSpendAmount": {"value": "100.00", "currency": "USD"}},
expiry_time_in_minutes=60
)
- AWS CLI
-
aws bedrock-agentcore create-payment-session \
--payment-manager-arn "arn:aws:bedrock-agentcore:us-west-2:123456789012:payment-manager/my-manager" \
--user-id "test-user-123" \
--expiry-time-in-minutes 60 \
--limits '{"maxSpendAmount": {"value": "100.00", "currency": "USD"}}' \
--client-token "$(uuidgen)" \
--region us-west-2
- AWS SDK
-
import boto3
import uuid
dp_client = boto3.client("bedrock-agentcore", region_name="us-west-2",
endpoint_url="https://bedrock-agentcore.us-west-2.amazonaws.com")
# Create payment session with payment limits
session = dp_client.create_payment_session(
userId="test-user-123",
paymentManagerArn=PAYMENT_MANAGER_ARN,
expiryTimeInMinutes=120,
limits={"maxSpendAmount": {"value": "100.00", "currency": "USD"}},
clientToken=str(uuid.uuid4()),
)
如果您使用 AgentCore CLI (v0.19.0+),请传递--auto-sessionagentcore invoke到创建或重复使用付款管理器上配置的默认支出限额的会话。这样就无需为大多数工作流程手动创建会话。
获取付款会话
例
- AgentCore SDK
-
session = manager.get_payment_session(
user_id="test-user-123",
payment_session_id="payment-session-abc123"
)
print(f"Status: {session['status']}, Remaining: {session['remainingAmount']}")
- AWS CLI
-
aws bedrock-agentcore get-payment-session \
--payment-manager-arn "arn:aws:bedrock-agentcore:us-west-2:123456789012:payment-manager/my-manager" \
--payment-session-id "payment-session-abc123" \
--region us-west-2
- AWS SDK
-
response = dp_client.get_payment_session(
paymentManagerArn=PAYMENT_MANAGER_ARN,
paymentSessionId="payment-session-abc123"
)
print(f"Status: {response['status']}")
print(f"Spent: {response['spentAmount']} / {response['limits']['maxSpendAmount']['value']}")