選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

使用 PL/Rust 以 Rust 語言撰寫 PostgreSQL 函數

焦點模式
使用 PL/Rust 以 Rust 語言撰寫 PostgreSQL 函數 - Amazon Relational Database Service

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

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

PL/Rust is a trusted Rust language extension for PostgreSQL. You can use it for stored procedures, functions, and other procedural code that's callable from SQL. The PL/Rust 語言擴充功能可在下列版本中使用:

  • RDS 適用於 PostgreSQL 16.1 和更新版本 16

  • RDS 適用於 PostgreSQL 15.2-R2 和更新的 15 版本

  • RDS 適用於 PostgreSQL 14.9 和更新版本 14

  • RDS 適用於 PostgreSQL 13.12 和更新版本 13

如需詳細資訊,請參閱開啟 PL/Rust GitHub。

設定 PL/Rust

若要在資料庫執行個體上安裝 plrust 延伸模組,請將 plrust 新增至與資料庫執行個體相關聯之資料庫參數群組中的 shared_preload_libraries 參數。安裝 plrust 延伸模組後,您可以建立函數。

若要修改 shared_preload_libraries 參數,您的資料庫執行個體必須與自訂參數群組相關聯。如需建立自訂資料庫參數群組的相關資訊,請參閱 的參數組 RDS

您可以使用 AWS Management Console 或 安裝 plrust 擴充功能 AWS CLI。

下列步驟假設您的資料庫執行個體與自訂資料庫參數群組相關聯。

shared_preload_libraries 參數中安裝 plrust 延伸模組

使用屬於 rds_superuser 群組 (角色) 成員的帳戶完成下列步驟。

  1. 登入 AWS Management Console ,並在 開啟 Amazon RDS主控台https://console.aws.amazon.com/rds/

  2. 在導覽窗格中,選擇 Databases (資料庫)。

  3. 選擇資料庫執行個體的名稱以顯示其詳細資訊。

  4. 開啟資料庫執行個體的組態索引標籤,然後尋找資料庫執行個體參數群組連結。

  5. 選擇連結以開啟與資料庫執行個體相關聯的自訂參數。

  6. Parameters (參數) 搜尋欄位中,輸入 shared_pre 以尋找 shared_preload_libraries 參數。

  7. 選擇 Edit parameters (編輯參數) 以存取屬性值。

  8. 欄位中,將 plrust 新增至清單。使用逗號區隔值清單中的項目。

  9. 重新啟動資料庫執行個體,以便您對 shared_preload_libraries 參數的變更生效。初始重新啟動可能需要額外的時間才能完成。

  10. 當執行個體可用時,請驗證 plrust 是否已初始化。使用 psql 連線至資料庫執行個體,然後執行下列命令。

    SHOW shared_preload_libraries;

    您的輸出應該類似以下內容:

    shared_preload_libraries -------------------------- rdsutils,plrust (1 row)

主控台

shared_preload_libraries 參數中安裝 plrust 延伸模組

使用屬於 rds_superuser 群組 (角色) 成員的帳戶完成下列步驟。

  1. 登入 AWS Management Console ,並在 開啟 Amazon RDS主控台https://console.aws.amazon.com/rds/

  2. 在導覽窗格中,選擇 Databases (資料庫)。

  3. 選擇資料庫執行個體的名稱以顯示其詳細資訊。

  4. 開啟資料庫執行個體的組態索引標籤,然後尋找資料庫執行個體參數群組連結。

  5. 選擇連結以開啟與資料庫執行個體相關聯的自訂參數。

  6. Parameters (參數) 搜尋欄位中,輸入 shared_pre 以尋找 shared_preload_libraries 參數。

  7. 選擇 Edit parameters (編輯參數) 以存取屬性值。

  8. 欄位中,將 plrust 新增至清單。使用逗號區隔值清單中的項目。

  9. 重新啟動資料庫執行個體,以便您對 shared_preload_libraries 參數的變更生效。初始重新啟動可能需要額外的時間才能完成。

  10. 當執行個體可用時,請驗證 plrust 是否已初始化。使用 psql 連線至資料庫執行個體,然後執行下列命令。

    SHOW shared_preload_libraries;

    您的輸出應該類似以下內容:

    shared_preload_libraries -------------------------- rdsutils,plrust (1 row)
在 shared_preload_libraries 參數中安裝 plrust 延伸模組

使用屬於 rds_superuser 群組 (角色) 成員的帳戶完成下列步驟。

  1. 使用 modify-db-parameter-group AWS CLI 命令將 plrust 新增至 shared_preload_libraries 參數。

    aws rds modify-db-parameter-group \ --db-parameter-group-name custom-param-group-name \ --parameters "ParameterName=shared_preload_libraries,ParameterValue=plrust,ApplyMethod=pending-reboot" \ --region aws-region
  2. 使用 reboot-db-instance AWS CLI 命令重新啟動資料庫執行個體並初始化 plrust 程式庫。初始重新啟動可能需要額外的時間才能完成。

    aws rds reboot-db-instance \ --db-instance-identifier your-instance \ --region aws-region
  3. 當執行個體可用時,您可以驗證 plrust 是否已初始化。使用 psql 連線至資料庫執行個體,然後執行下列命令。

    SHOW shared_preload_libraries;

    您的輸出應該類似以下內容:

    shared_preload_libraries -------------------------- rdsutils,plrust (1 row)

在 shared_preload_libraries 參數中安裝 plrust 延伸模組

使用屬於 rds_superuser 群組 (角色) 成員的帳戶完成下列步驟。

  1. 使用 modify-db-parameter-group AWS CLI 命令將 plrust 新增至 shared_preload_libraries 參數。

    aws rds modify-db-parameter-group \ --db-parameter-group-name custom-param-group-name \ --parameters "ParameterName=shared_preload_libraries,ParameterValue=plrust,ApplyMethod=pending-reboot" \ --region aws-region
  2. 使用 reboot-db-instance AWS CLI 命令重新啟動資料庫執行個體並初始化 plrust 程式庫。初始重新啟動可能需要額外的時間才能完成。

    aws rds reboot-db-instance \ --db-instance-identifier your-instance \ --region aws-region
  3. 當執行個體可用時,您可以驗證 plrust 是否已初始化。使用 psql 連線至資料庫執行個體,然後執行下列命令。

    SHOW shared_preload_libraries;

    您的輸出應該類似以下內容:

    shared_preload_libraries -------------------------- rdsutils,plrust (1 row)

使用 PL/Rust 建立函數

PL/Rust 會將函數編譯為動態程式庫、載入它,然後執行它。

以下 Rust 函數會從陣列中篩選出倍數。

postgres=> CREATE LANGUAGE plrust; CREATE EXTENSION
CREATE OR REPLACE FUNCTION filter_multiples(a BIGINT[], multiple BIGINT) RETURNS BIGINT[] IMMUTABLE STRICT LANGUAGE PLRUST AS $$ Ok(Some(a.into_iter().filter(|x| x.unwrap() % multiple != 0).collect())) $$; WITH gen_values AS ( SELECT ARRAY(SELECT * FROM generate_series(1,100)) as arr) SELECT filter_multiples(arr, 3) from gen_values;

使用套件搭配 PL/Rust

在 RDS PostgreSQL 16.3-R2 及更高版本、15.7-R2 及更高版本、14.12-R2 及更高版本 14,以及 13.15-R2 及更高版本 13 中,PL/Rust 支援其他條板箱:

  • url

  • regex

  • serde

  • serde_json

在 RDS PostgreSQL 版本 15.5-R2 和更新版本、14.10-R2 和更新版本 14,以及 13.13-R2 和更新版本 13 中,PL/Rust 支援兩個額外的條板箱:

  • croaring-rs

  • num-bigint

從 Amazon RDS for PostgreSQL 15.4、14.9 和 13.12 版開始,PL/Rust 支援下列條板箱:

  • aes

  • ctr

  • rand

這些套件僅支援預設功能。RDS 適用於 PostgreSQL 的新版本可能包含更新版本的條板箱,而且可能不再支援較舊版本的條板箱。

請遵循執行主要版本升級的最佳實務來進行測試,了解您的 PL/Rust 函數是否與新的主要版本相容。如需詳細資訊,請參閱《Amazon 使用者指南》中的將 Amazon 升級RDS到 Postgre 主要和次要版本的部落格最佳實務SQL,以及升級 Amazon 的 PostgreSQL 資料庫引擎RDSRDS。

使用相依性中提供了建立 PL/Rust 函數時使用相依性的範例。

PL/Rust 限制

根據預設,資料庫使用者無法使用 PL/Rust. To provide access to PL/Rust、以具有 rds_superuser 權限的使用者身分連線,以及執行下列命令:

postgres=> GRANT USAGE ON LANGUAGE PLRUST TO user;
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。