Релиз библиотеки ydb-rs-sdk 0.8.3
Состоялся релиз библиотеки ydb-rs-sdk с возможностью получения данных для авторизации из переменных среды окружения по следующему алгоритму:
- Если задано значение переменной окружения
YDB_SERVICE_ACCOUNT_KEY_FILE_CREDENTIALS, то используется режим аутентификации System Account Key, а ключ загружается из файла, имя которого указано в данной переменной - Иначе, если задано значение переменной окружения
YDB_ANONYMOUS_CREDENTIALS, равное 1, то используется анонимный режим аутентификации - Иначе, если задано значение переменной окружения
YDB_METADATA_CREDENTIALS, равное 1, то используется режим аутентификации Metadata - Иначе, если задано значение переменной окружения
YDB_ACCESS_TOKEN_CREDENTIALS, то используется режим аутентификации Access token, в который передается значение данной переменной - Иначе используется режим аутентификации Metadata
Наличие последним пунктом алгоритма выбора режима Metadata позволяет развернуть рабочее приложение на виртуальных машинах и в Cloud Functions Yandex.Cloud без задания каких-либо переменных окружения.
Пример кода:
rust
#[tokio::main] async fn main() -> Result<(), Box<dyn Error>> { let connection_string = env::var("YDB_CONNECTION_STRING")?; let client = ClientBuilder::new_from_connection_string(connection_string)? .with_credentials(FromEnvCredentials::new()?) .client()?; info!("Waiting for client"); client.wait().await?; let sum: i32 = client .table_client() .retry_transaction(|mut t| async move { let res = t.query(Query::from("SELECT 1 + 1 as sum")).await?; Ok(res.into_only_row()?.remove_field_by_name("sum")?) }) .await? .try_into() .unwrap(); info!("sum: {}", sum); Ok(()) }