Skip to content

Commit

Permalink
chore(release): 1.100.0 (#14272)
Browse files Browse the repository at this point in the history
See CHANGELOG
  • Loading branch information
Niranjan Jayakar authored Apr 20, 2021
2 parents 2691986 + c4240fd commit d996c6d
Show file tree
Hide file tree
Showing 142 changed files with 3,493 additions and 745 deletions.
5 changes: 3 additions & 2 deletions .github/workflows/yarn-upgrade.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
run: echo "::set-output name=dir::$(yarn cache dir)"

- name: Restore Yarn cache
uses: actions/[email protected].4
uses: actions/[email protected].5
with:
path: ${{ steps.yarn-cache.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
Expand All @@ -46,11 +46,12 @@ jobs:
# We special-case aws-sdk because of breaking changes with TS interface exports in recent minor versions - https:/aws/aws-sdk-js/issues/3453
# We special-case typescript because it's not semantically versionned
# We special-case constructs because we want to stay in control of the minimum compatible version
# We special-case lerna because we have a patch on it that stops applying if Lerna upgrades. Remove this once https:/lerna/lerna/pull/2874 releases.
run: |-
# Upgrade dependencies at repository root
ncu --upgrade --filter=@types/node,@types/fs-extra --target=minor
ncu --upgrade --filter=typescript --target=patch
ncu --upgrade --reject=@types/node,@types/fs-extra,constructs,typescript --target=minor
ncu --upgrade --reject=@types/node,@types/fs-extra,constructs,typescript,lerna --target=minor
# Upgrade all the packages
lerna exec --parallel ncu -- --upgrade --filter=@types/node,@types/fs-extra --target=minor
lerna exec --parallel ncu -- --upgrade --filter=typescript --target=patch
Expand Down
29 changes: 29 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,35 @@

All notable changes to this project will be documented in this file. See [standard-version](https:/conventional-changelog/standard-version) for commit guidelines.

## [1.100.0](https:/aws/aws-cdk/compare/v1.99.0...v1.100.0) (2021-04-20)


### ⚠ BREAKING CHANGES TO EXPERIMENTAL FEATURES

* **appmesh:** HTTP2 `VirtualNodeListener`s must be now created with `Http2VirtualNodeListenerOptions`
* **appmesh**: HTTP2 `VirtualGatewayListener`s must be now created with `Http2VirtualGatewayListenerOptions`
* **codepipeline-actions:** the Action `ServiceCatalogDeployAction` has been renamed to `ServiceCatalogDeployActionBeta1`
* **codepipeline-actions**: the type `ServiceCatalogDeployActionProps` has been renamed to `ServiceCatalogDeployActionBeta1Props`

### Features

* **apigateway:** integration timeout ([#14154](https:/aws/aws-cdk/issues/14154)) ([d02770e](https:/aws/aws-cdk/commit/d02770ead89d87e55d36490f5d1fa2a4b8a591f2)), closes [#14123](https:/aws/aws-cdk/issues/14123)
* **appmesh:** add Connection Pools for VirtualNode and VirtualGateway ([#13917](https:/aws/aws-cdk/issues/13917)) ([8a949dc](https:/aws/aws-cdk/commit/8a949dc24b13f8b7da17c102501050bac7323bf7)), closes [#11647](https:/aws/aws-cdk/issues/11647)
* **certificatemanager:** allow tagging DnsValidatedCertificate ([#13990](https:/aws/aws-cdk/issues/13990)) ([8360feb](https:/aws/aws-cdk/commit/8360feb58fdc7b1150eca87767e3b71a5e30f50d)), closes [#12382](https:/aws/aws-cdk/issues/12382) [#12382](https:/aws/aws-cdk/issues/12382)
* **codebuild:** allow setting concurrent build limit ([#14185](https:/aws/aws-cdk/issues/14185)) ([3107d03](https:/aws/aws-cdk/commit/3107d03ed2de331ba0eae8ca028aa9a7dbf5a881))
* **codepipeline:** introduce the Action abstract class ([#14009](https:/aws/aws-cdk/issues/14009)) ([4b6a6cc](https:/aws/aws-cdk/commit/4b6a6cc0e11fd2057b9e23105791098b47c5ca35))
* **ecs:** add support for elastic inference accelerators in ECS task defintions ([#13950](https:/aws/aws-cdk/issues/13950)) ([23986d7](https:/aws/aws-cdk/commit/23986d70c5cd69ce212b5ffdc1bcf059f438f15b)), closes [#12460](https:/aws/aws-cdk/issues/12460)
* **eks:** Pass bootstrap.sh args to avoid DescribeCluster call and make nodes join the cluster faster ([#12659](https:/aws/aws-cdk/issues/12659)) ([f5616cc](https:/aws/aws-cdk/commit/f5616cc4692975b22db5db4625562dfd0d641045))
* **secretsmanager:** replicate secrets to multiple regions ([#14266](https:/aws/aws-cdk/issues/14266)) ([b3c288d](https:/aws/aws-cdk/commit/b3c288d7c5781ecb5de90c962a2b68191ed072e1)), closes [#14061](https:/aws/aws-cdk/issues/14061)


### Bug Fixes

* **codepipeline:** incorrect determination of the Action's account when using an imported resource ([#14224](https:/aws/aws-cdk/issues/14224)) ([d88e915](https:/aws/aws-cdk/commit/d88e915c45378cac6a1c7eb31b015391e74f6503)), closes [#14165](https:/aws/aws-cdk/issues/14165)
* **core:** `toJsonString()` does not deal correctly with list tokens ([#14138](https:/aws/aws-cdk/issues/14138)) ([1a6d39f](https:/aws/aws-cdk/commit/1a6d39fc3f22e2fc36949226e8a07f59a92a0bbf)), closes [#14088](https:/aws/aws-cdk/issues/14088)
* **pipelines:** incorrect BuildSpec in synth step if synthesized with `--output` ([#14211](https:/aws/aws-cdk/issues/14211)) ([0f5c74f](https:/aws/aws-cdk/commit/0f5c74f76ad023b163777b8b95f8dbc357994087)), closes [#13303](https:/aws/aws-cdk/issues/13303)
* **rds:** database instances cannot be to be referenced in a different region ([#13865](https:/aws/aws-cdk/issues/13865)) ([74c7fff](https:/aws/aws-cdk/commit/74c7ffffb48fe5578a405b319cc0df973ceb9989)), closes [#13832](https:/aws/aws-cdk/issues/13832)

## [1.99.0](https:/aws/aws-cdk/compare/v1.98.0...v1.99.0) (2021-04-13)


Expand Down
13 changes: 13 additions & 0 deletions allowed-breaking-changes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,16 @@ weakened:@aws-cdk/cloud-assembly-schema.FileSource
# These are fine, since they shouldn't be widely used.
weakened:@aws-cdk/core.FileAssetLocation
weakened:@aws-cdk/aws-events.RuleTargetConfig

# replace interface with untyped properties to order to break stable to experimental dependencies
removed:@aws-cdk/aws-stepfunctions-tasks.CallApiGatewayHttpApiEndpointProps.api
strengthened:@aws-cdk/aws-stepfunctions-tasks.CallApiGatewayHttpApiEndpointProps
removed:@aws-cdk/aws-route53-targets.ApiGatewayv2Domain
removed:@aws-cdk/aws-stepfunctions-tasks.RunBatchJobProps.jobDefinition
removed:@aws-cdk/aws-stepfunctions-tasks.RunBatchJobProps.jobDefinition
removed:@aws-cdk/aws-stepfunctions-tasks.RunBatchJobProps.jobQueue
removed:@aws-cdk/aws-stepfunctions-tasks.BatchSubmitJobProps.jobQueue
removed:@aws-cdk/aws-stepfunctions-tasks.BatchSubmitJobProps.jobDefinition
strengthened:@aws-cdk/aws-stepfunctions-tasks.BatchSubmitJobProps
removed:@aws-cdk/aws-lambda-event-sources.ManagedKafkaEventSourceProps.cluster
strengthened:@aws-cdk/aws-lambda-event-sources.ManagedKafkaEventSourceProps
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
"pack": "./pack.sh",
"compat": "./scripts/check-api-compatibility.sh",
"bump": "./bump.sh",
"build-all": "tsc -b"
"build-all": "tsc -b",
"postinstall": "patch-package --error-on-fail"
},
"devDependencies": {
"conventional-changelog-cli": "^2.1.1",
Expand All @@ -22,6 +23,7 @@
"jsii-pacmak": "^1.28.0",
"jsii-rosetta": "^1.28.0",
"lerna": "^4.0.0",
"patch-package": "^6.4.7",
"standard-version": "^9.2.0",
"typescript": "~3.9.9"
},
Expand Down
14 changes: 13 additions & 1 deletion packages/@aws-cdk/aws-apigateway/lib/integration.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as iam from '@aws-cdk/aws-iam';
import { Lazy } from '@aws-cdk/core';
import { Lazy, Duration } from '@aws-cdk/core';
import { Method } from './method';
import { IVpcLink, VpcLink } from './vpc-link';

Expand Down Expand Up @@ -80,6 +80,14 @@ export interface IntegrationOptions {
*/
readonly requestTemplates?: { [contentType: string]: string };

/**
* The maximum amount of time an integration will run before it returns without a response.
* Must be between 50 milliseconds and 29 seconds.
*
* @default Duration.seconds(29)
*/
readonly timeout?: Duration;

/**
* The response that API Gateway provides after a method's backend completes
* processing a request. API Gateway intercepts the response from the
Expand Down Expand Up @@ -193,6 +201,10 @@ export class Integration {
if (options.connectionType === ConnectionType.INTERNET && options.vpcLink !== undefined) {
throw new Error('cannot set \'vpcLink\' where \'connectionType\' is INTERNET');
}

if (options.timeout && !options.timeout.isUnresolved() && (options.timeout.toMilliseconds() < 50 || options.timeout.toMilliseconds() > 29000)) {
throw new Error('Integration timeout must be between 50 milliseconds and 29 seconds.');
}
}

/**
Expand Down
1 change: 1 addition & 0 deletions packages/@aws-cdk/aws-apigateway/lib/method.ts
Original file line number Diff line number Diff line change
Expand Up @@ -289,6 +289,7 @@ export class Method extends Resource {
connectionType: options.connectionType,
connectionId: options.vpcLink ? options.vpcLink.vpcLinkId : undefined,
credentials,
timeoutInMillis: options.timeout?.toMilliseconds(),
};
}

Expand Down
46 changes: 46 additions & 0 deletions packages/@aws-cdk/aws-apigateway/test/integration.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -184,4 +184,50 @@ describe('integration', () => {
},
});
});

test('validates timeout is valid', () => {

expect(() => new apigw.Integration({
type: apigw.IntegrationType.HTTP_PROXY,
integrationHttpMethod: 'ANY',
options: {
timeout: cdk.Duration.millis(2),
},
})).toThrow(/Integration timeout must be between 50 milliseconds and 29 seconds/);

expect(() => new apigw.Integration({
type: apigw.IntegrationType.HTTP_PROXY,
integrationHttpMethod: 'ANY',
options: {
timeout: cdk.Duration.seconds(50),
},
})).toThrow(/Integration timeout must be between 50 milliseconds and 29 seconds/);
});

test('sets timeout', () => {

// GIVEN
const stack = new cdk.Stack();
const api = new apigw.RestApi(stack, 'restapi');

// WHEN
const integration = new apigw.Integration({
type: apigw.IntegrationType.HTTP_PROXY,
integrationHttpMethod: 'ANY',
options: {
timeout: cdk.Duration.seconds(1),
},
});
api.root.addMethod('ANY', integration);

// THEN
expect(stack).toHaveResourceLike('AWS::ApiGateway::Method', {
HttpMethod: 'ANY',
Integration: {
TimeoutInMillis: 1000,
},
});

});

});
32 changes: 32 additions & 0 deletions packages/@aws-cdk/aws-appmesh/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -306,6 +306,38 @@ const node = mesh.addVirtualNode('virtual-node', {
});
```

## Adding a connection pool to a listener

The `connectionPool` property can be added to a Virtual Node listener or Virtual Gateway listener to add a request connection pool. There are different
connection pool properties per listener protocol types.

```typescript
// A Virtual Node with a gRPC listener with a connection pool set
const node = new appmesh.VirtualNode(stack, 'node', {
mesh,
dnsHostName: 'node',
listeners: [appmesh.VirtualNodeListener.http({
port: 80,
connectionPool: {
maxConnections: 100,
maxPendingRequests: 10,
},
})],
});

// A Virtual Gateway with a gRPC listener with a connection pool set
const gateway = new appmesh.VirtualGateway(this, 'gateway', {
mesh: mesh,
listeners: [appmesh.VirtualGatewayListener.grpc({
port: 8080,
connectionPool: {
maxRequests: 10,
},
})],
virtualGatewayName: 'gateway',
});
```

## Adding a Route

A `route` is associated with a virtual router, and it's used to match requests for a virtual router and distribute traffic accordingly to its associated virtual nodes.
Expand Down
28 changes: 27 additions & 1 deletion packages/@aws-cdk/aws-appmesh/lib/private/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,30 @@ const HEALTH_CHECK_PROPERTY_THRESHOLDS: {[key in (keyof AppMeshHealthCheck)]?: [
port: [1, 65535],
timeoutMillis: [2000, 60000],
unhealthyThreshold: [2, 10],
};
};

/**
* Generated Connection pool config
*/
export interface ConnectionPoolConfig {
/**
* The maximum connections in the pool
*
* @default - none
*/
readonly maxConnections?: number;

/**
* The maximum pending requests in the pool
*
* @default - none
*/
readonly maxPendingRequests?: number;

/**
* The maximum requests in the pool
*
* @default - none
*/
readonly maxRequests?: number;
}
55 changes: 55 additions & 0 deletions packages/@aws-cdk/aws-appmesh/lib/shared-interfaces.ts
Original file line number Diff line number Diff line change
Expand Up @@ -299,3 +299,58 @@ class VirtualServiceBackend extends Backend {
};
}
}

/**
* Connection pool properties for HTTP listeners
*/
export interface HttpConnectionPool {
/**
* The maximum connections in the pool
*
* @default - none
*/
readonly maxConnections: number;

/**
* The maximum pending requests in the pool
*
* @default - none
*/
readonly maxPendingRequests: number;
}

/**
* Connection pool properties for TCP listeners
*/
export interface TcpConnectionPool {
/**
* The maximum connections in the pool
*
* @default - none
*/
readonly maxConnections: number;
}

/**
* Connection pool properties for gRPC listeners
*/
export interface GrpcConnectionPool {
/**
* The maximum requests in the pool
*
* @default - none
*/
readonly maxRequests: number;
}

/**
* Connection pool properties for HTTP2 listeners
*/
export interface Http2ConnectionPool {
/**
* The maximum requests in the pool
*
* @default - none
*/
readonly maxRequests: number;
}
Loading

0 comments on commit d996c6d

Please sign in to comment.