Skip to content

Commit 336d7d7

Browse files
committed
Fix: Update normalized testing
1 parent de29e47 commit 336d7d7

File tree

4 files changed

+236
-6
lines changed

4 files changed

+236
-6
lines changed
Lines changed: 229 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,229 @@
1+
# InstanceConnectEndpoint
2+
3+
`InstanceConnectEndpoint` is a sample AWS CDK construct that allows you to build [EC2 Instance Connect Endpoint](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-using-eice.html) in your VPC with CDK custom resource.
4+
5+
This sample is generated with [projen](https://github.com/projen/projen) `awscdk-construct` project type so you can reference the `.projenrc.ts` and create your own CDK construct library like this with very little modification.
6+
7+
# sample
8+
9+
```ts
10+
// create an EIC Endpoint in an isolated subnet
11+
new InstanceConnectEndpoint(stack, 'EICEndpoint', {
12+
subnet: vpc.isolatedSubnets[0],
13+
preserveClientIp: false,
14+
});
15+
```
16+
17+
See full sample at [integ.default.ts](./src/integ.default.ts).
18+
19+
# deploy the default integration test
20+
21+
```sh
22+
$ cd typescripts/ec2-instance-connect-endpoint
23+
$ yarn install
24+
# configure your AWS CLI
25+
$ npx cdk diff
26+
$ npx cdk deploy
27+
```
28+
29+
On deployment completed, check the instance ID from the output:
30+
31+
```
32+
integ-testing-eicendpoint.InstanceId = i-01d0f0c7ca761ff29
33+
```
34+
35+
Now, connect it with AWS CLI:
36+
37+
```sh
38+
$ aws ec2-instance-connect ssh --instance-id i-01d0f0c7ca761ff29
39+
```
40+
41+
# `awssh`
42+
43+
Alternatively, you can create an `awssh` alias like this:
44+
45+
```sh
46+
alias awssh='aws ec2-instance-connect ssh --instance-id'
47+
```
48+
49+
Now, you can just `awssh` into any ec2 instance behind the endpoint.
50+
51+
```sh
52+
$ awssh i-01d0f0c7ca761ff29
53+
```
54+
55+
# run the tests
56+
57+
```sh
58+
$ yarn test
59+
```
60+
61+
# clean up
62+
63+
```sh
64+
$ npx cdk destroy
65+
```
66+
# API Reference <a name="API Reference" id="api-reference"></a>
67+
68+
## Constructs <a name="Constructs" id="Constructs"></a>
69+
70+
### InstanceConnectEndpoint <a name="InstanceConnectEndpoint" id="ec2-instance-connect-endpoint.InstanceConnectEndpoint"></a>
71+
72+
#### Initializers <a name="Initializers" id="ec2-instance-connect-endpoint.InstanceConnectEndpoint.Initializer"></a>
73+
74+
```typescript
75+
import { InstanceConnectEndpoint } from 'ec2-instance-connect-endpoint'
76+
77+
new InstanceConnectEndpoint(scope: Construct, id: string, props: InstanceConnectEndpointProps)
78+
```
79+
80+
| **Name** | **Type** | **Description** |
81+
| --- | --- | --- |
82+
| <code><a href="#ec2-instance-connect-endpoint.InstanceConnectEndpoint.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
83+
| <code><a href="#ec2-instance-connect-endpoint.InstanceConnectEndpoint.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
84+
| <code><a href="#ec2-instance-connect-endpoint.InstanceConnectEndpoint.Initializer.parameter.props">props</a></code> | <code><a href="#ec2-instance-connect-endpoint.InstanceConnectEndpointProps">InstanceConnectEndpointProps</a></code> | *No description.* |
85+
86+
---
87+
88+
##### `scope`<sup>Required</sup> <a name="scope" id="ec2-instance-connect-endpoint.InstanceConnectEndpoint.Initializer.parameter.scope"></a>
89+
90+
- *Type:* constructs.Construct
91+
92+
---
93+
94+
##### `id`<sup>Required</sup> <a name="id" id="ec2-instance-connect-endpoint.InstanceConnectEndpoint.Initializer.parameter.id"></a>
95+
96+
- *Type:* string
97+
98+
---
99+
100+
##### `props`<sup>Required</sup> <a name="props" id="ec2-instance-connect-endpoint.InstanceConnectEndpoint.Initializer.parameter.props"></a>
101+
102+
- *Type:* <a href="#ec2-instance-connect-endpoint.InstanceConnectEndpointProps">InstanceConnectEndpointProps</a>
103+
104+
---
105+
106+
#### Methods <a name="Methods" id="Methods"></a>
107+
108+
| **Name** | **Description** |
109+
| --- | --- |
110+
| <code><a href="#ec2-instance-connect-endpoint.InstanceConnectEndpoint.toString">toString</a></code> | Returns a string representation of this construct. |
111+
112+
---
113+
114+
##### `toString` <a name="toString" id="ec2-instance-connect-endpoint.InstanceConnectEndpoint.toString"></a>
115+
116+
```typescript
117+
public toString(): string
118+
```
119+
120+
Returns a string representation of this construct.
121+
122+
#### Static Functions <a name="Static Functions" id="Static Functions"></a>
123+
124+
| **Name** | **Description** |
125+
| --- | --- |
126+
| <code><a href="#ec2-instance-connect-endpoint.InstanceConnectEndpoint.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
127+
128+
---
129+
130+
##### ~~`isConstruct`~~ <a name="isConstruct" id="ec2-instance-connect-endpoint.InstanceConnectEndpoint.isConstruct"></a>
131+
132+
```typescript
133+
import { InstanceConnectEndpoint } from 'ec2-instance-connect-endpoint'
134+
135+
InstanceConnectEndpoint.isConstruct(x: any)
136+
```
137+
138+
Checks if `x` is a construct.
139+
140+
###### `x`<sup>Required</sup> <a name="x" id="ec2-instance-connect-endpoint.InstanceConnectEndpoint.isConstruct.parameter.x"></a>
141+
142+
- *Type:* any
143+
144+
Any object.
145+
146+
---
147+
148+
#### Properties <a name="Properties" id="Properties"></a>
149+
150+
| **Name** | **Type** | **Description** |
151+
| --- | --- | --- |
152+
| <code><a href="#ec2-instance-connect-endpoint.InstanceConnectEndpoint.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
153+
154+
---
155+
156+
##### `node`<sup>Required</sup> <a name="node" id="ec2-instance-connect-endpoint.InstanceConnectEndpoint.property.node"></a>
157+
158+
```typescript
159+
public readonly node: Node;
160+
```
161+
162+
- *Type:* constructs.Node
163+
164+
The tree node.
165+
166+
---
167+
168+
169+
## Structs <a name="Structs" id="Structs"></a>
170+
171+
### InstanceConnectEndpointProps <a name="InstanceConnectEndpointProps" id="ec2-instance-connect-endpoint.InstanceConnectEndpointProps"></a>
172+
173+
#### Initializer <a name="Initializer" id="ec2-instance-connect-endpoint.InstanceConnectEndpointProps.Initializer"></a>
174+
175+
```typescript
176+
import { InstanceConnectEndpointProps } from 'ec2-instance-connect-endpoint'
177+
178+
const instanceConnectEndpointProps: InstanceConnectEndpointProps = { ... }
179+
```
180+
181+
#### Properties <a name="Properties" id="Properties"></a>
182+
183+
| **Name** | **Type** | **Description** |
184+
| --- | --- | --- |
185+
| <code><a href="#ec2-instance-connect-endpoint.InstanceConnectEndpointProps.property.subnet">subnet</a></code> | <code>aws-cdk-lib.aws_ec2.ISubnet</code> | EC2 subnet for this endpoint. |
186+
| <code><a href="#ec2-instance-connect-endpoint.InstanceConnectEndpointProps.property.preserveClientIp">preserveClientIp</a></code> | <code>boolean</code> | whether to enable the preserveClientIp. |
187+
| <code><a href="#ec2-instance-connect-endpoint.InstanceConnectEndpointProps.property.securityGroup">securityGroup</a></code> | <code>aws-cdk-lib.aws_ec2.ISecurityGroup[]</code> | Security groups of this endpoint. |
188+
189+
---
190+
191+
##### `subnet`<sup>Required</sup> <a name="subnet" id="ec2-instance-connect-endpoint.InstanceConnectEndpointProps.property.subnet"></a>
192+
193+
```typescript
194+
public readonly subnet: ISubnet;
195+
```
196+
197+
- *Type:* aws-cdk-lib.aws_ec2.ISubnet
198+
199+
EC2 subnet for this endpoint.
200+
201+
---
202+
203+
##### `preserveClientIp`<sup>Optional</sup> <a name="preserveClientIp" id="ec2-instance-connect-endpoint.InstanceConnectEndpointProps.property.preserveClientIp"></a>
204+
205+
```typescript
206+
public readonly preserveClientIp: boolean;
207+
```
208+
209+
- *Type:* boolean
210+
- *Default:* true
211+
212+
whether to enable the preserveClientIp.
213+
214+
---
215+
216+
##### `securityGroup`<sup>Optional</sup> <a name="securityGroup" id="ec2-instance-connect-endpoint.InstanceConnectEndpointProps.property.securityGroup"></a>
217+
218+
```typescript
219+
public readonly securityGroup: ISecurityGroup[];
220+
```
221+
222+
- *Type:* aws-cdk-lib.aws_ec2.ISecurityGroup[]
223+
224+
Security groups of this endpoint.
225+
226+
---
227+
228+
229+

typescript/ec2-instance-connect-endpoint/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"repository": {
55
"type": "git",
66
"url": "https://github.com/aws-samples/aws-cdk-examples.git"
7+
},
78
"bin": {
89
"ec2-instance-connect-endpoint": "bin/app.js"
910
},
@@ -13,7 +14,6 @@
1314
"test": "jest",
1415
"cdk": "cdk"
1516
},
16-
},
1717
"devDependencies": {
1818
"@types/jest": "^29.5.14",
1919
"@types/node": "^16",

typescript/ec2-instance-connect-endpoint/test/__snapshots__/app.test.ts.snap

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ exports[`default validation 1`] = `
172172
"S3Bucket": {
173173
"Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}",
174174
},
175-
"S3Key": "bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip",
175+
"S3Key": "NORMALIZED_ASSET_HASH.zip",
176176
},
177177
"Description": "AWS CDK resource provider framework - isComplete (integ-testing-eicendpoint/EICEndpoint/Provider)",
178178
"Environment": {
@@ -340,7 +340,7 @@ exports[`default validation 1`] = `
340340
"S3Bucket": {
341341
"Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}",
342342
},
343-
"S3Key": "bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip",
343+
"S3Key": "NORMALIZED_ASSET_HASH.zip",
344344
},
345345
"Description": "AWS CDK resource provider framework - onEvent (integ-testing-eicendpoint/EICEndpoint/Provider)",
346346
"Environment": {
@@ -518,7 +518,7 @@ exports[`default validation 1`] = `
518518
"S3Bucket": {
519519
"Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}",
520520
},
521-
"S3Key": "bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip",
521+
"S3Key": "NORMALIZED_ASSET_HASH.zip",
522522
},
523523
"Description": "AWS CDK resource provider framework - onTimeout (integ-testing-eicendpoint/EICEndpoint/Provider)",
524524
"Environment": {
@@ -994,7 +994,7 @@ exports[`default validation 1`] = `
994994
"S3Bucket": {
995995
"Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}",
996996
},
997-
"S3Key": "580e7199f29d3a4ba21264e35db2b99e791d0c4bc8d5e635d4bc85da65923391.zip",
997+
"S3Key": "NORMALIZED_ASSET_HASH.zip",
998998
},
999999
"Handler": "index.is_complete",
10001000
"MemorySize": 256,
@@ -1019,7 +1019,7 @@ exports[`default validation 1`] = `
10191019
"S3Bucket": {
10201020
"Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}",
10211021
},
1022-
"S3Key": "580e7199f29d3a4ba21264e35db2b99e791d0c4bc8d5e635d4bc85da65923391.zip",
1022+
"S3Key": "NORMALIZED_ASSET_HASH.zip",
10231023
},
10241024
"Handler": "index.on_event",
10251025
"MemorySize": 256,

typescript/ec2-instance-connect-endpoint/test/app.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { Template } from 'aws-cdk-lib/assertions';
22
import { IntegTesting } from '../bin/app';
3+
import { normalizeTemplate } from '../../test-utils/normalize-template';
34

45
test('default validation', () => {
56
const integ = new IntegTesting();

0 commit comments

Comments
 (0)