Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Dasar-dasar
Prasyarat
Untuk menggunakan AWS SDK for Rust, Anda harus menginstal Rust and Cargo.
-
Instal rantai alat Rust: https://www.rust-lang. org/tools/install
-
Instal
cargo-component
alatdengan menjalankan perintah: cargo install cargo-component
Alat yang direkomendasikan:
Alat opsional berikut dapat diinstal di IDE Anda untuk membantu penyelesaian kode dan pemecahan masalah.
-
Ekstensi rust-analyzer, lihat Rust di Visual Studio Code
. -
Pengembang Amazon Q, lihat Menginstal ekstensi atau plugin Pengembang Amazon Q di IDE Anda.
Dasar-dasar karat
Berikut ini adalah beberapa dasar-dasar bahasa pemrograman Rust yang akan membantu untuk diketahui. Semua referensi untuk informasi lebih lanjut berasal dari The Rust Programming Language
-
Cargo.toml
adalah file konfigurasi proyek Rust standar, berisi dependensi dan beberapa metadata tentang proyek. File sumber Rust memiliki ekstensi.rs
file. Lihat Halo, Kargo!. -
Cargo.toml
Dapat disesuaikan dengan profil, lihat Menyesuaikan Build dengan Profil Rilis. Profil ini sama sekali tidak terkait dan independen dari AWS penggunaan profil dalam AWS config
file bersama. -
Cara umum untuk menambahkan dependensi pustaka ke proyek Anda dan file ini adalah dengan menggunakan.
cargo add
Lihatcargo-add
.
-
-
Karat memiliki struktur fungsi dasar seperti berikut ini.
let
Kata kunci mendeklarasikan variabel dan mungkin dipasangkan dengan penugasan (=). Jika Anda tidak menentukan tipe setelahnyalet
, maka kompiler akan menyimpulkan satu. Lihat Variabel dan Mutabilitas. fn main() { let w = "world"; println!("Hello {}!", w); }
-
Untuk mendeklarasikan variabel
x
dengan tipe eksplisitT
, Rust menggunakan sintaks.x: T
Lihat Tipe Data. -
struct X {}
mendefinisikan tipeX
baru. Metode diimplementasikan pada tipeX
struct khusus. Metode untuk tipeX
dideklarasikan dengan blok implementasi diawali dengan kata kunciimpl
. Di dalam blok implementasi,self
mengacu pada instance struct tempat metode dipanggil. Lihat Kata Kunciimpl
dan Sintaks Metode . -
Jika tanda seru (“!”) mengikuti apa yang tampaknya menjadi definisi fungsi atau panggilan fungsi, maka kode mendefinisikan atau memanggil makro. Lihat Makro.
-
Di Rust, kesalahan yang tidak dapat dipulihkan diwakili oleh makro.
panic!
Ketika sebuah program bertemu dengan programpanic!
itu akan berhenti berjalan, mencetak pesan kegagalan, melepas lelah, membersihkan tumpukan, dan berhenti. Lihat Kesalahan yang Tidak Dapat Dipulihkandengan. panic!
-
Rust tidak mendukung pewarisan fungsionalitas dari kelas dasar seperti bahasa pemrograman lainnya;
traits
adalah bagaimana Rust menyediakan metode yang berlebihan. Sifat mungkin dianggap secara konseptual mirip dengan antarmuka. Namun, sifat dan antarmuka sejati memiliki perbedaan dan sering digunakan secara berbeda dalam proses desain. Lihat Sifat: Mendefinisikan Perilaku Bersama. -
Polimorfisme mengacu pada kode yang mendukung fungsionalitas untuk beberapa tipe data tanpa harus menulis masing-masing. Karat mendukung polimorfisme melalui enum, sifat, dan obat generik. Lihat Warisan sebagai Sistem Tipe dan sebagai Berbagi Kode
.
-
-
Rust sangat eksplisit tentang memori. Smart pointer “adalah struktur data yang bertindak seperti pointer tetapi juga memiliki metadata dan kemampuan tambahan”. Lihat Smart Pointer
. -
Jenisnya
Cow
adalah penunjuk clone-on-write pintar yang membantu mentransfer kepemilikan memori ke penelepon bila diperlukan. LihatEnum std::borrow::Cow
. -
Tipenya
Arc
adalah penunjuk pintar Terhitung Referensi Atom yang menghitung instance yang dialokasikan. LihatStruct std::sync::Arc
.
-
-
SDK untuk Rust sering menggunakan pola pembangun untuk membuat tipe kompleks.
AWS SDK for Rust dasar-dasar peti
-
Pustaka SDK untuk Rust dipisahkan menjadi peti pustaka yang berbeda oleh masing-masing. Layanan AWS Peti ini tersedia di https://docs.rs/.
-
Layanan AWS peti mengikuti konvensi penamaan
aws-sdk-
, seperti[servicename]
aws-sdk-s3
danaws-sdk-dynamodb
. -
Peti inti utama untuk fungsionalitas SDK untuk Rust adalah.
aws-config
Ini termasuk dalam sebagian besar proyek karena menyediakan fungsionalitas untuk membaca konfigurasi dari lingkungan.-
Jangan bingung ini dengan Layanan AWS yang disebut AWS Config. Karena itu adalah layanan, ia mengikuti konvensi standar dan disebut
aws-sdk-config
.
-
Konfigurasi proyek untuk bekerja dengan Layanan AWS
-
Anda perlu menambahkan peti ke proyek Anda untuk setiap Layanan AWS yang Anda ingin aplikasi Anda gunakan.
-
Cara yang disarankan untuk menambahkan peti adalah menggunakan baris perintah di direktori proyek Anda dengan menjalankan
cargo add
, seperti[crateName]
cargo add aws-sdk-s3
.-
Ini akan menambahkan baris ke proyek Anda di
Cargo.toml
bawah[dependencies]
. -
Secara default, ini akan menambahkan versi terbaru peti ke proyek Anda.
-
-
Dalam file sumber Anda, gunakan
use
pernyataan untuk membawa item dari peti mereka ke dalam ruang lingkup. Lihat Menggunakan Paket Eksternaldi situs web Bahasa Pemrograman Rust. -
Nama peti sering diberi tanda hubung, tetapi tanda hubung diubah menjadi garis bawah saat benar-benar menggunakan peti. Misalnya,
aws-config
peti digunakan dalamuse
pernyataan kode sebagai:use aws_config
.
-
-
Konfigurasi adalah topik yang kompleks. Konfigurasi dapat terjadi secara langsung dalam kode, atau ditentukan secara eksternal dalam variabel lingkungan atau file konfigurasi. Untuk informasi selengkapnya, lihat Opsi konfigurasi.
-
Saat SDK memuat konfigurasi Anda, nilai yang tidak valid dicatat alih-alih menghentikan eksekusi karena sebagian besar pengaturan memiliki default yang wajar. Untuk mempelajari cara mengaktifkan logging, lihatAktifkan pencatatan AWS SDK for Rust kode.
-
Sebagian besar variabel lingkungan dan pengaturan file konfigurasi dimuat sekali ketika program Anda dimulai. Setiap pembaruan pada nilai tidak akan terlihat sampai Anda memulai ulang program Anda.
-
Runtime Tokio
-
Tokio adalah runtime asinkron untuk SDK untuk bahasa pemrograman Rust, ia menjalankan tugas.
async
Lihat tokio.rs dan docs.rs/tokio. -
SDK untuk Rust memerlukan runtime async. Kami menyarankan Anda menambahkan peti berikut ke proyek Anda:
$
cargo add tokio --features=full -
tokio::main
Atribut makro menciptakan titik masuk utama async ke program Anda. Untuk menggunakan makro ini, tambahkan ke baris sebelummain
metode Anda, seperti yang ditunjukkan pada berikut ini:#[tokio::main] async fn main() -> Result<(), Error> {