-
Notifications
You must be signed in to change notification settings - Fork 4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor(runtime-values): deprecate @aws-cdk/runtime-values (#2724)
The runtime-values module is no longer supported.
- Loading branch information
1 parent
56be82c
commit 0b1bbf7
Showing
8 changed files
with
4 additions
and
399 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,54 +1,4 @@ | ||
## Runtime Values | ||
|
||
The CDK allows apps to advertise values from __construction time__ to __runtime | ||
code__. For example, consider code in a Lambda function which needs to know the | ||
URL of the SQS queue created as part of your CDK app. | ||
This module has been deprecated. Use environment variables or SSM parameters to publish values to runtime code. | ||
|
||
Runtime values are advertised as textual SSM parameters with the following key: | ||
|
||
``` | ||
/rtv/<stack-name>/<package>/<name> | ||
``` | ||
|
||
Therefore, in order to advertise a value you will need to: | ||
|
||
1. Make the current stack name available as an environment variable to your | ||
runtime code. The convention is to use `RTV_STACK_NAME`. | ||
2. Use the `RuntimeValue` construct in order to create the SSM parameter and | ||
specify least-privilege permissions. | ||
|
||
For example, say we want to publish a queue's URL to a lambda function. | ||
|
||
### Construction Code | ||
|
||
```ts | ||
import { RuntimeValue } from '@aws-cdk/runtime-values' | ||
|
||
const queue = new Queue(this, 'MyQueue', { /* props.... */ }); | ||
const fn = new Lambda(this, 'MyFunction', { /* props... */ }); | ||
const fleet = new Fleet(this, 'MyFleet', { /* props... */ }); | ||
|
||
// this line defines an AWS::SSM::Parameter resource with the | ||
// key "/rtv/<stack-name>/com.myorg/MyQueueURL" and the actual queue URL as value | ||
const queueUrlRtv = new RuntimeValue(this, 'QueueRTV', { | ||
package: 'com.myorg', | ||
name: 'MyQueueURL', | ||
value: queue.queueUrl | ||
}); | ||
|
||
// this line adds read permissions for this SSM parameter to the policies associated with | ||
// the IAM roles of the Lambda function and the EC2 fleet | ||
queueUrlRtv.grantRead(fn.role); | ||
queueUrlRtv.grantRead(fleet.role); | ||
|
||
// adds the `RTV_STACK_NAME` to the environment of the lambda function | ||
// and the fleet (via user-data) | ||
fn.env(RuntimeValue.ENV_NAME, RuntimeValue.ENV_VALUE); | ||
fleet.env(RuntimeValue.ENV_NAME, RuntimeValue.ENV_VALUE); | ||
``` | ||
|
||
### Runtime Code | ||
|
||
Then, your runtime code will need to use the SSM Parameter Store AWS SDK in | ||
order to format the SSM parameter key and read the value. In future releases, we | ||
will provide runtime libraries to make this easy. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
export * from './rtv'; | ||
throw new Error(`@aws-cdk/runtime-values is deprecated`); |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
144 changes: 0 additions & 144 deletions
144
packages/@aws-cdk/runtime-values/test/integ.rtv.lambda.expected.json
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.