기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
는 요청 제한 시간 및 중지된 데이터 스트림을 관리하기 위한 몇 가지 설정을 AWS SDK for Rust 제공합니다. 이를 통해 네트워크에서 예기치 않은 지연 및 장애가 발생할 때 애플리케이션이 최적으로 작동할 수 있습니다.
API 제한 시간
요청 시도에 오랜 시간이 걸리거나 완전히 실패할 수 있는 일시적인 문제가 있는 경우 애플리케이션이 빠르게 실패하고 최적으로 작동할 수 있도록 제한 시간을 검토하고 설정하는 것이 중요합니다. 실패한 요청은 SDK에서 자동으로 재시도할 수 있습니다. 개별 시도와 전체 요청 모두에 대해 제한 시간을 설정하는 것이 좋습니다.
SDK for Rust는 요청에 대한 연결을 설정하기 위한 기본 제한 시간을 제공합니다. SDK에는 요청 시도 또는 전체 요청에 대한 응답을 수신하기 위한 기본 최대 대기 시간이 설정되어 있지 않습니다. 다음 제한 시간 옵션을 사용할 수 있습니다.
파라미터 | 기본값 | 설명 |
---|---|---|
연결 제한 시간 | 3.1초 | 포기하기 전에 연결을 설정하기 위해 대기하는 최대 시간입니다. |
작업 제한 시간 | 없음 | 모든 재시도를 포함하여 SDK for Rust로부터 응답을 받기 전에 대기하는 최대 시간입니다. |
작업 시도 제한 시간 | 없음 | 단일 HTTP 시도를 기다리는 최대 시간이며, 그 이후에는 API 호출을 재시도할 수 있습니다. |
읽기 제한 시간 | 없음 | 요청이 시작된 시점부터 응답의 첫 번째 바이트를 읽기 위해 대기하는 최대 시간입니다. |
다음 예제에서는 사용자 지정 제한 시간 값이 있는 Amazon S3 클라이언트의 구성을 보여줍니다.
let config = aws_config::defaults(BehaviorVersion::latest())
.timeout_config(
TimeoutConfig::builder()
.operation_timeout(Duration::from_secs(5))
.operation_attempt_timeout(Duration::from_millis(1500))
.build()
)
.load()
.await;
let s3 = aws_sdk_s3::Client::new(&config);
작업 및 시도 제한 시간을 함께 사용하는 경우 재시도의 모든 시도에 소요된 총 시간에 대한 하드 제한을 설정합니다. 또한 느린 요청에 대해 빠르게 실패하도록 개별 HTTP 요청을 설정합니다.
모든 작업에 대해 서비스 클라이언트에서 이러한 제한 시간 값을 설정하는 대신 단일 요청에 대해 이러한 제한 시간 값을 구성하거나 재정의할 수 있습니다.
중요
SDK for Rust가 응답을 반환한 후 사용된 스트리밍 데이터에는 작업 및 시도 제한 시간이 적용되지 않습니다. 예를 들어 응답의 ByteStream
멤버에서 데이터를 사용하는 경우 작업 제한 시간이 적용되지 않습니다.
스톨 스트림 보호
SDK for Rust는 중지된 스트림 감지와 관련된 또 다른 형태의 제한 시간을 제공합니다. 중지된 스트림은 구성된 유예 기간보다 오래 데이터를 생성하지 않는 업로드 또는 다운로드 스트림입니다. 이렇게 하면 애플리케이션이 무기한 중단되고 진행되지 않도록 방지할 수 있습니다.
스트림이 허용 기간보다 오래 유휴 상태인 경우 스트림 보호가 중단되면 오류가 반환됩니다.
기본적으로 SDK for Rust는 업로드와 다운로드 모두에 대해 스트림 차단을 활성화하고 20초의 충분한 유예 기간으로 최소 1바이트/초의 활동을 찾습니다.
다음 예제에서는 업로드 보호를 StalledStreamProtectionConfig
비활성화하고 활동 없음의 유예 기간을 10초로 변경하는 사용자 지정를 보여줍니다.
let config = aws_config::defaults(BehaviorVersion::latest())
.stalled_stream_protection(
StalledStreamProtectionConfig::enabled()
.upload_enabled(false)
.grace_period(Duration::from_secs(10))
.build()
)
.load()
.await;
주의
중단된 스트림 보호는 고급 구성 옵션입니다. 애플리케이션에 더 엄격한 성능이 필요하거나 다른 문제가 발생하는 경우에만 이러한 값을 변경하는 것이 좋습니다.
중지된 스트림 보호 비활성화
다음 예제에서는 중단된 스트림 보호를 완전히 비활성화하는 방법을 보여줍니다.
let config = aws_config::defaults(BehaviorVersion::latest())
.stalled_stream_protection(StalledStreamProtectionConfig::disabled())
.load()
.await;