

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# RDS for Oracle 的 Amazon Bedrock 整合
<a name="Oracle.BedrockIntegration"></a>

RDS for Oracle 支援與 Amazon Bedrock 整合，可讓您使用 SQL 直接從 Oracle 資料庫叫用基礎模型。透過此整合，您可以使用生成式 AI 功能，例如文字產生、摘要和內嵌產生，而無需將資料移出資料庫。

**注意**  
僅 Oracle Database 26ai 支援 Amazon Bedrock 整合。

**Topics**
+ [Bedrock 整合的需求](#Oracle.BedrockIntegration.requirements)
+ [設定 Bedrock 整合](#Oracle.BedrockIntegration.Configuring)
+ [使用 Bedrock 整合](#Oracle.BedrockIntegration.Using)

## Bedrock 整合的需求
<a name="Oracle.BedrockIntegration.requirements"></a>

若要使用 Amazon Bedrock 與 RDS for Oracle 整合，請確保符合下列要求。

### 資料庫需求
<a name="Oracle.BedrockIntegration.requirements.Database"></a>
+ 您的資料庫執行個體必須執行 Oracle Database 26ai (26.0.0.0) 或更新版本。
+ 叫用 Bedrock 模型的資料庫使用者必須具有 `DBMS_CLOUD`和 `DBMS_CLOUD_AI`套件`EXECUTE`的權限。
+ 資料庫必須設定存取控制項目 (ACEs)，以允許傳出 HTTPS 存取 Bedrock 執行時間端點。如需詳細資訊，請參閱[設定 Bedrock 整合](#Oracle.BedrockIntegration.Configuring)。

### AWS 登入資料需求
<a name="Oracle.BedrockIntegration.requirements.Credentials"></a>
+ 您必須擁有具有許可的 IAM 使用者或角色，才能叫用所需的 Amazon Bedrock 基礎模型 ( `bedrock:InvokeModel`和選用`bedrock:InvokeModelWithResponseStream`動作）。
+ 您必須使用 Amazon Bedrock 主控台請求並取得所需基礎模型的存取權。如需詳細資訊，請參閱《[Amazon Bedrock 使用者指南》中的存取 Amazon Bedrock 基礎模型](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html)。 **
+ 您必須擁有 AWS 存取金鑰 （存取金鑰 ID 和私密存取金鑰），您的 IAM 身分才能使用 存放在資料庫中`DBMS_CLOUD.CREATE_CREDENTIAL`。

### Amazon VPC 網路需求
<a name="Oracle.BedrockIntegration.requirements.Network"></a>

RDS for Oracle 資料庫執行個體必須能夠到達連接埠 443 (HTTPS`bedrock-runtime.{{region}}.amazonaws.com`) 上的 Amazon Bedrock 執行期端點 ()。您可以透過下列其中一種方式達成此目的。

**選項 1：Amazon VPC 介面端點 (AWS PrivateLink) – 建議**  
為 Amazon Bedrock 執行時間服務建立 Amazon VPC 介面端點。這可保持 AWS 網路內所有流量的私密性，且不需要網際網路存取。

1. 使用服務名稱建立 Amazon VPC 介面端點：`com.amazonaws.{{region}}.bedrock-runtime`。

1. 將端點放在與 Amazon RDS 資料庫執行個體相同的 Amazon VPC 和子網路 （或連接到資料庫執行個體子網路的子網路）。

1. 將安全群組連接至允許從資料庫執行個體安全群組傳入 HTTPS （連接埠 443) 的端點。

1. 為端點啟用私有 DNS，讓標準主機名稱`bedrock-runtime.{{region}}.amazonaws.com`解析為私有端點 IP 地址。

1. 確保資料庫執行個體的安全群組允許傳出 HTTPS （連接埠 443) 到端點的安全群組 （或端點的私有 IP 地址）。

**選項 2：NAT 閘道 （網際網路路由）**  
如果您不使用 Amazon VPC 端點，資料庫執行個體的子網路必須具有透過 NAT 閘道連至網際網路的路由。

1. 確定資料庫執行個體位於具有 NAT 閘道路由的私有子網路中。

1. NAT 閘道必須位於具有網際網路閘道路由的公有子網路中。

1. 資料庫執行個體的安全群組必須允許傳出 HTTPS （連接埠 443) 到 `bedrock-runtime.{{region}}.amazonaws.com`。

1. 資料庫執行個體子網路上的任何 Amazon VPC 網路 ACLs 必須允許傳出 TCP 443 和對應的暫時性傳入傳回流量 (TCP 連接埠 1024–65535)。

下表摘要說明網路路徑。


**Bedrock 整合的網路路徑**  

| 方法 | 需要網際網路存取 | 流量路徑 | 
| --- | --- | --- | 
| Amazon VPC 端點 (AWS PrivateLink) | 否 | 資料庫執行個體 → Amazon VPC 端點 → Bedrock 服務 | 
| NAT 閘道 | 是 （僅限傳出） | 資料庫執行個體 → NAT 閘道 → 網際網路閘道 → Bedrock 服務 | 

## 設定 Bedrock 整合
<a name="Oracle.BedrockIntegration.Configuring"></a>

若要設定 RDS for Oracle 資料庫執行個體的 Amazon Bedrock 整合，請完成下列步驟。

### 步驟 1：設定 Amazon VPC 網路連線
<a name="Oracle.BedrockIntegration.Configuring.Step1"></a>

使用中所述的其中一個網路選項，確保您的資料庫執行個體可以到達 Bedrock 執行時間端點[Amazon VPC 網路需求](#Oracle.BedrockIntegration.requirements.Network)。若要在組態後驗證連線能力，您可以在後續步驟中從資料庫進行測試。

### 步驟 2：取得具有 Bedrock 許可的 AWS 登入資料
<a name="Oracle.BedrockIntegration.Configuring.Step2"></a>

使用下列政策建立 IAM 使用者或角色 （或將其連接至現有身分）。

```
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "BedrockInvoke",
      "Effect": "Allow",
      "Action": [
        "bedrock:InvokeModel",
        "bedrock:InvokeModelWithResponseStream"
      ],
      "Resource": [
        "arn:aws:bedrock:{{region}}::foundation-model/*"
      ]
    }
  ]
}
```

若要限制存取特定模型，請將萬用字元取代為特定模型 ARNs，例如：

```
"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-sonnet-4-5-20250929-v1:0"
```

從 IAM 主控台產生此 IAM 使用者的存取金鑰。您需要存取金鑰 ID 和私密存取金鑰，才能進行下一個步驟。

### 步驟 3：授予資料庫權限
<a name="Oracle.BedrockIntegration.Configuring.Step3"></a>

以 DBA 身分連線，並將必要的權限授予應用程式使用者。

```
-- Grant EXECUTE on DBMS_CLOUD and DBMS_CLOUD_AI
GRANT EXECUTE ON DBMS_CLOUD TO {{db_user}};
GRANT EXECUTE ON DBMS_CLOUD_AI TO {{db_user}};
```

### 步驟 4：授予 Bedrock 端點的網路 ACL 存取權
<a name="Oracle.BedrockIntegration.Configuring.Step4"></a>

授予資料庫使用者網路 ACL 對 Bedrock 執行時間端點的存取權。

```
BEGIN
  DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
    host => 'bedrock-runtime.{{region}}.amazonaws.com',
    ace  => xs$ace_type(
              privilege_list => xs$name_list('http'),
              principal_name => '{{db_user}}',
              principal_type => xs_acl.ptype_db)
  );
END;
/
```

將{{區域}}取代為您的 AWS 區域 （例如，`us-east-1`)，並將 {{db\_user}} 取代為將調用 Bedrock 模型的 Oracle 資料庫使用者。

### 步驟 5：在資料庫中建立登入資料
<a name="Oracle.BedrockIntegration.Configuring.Step5"></a>

以應用程式使用者身分連線，並使用 建立登入資料物件`DBMS_CLOUD`。

```
BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'AWS_BEDROCK_CRED',
    username        => '{{your_AWS_access_key_id}}',
    password        => '{{your_AWS_secret_access_key}}'
  );
END;
/
```

### 步驟 6：建立 Bedrock 的 AI 設定檔
<a name="Oracle.BedrockIntegration.Configuring.Step6"></a>

使用 來建立 AI 設定檔`DBMS_CLOUD_AI`，以參考您的登入資料並指定 AWS 做為提供者。

```
BEGIN
  DBMS_CLOUD_AI.CREATE_PROFILE(
    profile_name => 'BEDROCK_PROFILE',
    attributes   => '{"provider": "aws",
      "credential_name": "AWS_BEDROCK_CRED",
      "model": "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
      "object_list": [{"owner": "{{schema}}", "name": "{{table1}}"},
                      {"owner": "{{schema}}", "name": "{{table2}}"}]
    }'
  );
END;
/
```

若要在 以外的區域中使用 Amazon Bedrock 執行時間端點`us-east-1`，請在設定檔`target_language`屬性 JSON 中包含 `region`和 屬性。將 `region`設定為 Amazon Bedrock 執行時間端點所在的區域 （例如 `us-west-2`)。

如果您設定 `region`，您還必須包含 `target_language`或 `source_language`。您必須同時設定兩個屬性，即使是不使用轉譯的動作，例如 `chat`或 `runsql`。

此`target_language`值只會影響 `translate`動作。如果您只包含`target_language`沒有 的 `region`，則設定檔會繼續使用 `bedrock-runtime.us-east-1.amazonaws.com`。

**注意**  
由於 Oracle `region` `DBMS_CLOUD_AI`套件的已知限制，您必須`target_language`同時設定 。

下列範例會建立使用 `us-west-2`區域的設定檔。

```
BEGIN
  DBMS_CLOUD_AI.CREATE_PROFILE(
    profile_name => 'BEDROCK_PROFILE_USW2',
    attributes   => '{"provider": "aws",
      "credential_name": "AWS_BEDROCK_CRED",
      "region": "us-west-2",
      "target_language": "en",
      "model": "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
      "object_list": [{"owner": "{{schema}}", "name": "{{table1}}"},
                      {"owner": "{{schema}}", "name": "{{table2}}"}]
    }'
  );
END;
/
```

您必須明確指定 `model` 屬性。未為 AWS 提供者提供預設模型。如需模型 IDs，請參閱下列參考：
+ 基礎模型：[Amazon Bedrock 基礎模型 IDs](https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids.html)。
+ 跨區域推論描述檔：[跨區域推論支援的 區域和模型](https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference-support.html)。
+ 佈建輸送量：指定佈建輸送量的 ARN。
+ 自訂模型：購買佈建輸送量，然後指定產生的佈建模型的 ARN。

### 驗證您的 Bedrock 整合
<a name="Oracle.BedrockIntegration.Configuring.Verifying"></a>

使用簡單的提示測試連線。

```
EXEC DBMS_CLOUD_AI.SET_PROFILE('BEDROCK_PROFILE');
SELECT AI chat what is Amazon RDS;
```

如果回應成功傳回，則會正確設定 Bedrock 整合。

## 使用 Bedrock 整合
<a name="Oracle.BedrockIntegration.Using"></a>

設定整合之後，您可以使用 SQL 搭配 Select AI 從 Oracle 資料庫叫用 Amazon Bedrock 基礎模型。

如需 Amazon Bedrock 的完整使用範例，包括`SELECT AI`動作 (`runsql`、`chat`、、 `showsql` `narrate`和 `explainsql`)、 `DBMS_CLOUD_AI.GENERATE`函數、多轉對話和擷取擴增產生 (RAG)，請參閱下列 Oracle 文件：
+ [範例：使用 選取 AI AWS](https://docs.oracle.com/en/cloud/paas/autonomous-database/serverless/adbsb/select-ai-examples.html#GUID-A2B7D8BB-5CBF-49D4-B12C-8AB54BA7D0A2)
+ [管理 AI 設定檔 – 使用 AWS](https://docs.oracle.com/en/cloud/paas/autonomous-database/serverless/adbsb/select-ai-manage-profiles.html#GUID-B71D2617-F079-4982-A979-6C1C8C58B577)
+ [DBMS\_CLOUD\_AI 套件參考](https://docs.oracle.com/en/database/oracle/oracle-database/26/arpls/dbms_cloud_ai1.html)