Skip to content

Commit e1dcb22

Browse files
committed
revert to v1
1 parent 8bb2b98 commit e1dcb22

File tree

2 files changed

+10
-59
lines changed

2 files changed

+10
-59
lines changed

src/main.rs

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,10 @@ const ENV_FILE: &str = "/tmp/crypteia.json";
1010
#[tokio::main]
1111
async fn main() -> Result<(), Error> {
1212
log::cloudwatch_metric("main", "initialized", false, None);
13-
14-
if std::env::var("AWS_LAMBDA_FUNCTION_NAME").is_err() {
15-
log::cloudwatch_metric("main", "running_outside_lambda", false, None);
16-
println!("Running outside of AWS Lambda environment.");
17-
}
1813
let env_vars: HashMap<String, String> = std::env::vars().collect();
19-
let env_map = ssm::get_envs(env_vars).await?;
14+
let env_map = ssm::get_envs(env_vars).await.unwrap();
2015
log::cloudwatch_metric("main", "fetched", false, None);
21-
write_envs_to_tmp_json(env_map)?;
16+
write_envs_to_tmp_json(env_map);
2217
let func = service_fn(parameters_extension);
2318
lambda_extension::run(func).await
2419
}
@@ -33,9 +28,8 @@ async fn parameters_extension(event: LambdaEvent) -> Result<(), Error> {
3328
Ok(())
3429
}
3530

36-
fn write_envs_to_tmp_json(env_map: HashMap<String, String>) -> Result<(), std::io::Error> {
31+
fn write_envs_to_tmp_json(env_map: HashMap<String, String>) {
3732
let envs_json = serde_json::to_string(&env_map).unwrap();
38-
let mut file = File::create(ENV_FILE)?;
39-
file.write_all(envs_json.as_bytes())?;
40-
Ok(())
33+
let mut file = File::create(ENV_FILE).unwrap();
34+
file.write_all(envs_json.as_bytes()).unwrap();
4135
}

src/ssm.rs

Lines changed: 5 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ use futures::future::join_all;
44
use std::collections::HashMap;
55
use tokio::{spawn, task::JoinHandle};
66

7-
87
pub async fn get_envs(env_vars: HashMap<String, String>) -> Result<HashMap<String, String>> {
98
let sdk_config = aws_config::load_from_env().await;
109
let ssm_client: aws_sdk_ssm::Client = aws_sdk_ssm::Client::new(&sdk_config);
@@ -32,9 +31,9 @@ pub async fn get_envs(env_vars: HashMap<String, String>) -> Result<HashMap<Strin
3231
results.insert(key, value);
3332
});
3433
}
35-
Err(error) => return Err(anyhow::anyhow!(format!("Parameter not found: {}", error))), // Return error if parameter is not found
34+
Err(error) => log::cloudwatch_metric("ssm", "error", true, Some(error.to_string())),
3635
},
37-
Err(error) => return Err(anyhow::anyhow!(error.to_string())), // Return error if task fails
36+
Err(error) => log::cloudwatch_metric("ssm", "error", true, Some(error.to_string())),
3837
}
3938
}
4039
Ok(results)
@@ -56,8 +55,6 @@ async fn ssm_get_parameter(
5655
Ok(response) => {
5756
if let Some(parameter) = response.parameter {
5857
items.insert(name, parameter.value.unwrap());
59-
} else {
60-
return Err(anyhow::anyhow!("Parameter not found: {}", path));
6158
}
6259
}
6360
Err(error) => {
@@ -70,7 +67,6 @@ async fn ssm_get_parameter(
7067
name, path, error
7168
)),
7269
);
73-
return Err(anyhow::anyhow!(error.to_string())); // Return error
7470
}
7571
}
7672
Ok(items)
@@ -104,7 +100,7 @@ async fn ssm_get_parameters_by_path(
104100
items.insert(env_name, parameter.value.unwrap());
105101
}
106102
}
107-
if response.next_token.is_none() {
103+
if response.next_token == None {
108104
break;
109105
}
110106
token = response.next_token;
@@ -119,16 +115,14 @@ async fn ssm_get_parameters_by_path(
119115
name, path, error
120116
)),
121117
);
122-
return Err(anyhow::anyhow!(error.to_string())); // Return error
118+
break;
123119
}
124120
}
125121
}
126-
if items.is_empty() {
127-
return Err(anyhow::anyhow!("Parameters not found for path: {}", path));
128-
}
129122
Ok(items)
130123
}
131124

125+
132126
#[cfg(test)]
133127
mod test {
134128
use super::*;
@@ -208,41 +202,4 @@ mod test {
208202
assert_eq!(results, expected);
209203
Ok(())
210204
}
211-
212-
#[tokio::test]
213-
async fn should_fail_if_param_not_found() -> Result<()> {
214-
let sdk_config = aws_config::load_from_env().await;
215-
let ssm_client = aws_sdk_ssm::Client::new(&sdk_config);
216-
ssm_client
217-
.put_parameter()
218-
.name("/crypteia/v5/myapp/SECRET2".to_owned())
219-
.value("1A2B3C4D5E6F".to_owned())
220-
.r#type(ParameterType::SecureString)
221-
.overwrite(true)
222-
.send()
223-
.await?;
224-
let env_vars: HashMap<String, String> = HashMap::from([
225-
("EXISTING".to_string(), "existingvalue".to_string()),
226-
(
227-
"SECRET2".to_string(),
228-
"x-crypteia-ssm:/crypteia/v5/myapp/SECRET".to_string(),
229-
),
230-
("NON_EXISTENT_PARAM".to_string(), "x-crypteia-ssm:/crypteia/v5/myapp/NON_EXISTENT_PARAM".to_string()),
231-
]);
232-
let result = get_envs(env_vars).await;
233-
assert!(result.is_err(), "Expected an error when parameter is not found");
234-
Ok(())
235-
}
236-
237-
238-
239-
#[tokio::test]
240-
async fn should_fail_if_param_not_found_in_path() -> Result<()> {
241-
let sdk_config = aws_config::load_from_env().await;
242-
let ssm_client = aws_sdk_ssm::Client::new(&sdk_config);
243-
let result = ssm_get_parameters_by_path(&ssm_client, "NON_EXISTENT_PARAM".to_string(), "/crypteia/v5/myapp/non_existent_path".to_string()).await;
244-
assert!(result.is_err(), "Expected an error when parameters are not found for the given path");
245-
246-
Ok(())
247-
}
248205
}

0 commit comments

Comments
 (0)