Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Fundamentos de la AWS SDK para Rust
Aprenda los fundamentos de la programación con: los AWS SDK para Rust aspectos básicos del lenguaje de programación Rust, información sobre el SDK para las cajas de Rust, la configuración del proyecto y el SDK para el uso del entorno de ejecución de Tokio por parte de Rust.
Requisitos previos
Para poder utilizar el AWS SDK para Rust, debes tener Rust y Cargo instalados.
-
Instale la cadena de herramientas de Rust: https://www.rust-lang. org/tools/install
-
Instale la herramienta
cargo-componentejecutando el comando: cargo install cargo-component
Herramientas recomendadas:
Las siguientes herramientas opcionales se pueden instalar en el IDE para facilitar la finalización del código y la solución de problemas.
-
La extensión rust-analyzer, consulte Rust en Visual Studio Code
. -
Amazon Q Developer, consulte Instalación de la extensión o el complemento de Amazon Q Developer en el IDE.
Aspectos fundamentales de Rust
A continuación se presentan algunos conceptos básicos del lenguaje de programación Rust que sería útil conocer. Todas las referencias para obtener más información proceden de El lenguaje programación Rust
-
Cargo.tomles el archivo de configuración estándar de proyectos de Rust, que contiene las dependencias y algunos metadatos sobre el proyecto. Los archivos fuente de Rust tienen la extensión de archivo.rs. Consulte ¡Hola, Cargo!-
El archivo
Cargo.tomlse puede personalizar con perfiles; consulte Personalización de compilaciones con perfiles de versión. Estos perfiles no tienen ninguna relación y son independientes AWS del uso que se haga de los perfiles en el AWS configarchivo compartido. -
Una forma habitual de agregar dependencias de biblioteca al proyecto y a este archivo es usar
cargo add. Consultecargo-add.
-
-
Rust tiene una estructura de funciones básica como la que se muestra a continuación. La palabra clave
letdeclara una variable y puede combinarse con una asignación (=). Si no especifica ningún tipo después delet, el compilador inferirá uno. Consulte Variables y mutabilidad.fn main() { let w = "world"; println!("Hello {}!", w); } -
Para declarar una variable
xcon un tipo explícitoT, Rust usa la sintaxisx: T. Consulte Tipos de datos. -
struct X {}define el nuevo tipoX. Los métodos se implementan en el tipo de estructura personalizadaX. Los métodos para el tipoXse declaran con bloques de implementación prefijados con la palabra claveimpl. Dentro del bloque de implementación,selfse refiere a la instancia de la estructura en la que se llamó el método. Consulte Palabra claveimply Sintaxis de métodos . -
Si es un signo de exclamación (“!”) sigue a lo que parece ser una definición de función o una llamada a una función, entonces el código define o llama a una macro. Consulte Macros
. -
En Rust, los errores irrecuperables se representan mediante la macro
panic!Cuando un programa encuentra unpanic!, deja de ejecutarse, imprime un mensaje de error, se deshace, limpia la pila y se cierra. Consulte Errores irrecuperables conpanic! -
Rust no admite la herencia de funciones de clases base como otros lenguajes de programación; los
traitsson la forma en que Rust proporciona la sobrecarga de métodos. Los indicadores pueden considerarse conceptualmente similares a una interfaz. Sin embargo, los indicadores y las interfaces verdaderas tienen diferencias y, a menudo, se utilizan de forma diferente en el proceso de diseño. Consulte Indicadores: definición del comportamiento compartido. -
El polimorfismo se refiere al código que admite la funcionalidad de varios tipos de datos sin tener que escribir cada uno de ellos de manera individual. Rust admite el polimorfismo mediante enumeraciones, indicadores y genéricos. Consulte La herencia como sistema de tipos y como código compartido
.
-
-
Rust es muy explícito en cuanto a la memoria. Los indicadores inteligentes “son estructuras de datos que actúan como un indicador, pero también tienen metadatos y capacidades adicionales”. Consulte Indicadores inteligentes
. -
El tipo
Cowes un puntero clone-on-write inteligente que ayuda a transferir la propiedad de la memoria a la persona que llama cuando es necesario. ConsulteEnum std::borrow::Cow. -
El tipo
Arces un indicador inteligente con recuento de referencias atómico que cuenta las instancias asignadas. ConsulteStruct std::sync::Arc.
-
-
El SDK de Rust utiliza con frecuencia el patrón generador para crear tipos complejos.
AWS SDK para Rust crear los fundamentos
-
La caja principal de la funcionalidad del SDK para Rust es
aws-config. Se incluye en la mayoría de los proyectos porque proporciona la funcionalidad de leer la configuración del entorno.$cargo add aws-config-
No confundas esto con lo Servicio de AWS que se llama AWS Config. Como se trata de un servicio, sigue la convención estándar de Servicio de AWS cajas y se llama
aws-sdk-config.
-
-
El SDK para la biblioteca Rust está separado en diferentes cajas de biblioteca por separado Servicio de AWS. Estas cajas están disponibles en https://docs.rs/
. -
Servicio de AWS Las cajas siguen la convención de nomenclatura de
aws-sdk-, como[servicename]aws-sdk-s3yaws-sdk-dynamodb.
Configuración del proyecto para trabajar con Servicios de AWS
-
Tendrás que añadir una caja a tu proyecto para cada una de las Servicio de AWS que quieras que utilice tu aplicación.
-
La forma recomendada de agregar una caja es mediante la línea de comandos en el directorio del proyecto, ejecutando
cargo add, por ejemplo[crateName]cargo add aws-sdk-s3.-
Se agregará una línea al archivo
Cargo.tomldel proyecto en[dependencies]. -
De forma predeterminada, se agregará la última versión de la caja al proyecto.
-
-
En el archivo fuente, utilice la instrucción
usepara incluir elementos de sus cajas al ámbito. Consulte Uso de paquetes externosen el sitio web del lenguaje de programación Rust. -
Los nombres de las cajas suelen estar separados con guiones, pero estos se convierten en guiones bajos cuando se utiliza la caja. Por ejemplo, la caja
aws-configse usa en la instrucciónusedel código como:use aws_config.
-
-
La configuración es un tema complejo. La configuración puede realizarse directamente en el código o especificarse externamente en variables de entorno o archivos de configuración. Para obtener más información, consulte Configuración externa de clientes de servicio de AWS SDK para Rust.
-
Cuando el SDK carga la configuración, se registran los valores no válidos en lugar de detener la ejecución, ya que la mayoría de las configuraciones tienen valores predeterminados razonables. Para obtener información sobre el registro, consulte Configuración y uso del registro en AWS SDK de Rust.
-
La mayoría de las variables de entorno y los ajustes del archivo de configuración se cargan una vez al iniciarse el programa. Las actualizaciones de los valores no se verán hasta que reinicie el programa.
-
Tiempo de ejecución de Tokio
-
Tokio es un tiempo de ejecución asíncrono para el lenguaje de programación del SDK para Rust, que ejecuta las tareas
async. Consulte tokio.rsy docs.rs/tokio . -
El SDK para Rust requiere un tiempo de ejecución asíncrono. Se recomienda agregar la siguiente caja a los proyectos:
$cargo add tokio --features=full -
La macro de atributos
tokio::maincrea un punto de entrada principal asíncrono al programa. Para poder utilizar esta macro, agréguela a la línea anterior al métodomain, como se muestra a continuación:#[tokio::main] async fn main() -> Result<(), Error> {