Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Fondamenti per AWS SDK for Rust
Scopri i fondamenti della programmazione con AWS SDK for Rust, ad esempio: i fondamenti del linguaggio di programmazione Rust, informazioni su SDK for Rust crates, configurazione del progetto e SDK per l'uso del runtime Tokio da parte di Rust.
Prerequisiti
Per poter utilizzare, devi avere installato Rust e AWS SDK for Rust Cargo.
- 
                Installa la toolchain Rust: https://www.rust-lang. org/tools/install 
- 
                Installa lo cargo-componentstrumentoeseguendo il comando: cargo install cargo-component
Strumenti consigliati:
I seguenti strumenti opzionali possono essere installati nell'IDE per facilitare il completamento del codice e la risoluzione dei problemi.
- 
                    L'estensione rust-analyzer, vedi Rust in Visual Studio Code. 
- 
                    Amazon Q Developer, consulta Installazione dell'estensione o del plug-in Amazon Q Developer nel tuo IDE. 
Nozioni di base su Rust
Di seguito sono riportate alcune nozioni di base del linguaggio di programmazione Rust che sarebbe utile conoscere. Tutti i riferimenti per ulteriori informazioni provengono da The Rust Programming Language
- 
        Cargo.tomlè il file di configurazione standard del progetto Rust, contiene le dipendenze e alcuni metadati sul progetto. I file sorgente di Rust hanno un'.rsestensione di file. Vedi Hello, Cargo!. - 
            Cargo.tomlPossono essere personalizzati con profili, vedere Personalizzazione delle build con profili di rilascio. Questi profili sono completamente indipendenti e indipendenti dall' AWS uso dei profili all'interno del file condiviso. AWS config
- 
            Un modo comune per aggiungere dipendenze di libreria al progetto e a questo file consiste nell'utilizzare. cargo addConsultarecargo-add. 
 
- 
            
- 
        Rust ha una struttura funzionale di base come la seguente. La letparola chiave dichiara una variabile e potrebbe essere abbinata a assignment (=). Se non si specifica un tipo dopolet, il compilatore ne dedurrà uno. Vedi Variabili e mutabilità.fn main() { let w = "world"; println!("Hello {}!", w); }
- 
        Per dichiarare una variabile xcon un tipo esplicitoT, Rust utilizza la sintassi.x: TVedi Tipi di dati.
- 
        struct X {}definisce il nuovo tipoX. I metodi sono implementati sul tipo di struttura personalizzatoX. I metodi per il tipoXsono dichiarati con blocchi di implementazione preceduti da una parola chiaveimpl. All'interno del blocco di implementazione,selfsi riferisce all'istanza della struttura su cui è stato chiamato il metodo. Vedi Sintassiimpldelle parole chiavee del metodo . 
- 
        Se è un punto esclamativo («!») segue quella che sembra essere una definizione di funzione o una chiamata di funzione, quindi il codice definisce o chiama una macro. Vedi Macro . 
- 
        In Rust, gli errori irreversibili sono rappresentati dalla macro. panic!Quando un programma incontra una, smette di funzionare, stampa un messaggio di errore, si riavvia, puliscepanic!lo stack e si chiude. Vedi Errori irrecuperabili con.panic!
- 
        Rust non supporta l'ereditarietà delle funzionalità dalle classi base come fanno gli altri linguaggi di programmazione; è così che Rust fornisce il traitssovraccarico dei metodi. Si potrebbe pensare che i tratti siano concettualmente simili a un'interfaccia. Tuttavia, le caratteristiche e le interfacce reali presentano differenze e vengono spesso utilizzate in modo diverso nel processo di progettazione. Vedi Tratti: definizione del comportamento condiviso. - 
            Il polimorfismo si riferisce al codice che supporta funzionalità per più tipi di dati senza doverli scrivere singolarmente. Rust supporta il polimorfismo tramite enumerazioni, tratti e generici. Vedi Ereditarietà come sistema di tipi e come condivisione di codice . 
 
- 
            
- 
        Rust è molto esplicito sulla memoria. I puntatori intelligenti «sono strutture di dati che agiscono come un puntatore ma hanno anche metadati e funzionalità aggiuntivi». Vedi Smart Pointers. - 
            Il tipo Cowè un puntatore clone-on-write intelligente che aiuta a trasferire la proprietà della memoria al chiamante quando necessario. ConsultareEnum std::borrow::Cow. 
- 
            Il tipo Arcè un puntatore intelligente Atomically Reference Counted che conta le istanze allocate. ConsultareStruct std::sync::Arc. 
 
- 
            
- 
        L'SDK per Rust utilizza spesso il pattern builder per costruire tipi complessi. 
AWS SDK for Rust crea i fondamenti
- 
        Il core crate principale per la funzionalità SDK for Rust è. aws-configÈ inclusa nella maggior parte dei progetti perché fornisce funzionalità per leggere la configurazione dall'ambiente.$cargo add aws-config- 
            Non confondetelo con Servizio AWS quello che viene chiamato AWS Config. Poiché si tratta di un servizio, segue la convenzione standard delle Servizio AWS casse e viene chiamato. aws-sdk-config
 
- 
            
- 
        La libreria SDK for Rust è suddivisa in diverse casse di libreria ciascuna. Servizio AWSQueste casse sono disponibili all'indirizzo https://docs.rs/. 
- 
        Servizio AWS le casse seguono la convenzione di denominazione di aws-sdk-, ad esempio e.[servicename]aws-sdk-s3aws-sdk-dynamodb
Configurazione del progetto con cui lavorare Servizi AWS
- 
        Dovrai aggiungere una cassa al tuo progetto per ogni cassa Servizio AWS che desideri venga utilizzata dall'applicazione. 
- 
        Il modo consigliato per aggiungere una cassa è utilizzare la riga di comando nella directory del progetto eseguendo cargo add, ad esempio.[crateName]cargo add aws-sdk-s3- 
            Questo aggiungerà una riga nella parte Cargo.tomlinferiore[dependencies]del progetto.
- 
            Per impostazione predefinita, questo aggiungerà la versione più recente della cassa al tuo progetto. 
 
- 
            
- 
        Nel file sorgente, utilizzate l' useistruzione per inserire gli oggetti contenuti nelle loro casse nel campo Scope. Vedi Utilizzo di pacchetti esternisul sito Web del linguaggio di programmazione Rust. - 
            I nomi delle casse sono spesso sillabati, ma i trattini vengono convertiti in caratteri di sottolineatura quando si utilizza effettivamente la cassa. Ad esempio, la aws-configcassa viene utilizzata nell'istruzione del codice come:.useuse aws_config
 
- 
            
- 
        La configurazione è un argomento complesso. La configurazione può avvenire direttamente nel codice o essere specificata esternamente in variabili di ambiente o file di configurazione. Per ulteriori informazioni, consulta Configurazione esterna dei client AWS SDK for Rust di servizio. - 
            Quando l'SDK carica la configurazione, vengono registrati i valori non validi anziché interrompere l'esecuzione, poiché la maggior parte delle impostazioni ha valori predefiniti ragionevoli. Per informazioni su come attivare la registrazione, consulta. Configurazione e utilizzo della registrazione nell' AWS SDK per Rust 
- 
            La maggior parte delle variabili di ambiente e delle impostazioni dei file di configurazione vengono caricate una volta all'avvio del programma. Eventuali aggiornamenti ai valori non verranno visualizzati fino al riavvio del programma. 
 
- 
            
Runtime Tokio
- 
        Tokio è un runtime asincrono per il linguaggio di programmazione SDK for Rust, esegue le attività. asyncVedi tokio.rse docs.rs/tokio. 
- 
        L'SDK per Rust richiede un runtime asincrono. Ti consigliamo di aggiungere la seguente cassa ai tuoi progetti: $cargo add tokio --features=full
- 
        La macro di tokio::mainattributi crea un punto di ingresso principale asincrono al programma. Per utilizzare questa macro, aggiungetela alla riga che precede ilmainmetodo, come illustrato di seguito:#[tokio::main] async fn main() -> Result<(), Error> {