View a markdown version of this page

의 기본 사항 AWS SDK for Rust - AWS SDK for Rust

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

의 기본 사항 AWS SDK for Rust

Rust 프로그래밍 언어 기본 사항 AWS SDK for Rust, SDK for Rust 상자 정보, 프로젝트 구성, SDK for Rust의 Tokio 런타임 사용 등를 사용한 프로그래밍의 기본 사항을 알아봅니다.

사전 조건

를 사용하려면 Rust 및 Cargo가 설치되어 있어야 AWS SDK for Rust합니다.

코드 완성 및 문제 해결을 지원하기 위해 IDE에 다음과 같은 선택적 도구를 설치할 수 있습니다.

Rust 기본 사항

다음은 알아두면 도움이 될 Rust 프로그래밍 언어의 몇 가지 기본 사항입니다. 모든 자세한 내용은 Rust 프로그래밍 언어를 참조합니다.

  • Cargo.toml은 표준 Rust 프로젝트 구성 파일이며, 프로젝트에 대한 종속성과 일부 메타데이터를 포함합니다. Rust 소스 파일에는 .rs 파일 확장자가 있습니다. Hello, Cargo!를 참조하세요.

    • Cargo.toml은 프로필을 사용하여 사용자 지정할 수 있습니다. 릴리스 프로파일을 사용하여 빌드 사용자 지정을 참조하세요. 이러한 프로필은 공유 AWS config 파일 내에서 AWS의 프로필 사용과 완전히 관련이 없고 독립적입니다.

    • 프로젝트와 이 파일에 라이브러리 종속성을 추가하는 일반적인 방법은 cargo add를 사용하는 것입니다. cargo-add 섹션을 참조하세요.

  • Rust에는 다음과 같은 기본 함수 구조가 있습니다. let 키워드는 변수를 선언하며 할당(=)과 페어링될 수 있습니다. let 이후에 유형을 지정하지 않으면 컴파일러가 유형을 유추합니다. 변수 및 변경 가능성을 참조하세요.

    fn main() { let w = "world"; println!("Hello {}!", w); }
  • Rust는 명시적 유형 x의 변수 T를 선언하기 위해 x: T 구문을 사용합니다. 데이터 유형을 참조하세요.

  • struct X {}는 새 유형 X를 정의합니다. 메서드는 사용자 지정 구조 유형 X에 구현됩니다. X 유형에 대한 메서드는 impl 키워드 접두사가 붙은 구현 블록으로 선언됩니다. 구현 블록 내에서 self는 메서드가 직접 호출된 구문의 인스턴스를 나타냅니다. 키워드 impl메서드 구문을 참조하세요.

  • 느낌표(‘!’)가 함수 정의 또는 함수 직접 호출로 보이는 값을 따르는 경우 코드는 매크로를 정의하거나 직접 호출합니다. 매크로를 참조하세요.

  • Rust에서 복구할 수 없는 오류는 panic! 매크로로 표시됩니다. 프로그램이 실행을 중지할 panic!을 발견하면 실패 메시지를 인쇄하고, 해제하고, 스택을 정리하고, 종료합니다. panic!으로 복구할 수 없는 오류를 참조하세요.

  • Rust는 다른 프로그래밍 언어와 마찬가지로 기본 클래스의 기능 상속을 지원하지 않습니다. traits는 Rust가 메서드의 오버로딩을 제공하는 방법입니다. 특성은 개념적으로 인터페이스와 유사한 것으로 생각할 수 있습니다. 그러나 특성과 실제 인터페이스는 차이가 있으며 설계 프로세스에서 다르게 사용되는 경우가 많습니다. 특성: 공유 동작 정의를 참조하세요.

    • 다형성은 각 데이터 형식을 개별적으로 작성할 필요 없이 여러 데이터 유형에 대한 기능을 지원하는 코드를 말합니다. Rust는 열거형, 특성 및 제너릭을 통해 다형성을 지원합니다. 유형 시스템 및 코드 공유로서의 상속을 참조하세요.

  • Rust는 메모리에 대해 매우 명시적입니다. 스마트 포인터는 ‘포인터처럼 작동하지만 추가 메타데이터와 기능도 있는 데이터 구조’입니다. 스마트 포인터를 참조하세요.

    • Cow 유형은 필요할 때 호출자에게 메모리 소유권을 전송하는 데 도움이 되는 clone-on-write 스마트 포인터입니다. Enum std::borrow::Cow을(를) 참조하세요.

    • Arc 유형은 할당된 인스턴스 수를 계산하는 원자적 참조 카운트 스마트 포인터입니다. Struct std::sync::Arc을(를) 참조하세요.

  • SDK for Rust는 복잡한 유형을 구성하기 위해 빌더 패턴을 자주 사용합니다.

AWS SDK for Rust crate 기본 사항

  • SDK for Rust 기능의 기본 코어 크레이트는 aws-config입니다. 이는 환경에서 구성을 읽을 수 있는 기능을 제공하기 때문에 대부분의 프로젝트에 포함됩니다.

    $ cargo add aws-config
    • 이를 호출 AWS 서비스 된와 혼동하지 마십시오 AWS Config. 이는 서비스이므로 AWS 서비스 상자의 표준 규칙을 따르며 라고 합니다aws-sdk-config.

  • SDK for Rust 라이브러리는 각각 다른 라이브러리 상자로 구분됩니다 AWS 서비스. 이러한 크레이트는 https://docs.rs/에서 확인할 수 있습니다.

  • AWS 서비스 상자는 aws-sdk-s3aws-sdk-[servicename]와 같은의 명명 규칙을 따릅니다aws-sdk-dynamodb.

작업을 위한 프로젝트 구성 AWS 서비스

  • 애플리케이션에서 사용할 각에 대해 프로젝트에 크레이트를 추가해야 AWS 서비스 합니다.

  • 크레이트를 추가하는 권장 방법은 cargo add aws-sdk-s3 등의 cargo add [crateName]를 실행하여 프로젝트 디렉터리의 명령줄을 사용하는 것입니다.

    • 그러면 [dependencies]에서 프로젝트의 Cargo.toml에 줄이 추가됩니다.

    • 기본적으로 최신 버전의 크레이트가 프로젝트에 추가됩니다.

  • 소스 파일에서 use 문을 사용하여 크레이트의 항목을 범위로 가져옵니다. Rust 프로그래밍 언어 웹 사이트에서 외부 패키지 사용을 참조하세요.

    • 크레이트 이름은 종종 하이픈으로 표시되지만 실제로 크레이트 사용 시 하이픈이 밑줄로 변환됩니다. 예를 들어, aws-config 크레이트는 코드 use 문에서 use aws_config로 사용됩니다.

  • 구성은 복잡한 주제입니다. 구성은 코드에서 직접 수행하거나 환경 변수 또는 구성 파일에서 외부에서 지정할 수 있습니다. 자세한 내용은 외부에서 AWS SDK for Rust 서비스 클라이언트 구성 단원을 참조하십시오.

    • SDK가 구성을 로드하면 대부분의 설정에 적절한 기본값이 있으므로 실행을 중지하는 대신 잘못된 값이 기록됩니다. 로깅을 켜는 방법은 AWS SDK for Rust에서 로깅 구성 및 사용 섹션을 참조하세요.

    • 대부분의 환경 변수 및 구성 파일 설정은 프로그램이 시작될 때 한 번 로드됩니다. 프로그램을 다시 시작할 때까지 값에 대한 업데이트가 표시되지 않습니다.

Tokio 런타임

  • Tokio는 SDK for Rust 프로그래밍 언어의 비동기 런타임으로, async 작업을 실행합니다. tokio.rsdocs.rs/tokio를 참조하세요.

  • SDK for Rust에는 비동기 런타임이 필요합니다. 프로젝트에 다음 크레이트를 추가하는 것이 좋습니다.

    $ cargo add tokio --features=full
  • tokio::main 속성 매크로는 프로그램에 대한 비동기 기본 진입점을 생성합니다. 이 매크로를 사용하려면 다음과 같이 main 메서드 앞의 줄에 매크로를 추가합니다.

    #[tokio::main] async fn main() -> Result<(), Error> {