

# API 入门
<a name="getting-started-api"></a>

**注意**  
本文档适用于 Amazon Nova 版本 1。Amazon Nova 2 现已推出新的模型和增强功能。有关如何开始使用 Amazon Nova 2 的信息，请参阅[开始使用 API](https://docs.aws.amazon.com/nova/latest/nova2-userguide/getting-started-api.html)。

要开始使用 API，您需要获取凭证来授予编程访问权限。如果以下部分与您有关，请展开并按照说明操作。否则，请继续完成剩余部分。

## 我是 AWS 新用户
<a name="new-to-aws"></a>

如果您还没有，AWS 账户请完成以下步骤来创建一个。

**注册 AWS 账户**

1. 打开 [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup)。

1. 按照屏幕上的说明操作。

   在注册时，将接到电话或收到短信，要求使用电话键盘输入一个验证码。

   当您注册 AWS 账户 时，系统将会创建一个。*AWS 账户根用户*根用户有权访问该账户中的所有 AWS 服务 和资源。作为最佳安全实践，请为用户分配管理访问权限，并且只使用根用户来执行[需要根用户访问权限的任务](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

注册过程完成后，AWS 会向您发送一封确认电子邮件。在任何时候，您都可以通过转至 [https://aws.amazon.com/](https://aws.amazon.com/) 并选择**我的账户**来查看当前的账户活动并管理您的账户。

**保护您的 AWS 账户根用户**

1.  选择**根用户**并输入您的 AWS 账户 电子邮件地址，以账户拥有者身份登录。[AWS 管理控制台](https://console.aws.amazon.com/)在下一页上，输入您的密码。

   要获取使用根用户登录方面的帮助，请参阅《AWS 登录 用户指南》**中的 [Signing in as the root user](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)。

1. 为您的根用户启用多重身份验证（MFA）。

   有关说明，请参阅《IAM 用户指南》**中的[为 AWS 账户 根用户启用虚拟 MFA 设备（控制台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html)。

## 我需要安装 AWS CLI 或 AWS SDK
<a name="api-cli-sdk-install"></a>

要安装 AWS CLI，请按照 [Install or update to the latest version of the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) 中的步骤操作。

要安装 AWS SDK，请在[用于在 AWS 上进行构建的工具](https://aws.amazon.com/developer/tools/)中选择与您要使用的编程语言相对应的选项卡。AWS 软件开发工具包（SDK）适用于许多常用编程语言。每个软件开发工具包都提供 API、代码示例和文档，使开发人员能够更轻松地以其首选语言构建应用程序。SDK 会自动为您执行有用的任务，例如：
+ 对服务请求进行加密签名
+ 重试请求
+ 处理错误响应

## 获取凭证来授予编程访问权限
<a name="grant-program-access"></a>

如果用户需要在 AWS 管理控制台之外与 AWS 交互，则需要编程式访问权限。授予编程式访问权限的方法取决于访问 AWS 的用户类型。

要向用户授予编程式访问权限，请选择以下选项之一。


****  

| 哪个主体需要编程访问权限？ | 目标 | 方式 | 
| --- | --- | --- | 
| IAM 用户 | 限制对 AWS CLI、AWS SDK 或 AWS API 的编程请求进行签名的长期凭证的有效时长。 |  按照您希望使用的界面的说明进行操作。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/nova/latest/userguide/getting-started-api.html)  | 
| IAM 角色 | 使用临时凭证签署向 AWS CLI、AWS SDK 或 AWS API 发出的编程请求。 | 按照《IAM 用户指南》中[将临时凭证用于 AWS 资源](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)中的说明进行操作。 | 
|  人力身份 （在 IAM Identity Center 中管理的用户）  | 使用临时凭证签署向 AWS CLI、AWS SDK 或 AWS API 发出的编程请求。 |  按照您希望使用的界面的说明进行操作。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/nova/latest/userguide/getting-started-api.html)  | 

## 如何为 IAM 用户创建访问密钥
<a name="create-user-time-bound"></a>

如果决定对 IAM 用户使用访问密钥，AWS 建议通过包含限制性内联策略来为 IAM 用户设置过期时间。

**重要**  
请注意以下警告：  
**不得**使用账户的根凭证来访问 AWS 资源。这些凭证可提供不受限的账户访问且难以撤销。
**不得**在应用程序文件中按字面输入访问密钥或凭证信息。如果您这样做，则在将项目上传到公共存储库或在其他情况下，会有意外暴露凭证的风险。
**不得**在项目区域中放入包含凭证的文件。
安全管理您的访问密钥。请不要向未经授权方提供访问密钥，即便是为了帮助[找到您的账户标识符](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html)也不行。如果您这样做，可能会向某人提供对您的账户的永久访问权限。
请注意，共享 AWS 凭证文件中存储的所有凭证都以明文形式存储。

有关更多详细信息，请参阅《AWS 一般参考》中的 [Best practices for managing AWS access keys](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html)。

**创建 IAM 用户**

1. 在 AWS 管理控制台主页上，选择 IAM 服务或导航到 IAM 控制台，网址为 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中，选择**用户**，然后选择**创建用户**。

1. 按照 IAM 控制台中的指南，设置一个（无权访问 AWS 管理控制台的）编程用户，并且不授予其任何权限。

**将用户访问权限限制在有限的时间段内**

您创建的任何 IAM 用户访问密钥都属于长期凭证。为了确保这些凭证在处理不当的情况下会过期，您可以创建内联策略来指定密钥失效的日期，从而限制这些凭证的使用时间。

1. 打开刚创建的 IAM 用户。在**权限**选项卡中，选择**添加权限**，然后选择**创建内联策略**。

1. 在 JSON 编辑器中，指定以下权限。要使用此策略，请将示例策略中的 `aws:CurrentTime` 时间戳值替换为自己的结束日期。
**注意**  
IAM 建议将访问密钥限制在 12 小时以内。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Deny",
         "Action": "*",
         "Resource": "*",
         "Condition": {
           "DateGreaterThan": {
             "aws:CurrentTime": "2024-01-01T00:00:00Z"
           }
         }
       }
     ]
   }
   ```

------

**创建访问密钥**

1. 在**用户详细信息**页面上，选择**安全凭证**选项卡。在**访问密钥**部分，选择**创建访问密钥**。

1. 表明您计划将这些访问密钥用作**其他**，然后选择**创建访问密钥**。

1. 在 **Retrieve access keys**（检索访问密钥）页面上，选择 **Show**（显示）来显示用户的秘密访问密钥的值。您可以复制凭证或下载 .csv 文件。

**重要**  
如果不再需要此 IAM 用户，建议将其移除并遵循 [AWS 安全最佳实践](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials)。建议要求人类用户在访问 AWS 时通过 [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) 使用临时凭证。

## 将 Amazon Bedrock 权限附加到用户或角色
<a name="br-permissions"></a>

在设置好编程访问凭证后，您需要为用户或 IAM 角色配置权限，以便其访问一组与 Amazon Bedrock 相关的操作。要设置这些权限，请执行以下操作：

1. 在 AWS 管理控制台主页上，选择 IAM 服务或导航到 IAM 控制台，网址为 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 选择**用户**或**角色**，然后选择您的用户或角色。

1. 在**权限**选项卡中，选择**添加权限**，然后选择**添加 AWS 托管式策略**。选择 [AmazonBedrockFullAccess]() AWS 托管式策略。

1. 要允许用户或角色订阅模型，请选择**创建内联策略**，然后在 JSON 编辑器中指定以下权限：

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
             "Sid": "MarketplaceBedrock",
             "Effect": "Allow",
             "Action": [
                 "aws-marketplace:ViewSubscriptions",
                 "aws-marketplace:Unsubscribe",
                 "aws-marketplace:Subscribe"
             ],
             "Resource": "*"
         }
     ]
   }
   ```

------

## 请求访问 Amazon Nova 模型
<a name="request-access-nova"></a>

按照 [Request access to an Amazon Bedrock foundation model](https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started.html#getting-started-model-access) 中的步骤，通过 Amazon Bedrock 控制台请求访问 Amazon Nova 模型。

## 使用 Amazon Nova 模型生成对文本提示的回复
<a name="try-nova"></a>

满足所有先决条件后，选择一个选项卡，测试如何通过 [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) 请求以及使用选项卡中指定的方法向 Amazon Nova 模型发出模型调用请求：

------
#### [ AWS CLI ]

要安装 AWS CLI，请按照 [Install or update to the latest version of the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) 中的步骤操作。按照[获取凭证来授予编程访问权限](#grant-program-access)中的步骤，验证是否已设置凭证来使用 Boto3。

要使用 AWS CLI 在 Amazon Nova Lite 中生成对文本提示的回复，请在终端中运行以下命令：

```
aws bedrock-runtime converse \
    --model-id us.amazon.nova-lite-v1:0 \
    --messages '[{"role": "user", "content": [{"text": "Write a short poem"}]}]'
```

------
#### [ Python (Boto3) ]

要安装 Boto3，请按照 Boto3 文档中 [Quickstart](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) 中的步骤操作。按照[获取凭证来授予编程访问权限](#grant-program-access)中的步骤，验证是否已设置凭证来使用 Boto3。

要创建 Amazon Bedrock 运行时客户端并使用 Python SDK（Boto3）在 Amazon Nova Lite 中生成对文本提示的回复，请运行以下 Python 脚本：

```
import boto3
import json

client = boto3.client(service_name="bedrock-runtime")

messages = [
    {"role": "user", "content": [{"text": "Write a short poem"}]},
]

model_response = client.converse(
    modelId="us.amazon.nova-lite-v1:0", 
    messages=messages
)

print("\n[Full Response]")
print(json.dumps(model_response, indent=2))

print("\n[Response Content Text]")
print(model_response["output"]["message"]["content"][0]["text"])
```

------
#### [ LangChain ]

要安装适用于 AWS 的 LangChain，请按照 LangChain 文档中 [AWS](https://python.langchain.com/docs/integrations/providers/aws/) 部分的步骤操作。按照[获取凭证来授予编程访问权限](#grant-program-access)中的步骤，验证是否已设置凭证来使用 Boto3。

要使用 LangChain 在 Amazon Nova Lite 中生成对文本提示的回复，请运行以下脚本：

```
from langchain_aws import ChatBedrockConverse

llm = ChatBedrockConverse(model="us.amazon.nova-lite-v1:0")

messages = [
    ("user", "Write a short poem")
]

llm.invoke(messages)
```

------

熟悉 Amazon Nova 之后，即可继续执行更高级的任务：

1. 尝试向模型输入提示，描述一张图像或一个视频。有关更多信息，请参阅 [Amazon Nova 的多模态支持](modalities.md)。

1. 尝试使用 Amazon Nova Canvas 生成图像。有关更多信息，请参阅 [使用 Amazon Nova Canvas 生成图像](image-generation.md)。

1. 尝试使用 Amazon Nova Reel 生成视频。有关更多信息，请参阅 [使用 Amazon Nova Reel 生成视频](video-generation.md)。

1. 向模型发送一份文档，并询问有关文档内容的信息。有关更多信息，请参阅 [文档理解](modalities-document.md)。

1. 为模型提供工具，再通过输入提示来发出请求，查看模型对工具的使用情况。有关更多信息，请参阅 [Amazon Nova 的“工具使用”（函数调用）](tool-use.md)。