Skip to content

Commit

Permalink
docs(custom-resources): remove section about experimental SDKv3 suppo…
Browse files Browse the repository at this point in the history
…rt (#26631)

`AwsCustomResource` now uses Node18/SDKv3 by default. This support is no longer experimental, and it does not require passing in different string values into the properties of the custom resource.

The V2 strings can be used to interact with the V3 SDK.

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
  • Loading branch information
rix0rrr authored Aug 4, 2023
1 parent a35fcc5 commit 4bf0762
Showing 1 changed file with 1 addition and 33 deletions.
34 changes: 1 addition & 33 deletions packages/aws-cdk-lib/custom-resources/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -431,7 +431,7 @@ Path to data must be specified using a dot notation, e.g. to get the string valu
of the `Title` attribute for the first item returned by `dynamodb.query` it should
be `Items.0.Title.S`.

To make sure that the newest API calls are available the latest AWS SDK v2 is installed
To make sure that the newest API calls are available the latest AWS SDK v3 is installed
in the Lambda function implementing the custom resource. The installation takes around 60
seconds. If you prefer to optimize for speed, you can disable the installation by setting
the `installLatestAwsSdk` prop to `false`.
Expand Down Expand Up @@ -648,35 +648,3 @@ const getParameter = new cr.AwsCustomResource(this, 'AssociateVPCWithHostedZone'
}),
});
```

#### Using AWS SDK for JavaScript v3

`AwsCustomResource` experimentally supports AWS SDK for JavaScript v3 (NODEJS_18_X or higher). In AWS SDK for JavaScript v3, packages are installed for each service. Therefore, specify the package name for `service`. Also, `action` specifies the XxxClient operations provided in the package. This example is the same as `SSM.getParameter` in v2.

```ts
import * as regionInfo from 'aws-cdk-lib/region-info';

class MyFact implements regionInfo.IFact {
public readonly region = 'us-east-1';
public readonly name = regionInfo.FactName.DEFAULT_CR_NODE_VERSION;
public readonly value = lambda.Runtime.NODEJS_18_X.name;
}

// change custom resource default runtime
regionInfo.Fact.register(new MyFact(), true);

new cr.AwsCustomResource(this, 'GetParameter', {
resourceType: 'Custom::SSMParameter',
onUpdate: {
service: '@aws-sdk/client-ssm', // 'SSM' in v2
action: 'GetParameterCommand', // 'getParameter' in v2
parameters: {
Name: 'foo',
WithDecryption: true,
},
physicalResourceId: cr.PhysicalResourceId.fromResponse('Parameter.ARN'),
},
});
```

If you are using `NODEJS_18_X` or higher, you can also use the existing AWS SDK for JavaScript v2 style.

0 comments on commit 4bf0762

Please sign in to comment.