Skip to content

Commit a907a7e

Browse files
authored
feat(ivs): support RTMP ingest for IVS channel (#31380)
### Issue # (if applicable) N/A ### Reason for this change Add missing property. ### Description of changes Add `insecureIngest`property. ### Description of how you validated changes Add unit tests and integ test. ### Checklist - [x] My code adheres to the [CONTRIBUTING GUIDE](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and [DESIGN GUIDELINES](https://github.com/aws/aws-cdk/blob/main/docs/DESIGN_GUIDELINES.md) ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
1 parent bf3764f commit a907a7e

12 files changed

+421
-1
lines changed

packages/@aws-cdk/aws-ivs-alpha/README.md

+11
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,17 @@ const myChannel = new ivs.Channel(this, 'myChannel', {
5555
});
5656
```
5757

58+
If you want to use RTMP ingest, set `insecureIngest` property to `true`.
59+
By default, `insecureIngest` is `false` which means using RTMPS ingest.
60+
61+
**⚠ Note:** RTMP ingest might result in reduced security for your streams. AWS recommends that you use RTMPS for ingest, unless you have specific and verified use cases. For more information, see [Encoder Settings](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/streaming-config.html#streaming-config-settings).
62+
63+
```ts
64+
const myRtmpChannel = new ivs.Channel(this, 'myRtmpChannel', {
65+
type: ivs.ChannelType.STANDARD,
66+
insecureIngest: true, // default value is false
67+
});
68+
```
5869

5970
### Importing an existing channel
6071

packages/@aws-cdk/aws-ivs-alpha/lib/channel.ts

+8
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,13 @@ export interface ChannelProps {
117117
*/
118118
readonly authorized?: boolean;
119119

120+
/**
121+
* Whether the channel allows insecure RTMP ingest.
122+
*
123+
* @default false
124+
*/
125+
readonly insecureIngest?: boolean;
126+
120127
/**
121128
* Channel latency mode.
122129
*
@@ -211,6 +218,7 @@ export class Channel extends ChannelBase {
211218

212219
const resource = new CfnChannel(this, 'Resource', {
213220
authorized: props.authorized,
221+
insecureIngest: props.insecureIngest,
214222
latencyMode: props.latencyMode,
215223
name: this.physicalName,
216224
type: props.type,

packages/@aws-cdk/aws-ivs-alpha/test/integ.ivs-insecure-ingest.js.snapshot/aws-cdk-ivs-insecure-ingest.assets.json

+19
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
{
2+
"Resources": {
3+
"ChannelInsecureIngestEnabled1E9B93E0": {
4+
"Type": "AWS::IVS::Channel",
5+
"Properties": {
6+
"InsecureIngest": true,
7+
"Name": "aws-cdk-ivs-insecure-ingestChannelInsecureIngestEnabled15F31314",
8+
"Type": "STANDARD"
9+
}
10+
}
11+
},
12+
"Parameters": {
13+
"BootstrapVersion": {
14+
"Type": "AWS::SSM::Parameter::Value<String>",
15+
"Default": "/cdk-bootstrap/hnb659fds/version",
16+
"Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]"
17+
}
18+
},
19+
"Rules": {
20+
"CheckBootstrapVersion": {
21+
"Assertions": [
22+
{
23+
"Assert": {
24+
"Fn::Not": [
25+
{
26+
"Fn::Contains": [
27+
[
28+
"1",
29+
"2",
30+
"3",
31+
"4",
32+
"5"
33+
],
34+
{
35+
"Ref": "BootstrapVersion"
36+
}
37+
]
38+
}
39+
]
40+
},
41+
"AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI."
42+
}
43+
]
44+
}
45+
}
46+
}

packages/@aws-cdk/aws-ivs-alpha/test/integ.ivs-insecure-ingest.js.snapshot/cdk.out

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/@aws-cdk/aws-ivs-alpha/test/integ.ivs-insecure-ingest.js.snapshot/integ.json

+12
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/@aws-cdk/aws-ivs-alpha/test/integ.ivs-insecure-ingest.js.snapshot/ivsinsecureingesttestDefaultTestDeployAssert6FABA1ED.assets.json

+19
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/@aws-cdk/aws-ivs-alpha/test/integ.ivs-insecure-ingest.js.snapshot/ivsinsecureingesttestDefaultTestDeployAssert6FABA1ED.template.json

+36
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/@aws-cdk/aws-ivs-alpha/test/integ.ivs-insecure-ingest.js.snapshot/manifest.json

+113
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)