Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utilisation de PL/Rust pour écrire des fonctions PostgreSQL dans le langage Rust
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/Rustl'extension de langue est disponible dans les versions suivantes :
-
RDS pour PostgreSQL 17.1 et versions ultérieures 17
-
RDS pour PostgreSQL 16.1 et versions ultérieures 16
-
RDS for PostgreSQL 15.2-R2 et versions 15 ultérieures
-
RDS for PostgreSQL 14.9 et versions 14 ultérieures
-
RDS for PostgreSQL 13.12 et versions 13 ultérieures
Pour plus d'informations, voir PL/Rust
Rubriques
Configuration de PL/Rust
Pour installer l'extension plrust sur votre instance de base de données, ajoutez plrust au paramètre shared_preload_libraries
dans le groupe de paramètres de la base de données associé à votre instance de base de données. Une fois l'extension plrust installée, vous pouvez créer des fonctions.
Pour modifier le paramètre shared_preload_libraries
, votre instance de base de données doit être associée à un groupe de paramètres personnalisé. Pour obtenir des informations sur la création d'un groupe de paramètres de base de données personnalisé, consultez Groupes de paramètres pour (Amazon RDS).
Vous pouvez installer l'extension plrust en utilisant le AWS Management Console ou le AWS CLI.
Les étapes suivantes supposent que votre instance de base de données est associée à un groupe de paramètres de cluster de bases de données personnalisé.
Installer l'extension plrust dans le paramètre shared_preload_libraries
Effectuez les étapes suivantes à l'aide d'un compte membre du groupe (rôle) rds_superuser
.
Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à https://console.aws.amazon.com/rds/
l'adresse. -
Dans le panneau de navigation, choisissez Databases (Bases de données).
-
Choisissez le nom de votre instance de base de données pour afficher ses détails.
-
Ouvrez l'onglet Configuration de votre instance de base de données et recherchez le lien du groupe de paramètres de l'instance de base de données.
-
Cliquez sur le lien pour ouvrir les paramètres personnalisés associés à votre instance de base de données.
-
Dans le champ de recherche Parameters (Paramètres), tapez
shared_pre
pour trouver le paramètreshared_preload_libraries
. -
Choisissez Edit parameters (Modifier les paramètres) pour accéder aux valeurs des propriétés.
-
Ajoutez plrust à la liste dans le champ Valeurs. Utilisez une virgule pour séparer les éléments de la liste de valeurs.
-
Redémarrez l'instance de base de données pour que la modification apportée au paramètre
shared_preload_libraries
prenne effet. Le redémarrage initial peut nécessiter plus de temps. -
Lorsque l'instance est disponible, vérifiez que plrust a été initialisé. Utilisez
psql
pour vous connecter à l'instance de base de données, puis exécutez la commande suivante.SHOW shared_preload_libraries;
Votre sortie doit ressembler à ce qui suit :
shared_preload_libraries -------------------------- rdsutils,plrust (1 row)
Installez l'extension plrust dans le paramètre shared_preload_libraries
Effectuez les étapes suivantes à l'aide d'un compte membre du groupe (rôle) rds_superuser
.
-
Utilisez la modify-db-parameter-group AWS CLI commande pour ajouter plrust au
shared_preload_libraries
paramètre.aws rds modify-db-parameter-group \ --db-parameter-group-name
custom-param-group-name
\ --parameters "ParameterName=shared_preload_libraries,ParameterValue=plrust,ApplyMethod=pending-reboot" \ --regionaws-region
-
Utilisez la reboot-db-instance AWS CLI commande pour redémarrer l'instance de base de données et initialiser la bibliothèque plrust. Le redémarrage initial peut nécessiter plus de temps.
aws rds reboot-db-instance \ --db-instance-identifier
your-instance
\ --regionaws-region
-
Lorsque l'instance est disponible, vous pouvez vérifier que plrust a été initialisé. Utilisez
psql
pour vous connecter à l'instance de base de données, puis exécutez la commande suivante.SHOW shared_preload_libraries;
Votre sortie doit ressembler à ce qui suit :
shared_preload_libraries -------------------------- rdsutils,plrust (1 row)
Création de fonctions avec PL/Rust
PL/Rust compile la fonction sous forme de bibliothèque dynamique, la charger et l'exécute.
La fonction Rust suivante filtre les multiples d'un tableau.
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;
Utilisation de caisses avec PL/Rust
Dans RDS pour PostgreSQL versions 16.3-R2 et supérieures, 15.7-R2 et versions supérieures 15, 14.12-R2 et versions supérieures 14 versions, et 13.15-R2 et versions supérieures 13 versions, PL/Rust prend en charge des caisses supplémentaires :
-
url
-
regex
-
serde
-
serde_json
Dans RDS pour PostgreSQL versions 15.5-R2 et supérieures, 14.10-R2 et versions 14 supérieures, et 13.13-R2 et versions 13 supérieures, PL/Rust prend en charge deux caisses supplémentaires :
-
croaring-rs
-
num-bigint
À partir des versions 15.4, 14.9 et 13.12 d'Amazon RDS pour PostgreSQL, PL/Rust prend en charge les caisses suivantes :
-
aes
-
ctr
-
rand
Seules les fonctionnalités par défaut sont prises en charge pour ces caisses. Les nouvelles versions de RDS for PostgreSQL peuvent contenir des versions mises à jour de caisses, et les anciennes versions de caisses peuvent ne plus être prises en charge.
Suivez les bonnes pratiques pour effectuer une mise à niveau de version majeure afin de tester si vos fonctions PL/Rust sont compatibles avec la nouvelle version majeure. Pour plus d'informations, consultez le blog Bonnes pratiques pour la mise à niveau d'Amazon RDS vers les versions majeures et mineures de PostgreSQL
Des exemples d'utilisation des dépendances lors de la création d'une fonction PL/Rust sont disponibles dans Utiliser les dépendances
Limites de PL/Rust
Par défaut, les utilisateurs de la base de données ne peuvent pas utiliserPL/Rust. To provide access to PL/Rust, se connecter en tant qu'utilisateur avec le privilège rds_superuser et exécuter la commande suivante :
postgres=> GRANT USAGE ON LANGUAGE PLRUST TO
user
;