Skip to content

Commit c841979

Browse files
[examples] Sync SDK examples from awsdocs/aws-doc-sdk-examples
Includes commit(s): d2f88c175435015aecebb5e8799e828e2e16ee60 Co-authored-by: David Souther <[email protected]>
1 parent ba51efb commit c841979

File tree

10 files changed

+31
-27
lines changed

10 files changed

+31
-27
lines changed

examples/examples/bedrock-runtime/Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@ edition = "2021"
66
publish = false
77

88
[dependencies]
9+
aws-config = { version = "1.5.10", path = "../../../sdk/aws-config" }
10+
aws-sdk-bedrockruntime = { version = "1.61.0", path = "../../../sdk/bedrockruntime" }
11+
aws-smithy-runtime-api = { version = "1.7.3", path = "../../../sdk/aws-smithy-runtime-api" }
12+
aws-smithy-types = { version = "1.2.9", path = "../../../sdk/aws-smithy-types" }
913
reqwest = "0.12.5"
1014
serde = "1.0.204"
1115
serde_json = "1.0.120"
1216
tracing = "0.1.40"
1317
tracing-subscriber = "0.3.18"
14-
aws-config= { version = "1.5.10", path = "../../../sdk/aws-config" }
15-
aws-sdk-bedrockruntime= { version = "1.61.0", path = "../../../sdk/bedrockruntime" }
16-
aws-smithy-runtime-api= { version = "1.7.3", path = "../../../sdk/aws-smithy-runtime-api" }
17-
aws-smithy-types= { version = "1.2.9", path = "../../../sdk/aws-smithy-types" }
1818

1919
[dependencies.tokio]
2020
version = "1.38.1"

examples/examples/cloudwatchlogs/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,4 @@ path = "../../test-utils"
3232
version = "0.1.0"
3333

3434
[dev-dependencies]
35-
aws-smithy-mocks-experimental= { version = "0.2.1", path = "../../../sdk/aws-smithy-mocks-experimental" }
35+
aws-smithy-mocks-experimental = { version = "0.2.1", path = "../../../sdk/aws-smithy-mocks-experimental" }

examples/examples/ec2/Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ publish = false
88

99
[dependencies]
1010
tracing = "0.1.40"
11+
aws-smithy-runtime-api = { version = "1.7.3", path = "../../../sdk/aws-smithy-runtime-api" }
1112
mockall = "0.13.0"
1213
inquire = "0.7.5"
1314
reqwest = "0.12.5"
14-
aws-smithy-runtime-api= { version = "1.7.3", path = "../../../sdk/aws-smithy-runtime-api" }
15-
aws-sdk-ssm= { version = "1.54.0", path = "../../../sdk/ssm" }
16-
aws-smithy-async= { version = "1.2.1", path = "../../../sdk/aws-smithy-async" }
15+
aws-sdk-ssm = { version = "1.54.0", path = "../../../sdk/ssm" }
16+
aws-smithy-async = { version = "1.2.1", path = "../../../sdk/aws-smithy-async" }
1717
aws-config= { version = "1.5.10", path = "../../../sdk/aws-config", features = ["behavior-version-latest"] }
1818
aws-sdk-ec2= { version = "1.87.0", path = "../../../sdk/ec2" }
1919
aws-types= { version = "1.3.3", path = "../../../sdk/aws-types" }

examples/examples/ec2/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ Code excerpts that show you how to call individual service functions.
5151
- [CreateKeyPair](src/ec2.rs#L41)
5252
- [CreateSecurityGroup](src/ec2.rs#L77)
5353
- [CreateTags](src/ec2.rs#L233)
54-
- [DeleteKeyPair](src/getting_started/key_pair.rs#L66)
54+
- [DeleteKeyPair](src/getting_started/key_pair.rs#L67)
5555
- [DeleteSecurityGroup](src/ec2.rs#L167)
5656
- [DeleteSnapshot](../ebs/src/bin/delete-snapshot.rs#L26)
5757
- [DescribeImages](src/ec2.rs#L179)

examples/examples/ec2/src/ec2.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,12 @@ impl EC2Impl {
6262
// snippet-end:[ec2.rust.list_keys.impl]
6363

6464
// snippet-start:[ec2.rust.delete_key.impl]
65-
pub async fn delete_key_pair(&self, key_pair_id: &str) -> Result<(), EC2Error> {
66-
let key_pair_id: String = key_pair_id.into();
67-
tracing::info!("Deleting key pair {key_pair_id}");
65+
pub async fn delete_key_pair(&self, key_name: &str) -> Result<(), EC2Error> {
66+
let key_name: String = key_name.into();
67+
tracing::info!("Deleting key pair {key_name}");
6868
self.client
6969
.delete_key_pair()
70-
.key_pair_id(key_pair_id)
70+
.key_name(key_name)
7171
.send()
7272
.await?;
7373
Ok(())

examples/examples/ec2/src/getting_started/key_pair.rs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -47,26 +47,27 @@ impl KeyPairManager {
4747
util: &Util,
4848
key_name: String,
4949
) -> Result<KeyPairInfo, EC2Error> {
50-
let (key_pair, material) = ec2
51-
.create_key_pair(key_name.clone())
52-
.await
53-
.map_err(|e| e.add_message(format!("Couldn't create key {key_name}")))?;
50+
let (key_pair, material) = ec2.create_key_pair(key_name.clone()).await.map_err(|e| {
51+
self.key_pair = KeyPairInfo::builder().key_name(key_name.clone()).build();
52+
e.add_message(format!("Couldn't create key {key_name}"))
53+
})?;
5454

5555
let path = self.key_file_dir.join(format!("{key_name}.pem"));
5656

57-
util.write_secure(&key_name, &path, material)?;
58-
59-
self.key_file_path = Some(path);
57+
// Save the key_pair information immediately, so it can get cleaned up if write_secure fails.
58+
self.key_file_path = Some(path.clone());
6059
self.key_pair = key_pair.clone();
6160

61+
util.write_secure(&key_name, &path, material)?;
62+
6263
Ok(key_pair)
6364
}
6465
// snippet-end:[ec2.rust.create_key.wrapper]
6566

6667
// snippet-start:[ec2.rust.delete_key.wrapper]
6768
pub async fn delete(self, ec2: &EC2, util: &Util) -> Result<(), EC2Error> {
68-
if let Some(key_pair_id) = self.key_pair.key_pair_id() {
69-
ec2.delete_key_pair(key_pair_id).await?;
69+
if let Some(key_name) = self.key_pair.key_name() {
70+
ec2.delete_key_pair(key_name).await?;
7071
if let Some(key_path) = self.key_file_path() {
7172
if let Err(err) = util.remove(key_path) {
7273
eprintln!("Failed to remove {key_path:?} ({err:?})");

examples/examples/ec2/src/getting_started/tests/scenario_with_mocks.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ async fn test_happy_path() {
353353
{
354354
mock_ec2
355355
.expect_delete_key_pair()
356-
.with(eq("kp-12345"))
356+
.with(eq("test_key"))
357357
.returning(|_| Ok(()));
358358

359359
mock_util
@@ -591,7 +591,7 @@ async fn test_unhappy_path_instance_takes_too_long() {
591591
{
592592
mock_ec2
593593
.expect_delete_key_pair()
594-
.with(eq("kp-12345"))
594+
.with(eq("test_key"))
595595
.returning(|_| Ok(()));
596596

597597
mock_util

examples/examples/ec2/src/getting_started/util.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,9 @@ impl UtilImpl {
132132
fn open_file_0600(path: &PathBuf) -> Result<std::fs::File, EC2Error> {
133133
use std::os::unix::fs::OpenOptionsExt;
134134
std::fs::OpenOptions::new()
135+
.write(true)
136+
.create(true)
137+
.truncate(true)
135138
.mode(0o600)
136139
.open(path.clone())
137140
.map_err(|e| EC2Error::new(format!("Failed to create {path:?} ({e:?})")))

examples/examples/ses/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ publish = false
1010
anyhow = "1.0.81"
1111
tracing = "0.1.40"
1212
tmpfile = "0.0.2"
13+
aws-smithy-http = { version = "0.60.11", path = "../../../sdk/aws-smithy-http" }
14+
aws-smithy-mocks-experimental = { version = "0.2.1", path = "../../../sdk/aws-smithy-mocks-experimental" }
1315
open = "5.1.2"
14-
aws-smithy-http= { version = "0.60.11", path = "../../../sdk/aws-smithy-http" }
15-
aws-smithy-mocks-experimental= { version = "0.2.1", path = "../../../sdk/aws-smithy-mocks-experimental" }
1616
aws-config= { version = "1.5.10", path = "../../../sdk/aws-config", features = ["behavior-version-latest"] }
1717
aws-sdk-sesv2= { version = "1.54.0", path = "../../../sdk/sesv2", features = ["test-util"] }
1818

versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
smithy_rs_revision = '2459167d57ecaf02af8cc65e57262b68fb14e636'
2-
aws_doc_sdk_examples_revision = '5a504b79b0414a26019a96b172e7309fba17cf21'
2+
aws_doc_sdk_examples_revision = 'd2f88c175435015aecebb5e8799e828e2e16ee60'
33

44
[manual_interventions]
55
crates_to_remove = []

0 commit comments

Comments
 (0)