Skip to content

Commit 562860d

Browse files
authoredNov 22, 2020
Update Python Impls to CDK 1.74.0 (#127)
* add script to update python * update cdk version and add http integrations into polly * update cw dashboard to use new integrations class for http api * update cw dashboard to use new system error method and efs to new http api int * update rds credentials * update appsync * make cdk version dynamic in build script * add missing images from alexa skill python * add missing images from alexa skill python
1 parent 780dfa3 commit 562860d

File tree

36 files changed

+284
-179
lines changed

36 files changed

+284
-179
lines changed
 

‎build-python.sh

+23-2
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,37 @@
1+
function getCDKVersion() {
2+
version="1.60.0"
3+
4+
readarray -t requirements <<<"$(<requirements.txt)"
5+
for requirement in "${requirements[@]}"
6+
do
7+
if [[ "$requirement" == aws-cdk.* ]]; then
8+
IFS='==' read -a fields <<<"$requirement"
9+
version=${fields[2]}
10+
break;
11+
fi
12+
done
13+
14+
echo $version
15+
}
16+
117
readarray -t patterns < <(jq -r '.[] | keys | .[]' info.json);
218
for pattern in "${patterns[@]}"
319
do
420
cd $pattern/python;
521
if test -f "requirements.txt"; then
22+
#we want to build with the version of cdk defined in requirements.txt
23+
version=$(getCDKVersion)
624
python3 -m venv .env;
725
source .env/bin/activate;
826
pip3 install -r requirements.txt;
9-
readarray -t stacks < <(npx -q cdk ls);
27+
readarray -t stacks < <(npx -q cdk@${version} ls)
28+
if [[ "${#stacks[@]}" == 0 ]]; then
29+
exit 1
30+
fi
1031
for stack in "${stacks[@]}"
1132
do
1233
echo "npx cdk synth $stack";
13-
npx cdk synth "$stack";
34+
npx cdk@${version} synth "$stack";
1435
done
1536
deactivate
1637
fi

‎polly/python/polly/polly_stack.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from aws_cdk import (
22
aws_lambda as _lambda,
33
aws_apigatewayv2 as api_gw,
4+
aws_apigatewayv2_integrations as integrations,
45
aws_iam as iam,
56
core
67
)
@@ -27,6 +28,6 @@ def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
2728

2829
# defines an API Gateway Http API resource backed by our "efs_lambda" function.
2930
api = api_gw.HttpApi(self, 'Polly',
30-
default_integration=api_gw.LambdaProxyIntegration(handler=polly_lambda))
31+
default_integration=integrations.LambdaProxyIntegration(handler=polly_lambda))
3132

3233
core.CfnOutput(self, 'HTTP API Url', value=api.url)

‎polly/python/requirements.txt

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
-e .
2-
aws-cdk.core==1.60.0
3-
aws-cdk.aws-lambda==1.60.0
4-
aws-cdk.aws-apigatewayv2==1.60.0
5-
aws-cdk.aws-iam==1.60.0
2+
aws-cdk.core==1.74.0
3+
aws-cdk.aws-lambda==1.74.0
4+
aws-cdk.aws-apigatewayv2==1.74.0
5+
aws-cdk.aws-apigatewayv2-integrations==1.74.0
6+
aws-cdk.aws-iam==1.74.0
7+

‎the-alexa-skill/python/img/arch.png

17.3 KB
Loading
Loading
Loading

‎the-alexa-skill/python/lambda_fns/lambda.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
3737
};
3838
exports.__esModule = true;
3939
var ask_sdk_core_1 = require("ask-sdk-core");
40-
var patterns = ['The Destined Lambda', 'The Dynamo Streamer', 'The Big Fan', 'The Cloudwatch Dashboard', 'The S3 Angular Website', 'This pattern that you\'re testing right now: The Alexa Skill'];
40+
var patterns = ['The Destined Lambda', 'The S3 React Website', 'The State Machine', 'The Dynamo Streamer', 'The Lambda Trilogy', 'The Big Fan', 'The Eventbridge Circuit Breaker', 'The Scalable Webhook', 'The Cloudwatch Dashboard', 'The Saga Stepfunction', 'The S3 Angular Website', 'this pattern that you\'re testing right now: The Alexa Skill'];
4141
var ddbAdapter = require('ask-sdk-dynamodb-persistence-adapter');
4242
var USERS_TABLE = process.env.USERS_TABLE || '';
4343
function getPattern(min, max) {
@@ -90,7 +90,7 @@ var PatternListIntentHandler = {
9090
return [4 /*yield*/, attributesManager.savePersistentAttributes()];
9191
case 1:
9292
_a.sent();
93-
speechText = 'I have many patterns for you to see! For example, there is ' + patterns[getPattern(0, 1)] + ', ' + patterns[getPattern(2, 3)] + ' or ' + patterns[getPattern(4, 5)] + '!';
93+
speechText = 'I have many patterns for you to see! For example, there is ' + patterns[getPattern(0, 3)] + ', ' + patterns[getPattern(4, 7)] + ' or ' + patterns[getPattern(8, 11)] + '!';
9494
return [2 /*return*/, handlerInput.responseBuilder
9595
.speak(speechText)
9696
.withSimpleCard('Hello World', speechText)
+7-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
-e .
2-
aws-cdk.core==1.50.0
3-
aws-cdk.aws-lambda==1.50.0
4-
aws-cdk.aws-dynamodb==1.50.0
5-
aws-cdk.alexa-ask==1.50.0
6-
aws-cdk.aws-s3-assets==1.50.0
7-
aws-cdk.aws-iam==1.50.0
2+
aws-cdk.core==1.74.0
3+
aws-cdk.aws-lambda==1.74.0
4+
aws-cdk.aws-dynamodb==1.74.0
5+
aws-cdk.alexa-ask==1.74.0
6+
aws-cdk.aws-s3-assets==1.74.0
7+
aws-cdk.aws-iam==1.74.0
8+

‎the-basic-mq/python/requirements.txt

+11-10
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
-e .
2-
aws-cdk.core==1.51.0
3-
aws-cdk.aws-route53==1.51.0
4-
aws-cdk.aws-route53-targets==1.51.0
5-
aws-cdk.aws-certificatemanager==1.51.0
6-
aws-cdk.aws-ec2==1.51.0
7-
aws-cdk.aws-ssm==1.51.0
8-
aws-cdk.aws-amazonmq==1.51.0
9-
aws-cdk.aws-elasticloadbalancingv2==1.51.0
10-
aws-cdk.aws-elasticloadbalancingv2-targets==1.51.0
11-
aws-cdk.custom-resources==1.51.0
2+
aws-cdk.core==1.74.0
3+
aws-cdk.aws-route53==1.74.0
4+
aws-cdk.aws-route53-targets==1.74.0
5+
aws-cdk.aws-certificatemanager==1.74.0
6+
aws-cdk.aws-ec2==1.74.0
7+
aws-cdk.aws-ssm==1.74.0
8+
aws-cdk.aws-amazonmq==1.74.0
9+
aws-cdk.aws-elasticloadbalancingv2==1.74.0
10+
aws-cdk.aws-elasticloadbalancingv2-targets==1.74.0
11+
aws-cdk.custom-resources==1.74.0
12+

‎the-big-fan/python/requirements.txt

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
-e .
2-
aws-cdk.core==1.60.0
3-
aws-cdk.aws_apigateway==1.60.0
4-
aws-cdk.aws-lambda==1.60.0
5-
aws-cdk.aws-lambda-event-sources==1.60.0
6-
aws-cdk.aws-iam==1.60.0
7-
aws-cdk.aws-sns==1.60.0
8-
aws-cdk.aws-sns-subscriptions==1.60.0
9-
aws-cdk.aws-sqs==1.60.0
2+
aws-cdk.core==1.74.0
3+
aws-cdk.aws_apigateway==1.74.0
4+
aws-cdk.aws-lambda==1.74.0
5+
aws-cdk.aws-lambda-event-sources==1.74.0
6+
aws-cdk.aws-iam==1.74.0
7+
aws-cdk.aws-sns==1.74.0
8+
aws-cdk.aws-sns-subscriptions==1.74.0
9+
aws-cdk.aws-sqs==1.74.0
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
-e .
2-
aws-cdk.core==1.60.0
3-
aws-cdk.aws_apigatewayv2==1.60.0
4-
aws-cdk.aws-lambda==1.60.0
5-
aws-cdk.aws-dynamodb==1.60.0
6-
aws-cdk.aws-sns==1.60.0
7-
aws-cdk.aws-cloudwatch==1.60.0
8-
aws-cdk.aws-cloudwatch-actions==1.60.0
2+
aws-cdk.core==1.74.0
3+
aws-cdk.aws_apigatewayv2==1.74.0
4+
aws-cdk.aws-apigatewayv2-integrations==1.74.0
5+
aws-cdk.aws-lambda==1.74.0
6+
aws-cdk.aws-dynamodb==1.74.0
7+
aws-cdk.aws-sns==1.74.0
8+
aws-cdk.aws-cloudwatch==1.74.0
9+
aws-cdk.aws-cloudwatch-actions==1.74.0

‎the-cloudwatch-dashboard/python/the_cloudwatch_dashboard/the_cloudwatch_dashboard_stack.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from aws_cdk import (
22
aws_lambda as _lambda,
33
aws_apigatewayv2 as api_gw,
4+
aws_apigatewayv2_integrations as integrations,
45
aws_dynamodb as dynamo_db,
56
aws_sns as sns,
67
aws_cloudwatch as cloud_watch,
@@ -43,7 +44,7 @@ def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
4344

4445
# defines an API Gateway Http API resource backed by our "dynamoLambda" function.
4546
api = api_gw.HttpApi(self, 'HttpAPI',
46-
default_integration=api_gw.LambdaProxyIntegration(handler=dynamo_lambda));
47+
default_integration=integrations.LambdaProxyIntegration(handler=dynamo_lambda));
4748

4849
core.CfnOutput(self, 'HTTP API Url', value=api.url);
4950

@@ -109,7 +110,7 @@ def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
109110
label="DynamoDB Errors",
110111
using_metrics={
111112
"m1": table.metric_user_errors(),
112-
"m2": table.metric_system_errors(),
113+
"m2": table.metric_system_errors_for_operations(),
113114
},
114115
period=core.Duration.minutes(5))
115116

+9-9
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
-e .
2-
aws-cdk.core==1.60.0
3-
aws-cdk.aws-lambda==1.60.0
4-
aws-cdk.aws-iam==1.60.0
5-
aws-cdk.aws-events==1.60.0
6-
aws-cdk.aws-events-targets==1.60.0
7-
aws-cdk.aws-sns==1.60.0
8-
aws-cdk.aws-sns-subscriptions==1.60.0
9-
aws-cdk.aws-lambda-destinations==1.60.0
10-
aws-cdk.aws_apigateway==1.60.0
2+
aws-cdk.core==1.74.0
3+
aws-cdk.aws-lambda==1.74.0
4+
aws-cdk.aws-iam==1.74.0
5+
aws-cdk.aws-events==1.74.0
6+
aws-cdk.aws-events-targets==1.74.0
7+
aws-cdk.aws-sns==1.74.0
8+
aws-cdk.aws-sns-subscriptions==1.74.0
9+
aws-cdk.aws-lambda-destinations==1.74.0
10+
aws-cdk.aws_apigateway==1.74.0
+6-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
-e .
2-
aws-cdk.core==1.60.0
3-
aws-cdk.aws-dynamodb==1.60.0
4-
aws-cdk.aws_apigateway==1.60.0
5-
aws-cdk.aws-lambda==1.60.0
6-
aws-cdk.aws-lambda-event-sources==1.60.0
7-
aws-cdk.aws-iam==1.60.0
2+
aws-cdk.core==1.74.0
3+
aws-cdk.aws-dynamodb==1.74.0
4+
aws-cdk.aws_apigateway==1.74.0
5+
aws-cdk.aws-lambda==1.74.0
6+
aws-cdk.aws-lambda-event-sources==1.74.0
7+
aws-cdk.aws-iam==1.74.0
+6-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
-e .
2-
aws-cdk.core==1.60.0
3-
aws-cdk.aws-apigatewayv2==1.60.0
4-
aws-cdk.aws-ec2==1.60.0
5-
aws-cdk.aws-lambda==1.60.0
6-
aws-cdk.aws-efs==1.60.0
2+
aws-cdk.core==1.74.0
3+
aws-cdk.aws-apigatewayv2==1.74.0
4+
aws-cdk.aws-apigatewayv2-integrations==1.74.0
5+
aws-cdk.aws-ec2==1.74.0
6+
aws-cdk.aws-lambda==1.74.0
7+
aws-cdk.aws-efs==1.74.0

‎the-efs-lambda/python/the_efs_lambda/the_efs_lambda_stack.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from aws_cdk import (
22
aws_lambda as _lambda,
33
aws_apigatewayv2 as api_gw,
4+
aws_apigatewayv2_integrations as integrations,
45
aws_ec2 as ec2,
56
aws_efs as efs,
67
core
@@ -34,6 +35,6 @@ def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
3435

3536
# defines an API Gateway Http API resource backed by our "efs_lambda" function.
3637
api = api_gw.HttpApi(self, 'EFS Lambda',
37-
default_integration=api_gw.LambdaProxyIntegration(handler=efs_lambda));
38+
default_integration=integrations.LambdaProxyIntegration(handler=efs_lambda));
3839

3940
core.CfnOutput(self, 'HTTP API Url', value=api.url);
+7-7
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
-e .
2-
aws-cdk.core==1.60.0
3-
aws-cdk.aws-iam==1.60.0
4-
aws-cdk.aws-lambda==1.60.0
5-
aws-cdk.aws-lambda-event-sources==1.60.0
6-
aws-cdk.aws-events-targets==1.60.0
7-
aws-cdk.aws-events==1.60.0
8-
aws-cdk.aws_apigateway==1.60.0
2+
aws-cdk.core==1.74.0
3+
aws-cdk.aws-iam==1.74.0
4+
aws-cdk.aws-lambda==1.74.0
5+
aws-cdk.aws-lambda-event-sources==1.74.0
6+
aws-cdk.aws-events-targets==1.74.0
7+
aws-cdk.aws-events==1.74.0
8+
aws-cdk.aws_apigateway==1.74.0
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
-e .
2-
aws-cdk.core==1.60.0
3-
aws-cdk.aws-iam==1.60.0
4-
aws-cdk.aws_apigateway==1.60.0
5-
aws-cdk.aws-lambda==1.60.0
6-
aws-cdk.aws-dynamodb==1.60.0
7-
aws-cdk.aws-events-targets==1.60.0
8-
aws-cdk.aws-events==1.60.0
2+
aws-cdk.core==1.74.0
3+
aws-cdk.aws-iam==1.74.0
4+
aws-cdk.aws_apigateway==1.74.0
5+
aws-cdk.aws-lambda==1.74.0
6+
aws-cdk.aws-dynamodb==1.74.0
7+
aws-cdk.aws-events-targets==1.74.0
8+
aws-cdk.aws-events==1.74.0
+13-13
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
-e .
2-
aws-cdk.core==1.60.0
3-
aws-cdk.aws-lambda==1.60.0
4-
aws-cdk.aws-lambda-event-sources==1.60.0
5-
aws-cdk.aws-dynamodb==1.60.0
6-
aws-cdk.aws-s3==1.60.0
7-
aws-cdk.aws-sqs==1.60.0
8-
aws-cdk.aws-s3-notifications==1.60.0
9-
aws-cdk.aws-iam==1.60.0
10-
aws-cdk.aws-ec2==1.60.0
11-
aws-cdk.aws-ecs==1.60.0
12-
aws-cdk.aws-logs==1.60.0
13-
aws-cdk.aws-events==1.60.0
14-
aws-cdk.aws-events-targets==1.60.0
2+
aws-cdk.core==1.74.0
3+
aws-cdk.aws-lambda==1.74.0
4+
aws-cdk.aws-lambda-event-sources==1.74.0
5+
aws-cdk.aws-dynamodb==1.74.0
6+
aws-cdk.aws-s3==1.74.0
7+
aws-cdk.aws-sqs==1.74.0
8+
aws-cdk.aws-s3-notifications==1.74.0
9+
aws-cdk.aws-iam==1.74.0
10+
aws-cdk.aws-ec2==1.74.0
11+
aws-cdk.aws-ecs==1.74.0
12+
aws-cdk.aws-logs==1.74.0
13+
aws-cdk.aws-events==1.74.0
14+
aws-cdk.aws-events-targets==1.74.0
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,50 @@
11
'use strict';
2-
const CircuitBreaker = require('circuitbreaker-lambda');
3-
let message;
4-
const options = {
2+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4+
return new (P || (P = Promise))(function (resolve, reject) {
5+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8+
step((generator = generator.apply(thisArg, _arguments || [])).next());
9+
});
10+
};
11+
var __generator = (this && this.__generator) || function (thisArg, body) {
12+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14+
function verb(n) { return function (v) { return step([n, v]); }; }
15+
function step(op) {
16+
if (f) throw new TypeError("Generator is already executing.");
17+
while (_) try {
18+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19+
if (y = 0, t) op = [op[0] & 2, t.value];
20+
switch (op[0]) {
21+
case 0: case 1: t = op; break;
22+
case 4: _.label++; return { value: op[1], done: false };
23+
case 5: _.label++; y = op[1]; op = [0]; continue;
24+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
25+
default:
26+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30+
if (t[2]) _.ops.pop();
31+
_.trys.pop(); continue;
32+
}
33+
op = body.call(thisArg, _);
34+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36+
}
37+
};
38+
var CircuitBreaker = require('circuitbreaker-lambda');
39+
var message;
40+
var options = {
541
fallback: fallbackFunction,
642
failureThreshold: 3,
743
successThreshold: 2,
844
timeout: 10000
945
};
1046
function unreliableFunction() {
11-
return new Promise((resolve, reject) => {
47+
return new Promise(function (resolve, reject) {
1248
if (Math.random() < 0.6) {
1349
resolve({ data: 'Success' });
1450
message = 'Success';
@@ -20,20 +56,27 @@ function unreliableFunction() {
2056
});
2157
}
2258
function fallbackFunction() {
23-
return new Promise((resolve, reject) => {
59+
return new Promise(function (resolve, reject) {
2460
resolve({ data: 'Expensive Fallback Successful' });
2561
message = 'Fallback';
2662
});
2763
}
28-
exports.handler = async (event) => {
29-
const circuitBreaker = new CircuitBreaker(unreliableFunction, options);
30-
await circuitBreaker.fire();
31-
const response = {
32-
statusCode: 200,
33-
body: JSON.stringify({
34-
message: message
35-
})
36-
};
37-
return response;
38-
};
39-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5yZWxpYWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInVucmVsaWFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsWUFBWSxDQUFBO0FBQ1osTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUE7QUFDdkQsSUFBSSxPQUFjLENBQUE7QUFFbEIsTUFBTSxPQUFPLEdBQUc7SUFDZCxRQUFRLEVBQUUsZ0JBQWdCO0lBQzFCLGdCQUFnQixFQUFFLENBQUM7SUFDbkIsZ0JBQWdCLEVBQUUsQ0FBQztJQUNuQixPQUFPLEVBQUUsS0FBSztDQUNmLENBQUE7QUFFRCxTQUFTLGtCQUFrQjtJQUN6QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ3JDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsRUFBRTtZQUN2QixPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQTtZQUM1QixPQUFPLEdBQUcsU0FBUyxDQUFBO1NBQ3BCO2FBQU07WUFDTCxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQTtZQUMxQixPQUFPLEdBQUcsUUFBUSxDQUFBO1NBQ25CO0lBQ0gsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDO0FBQ0QsU0FBUyxnQkFBZ0I7SUFDdkIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNyQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsK0JBQStCLEVBQUUsQ0FBQyxDQUFBO1FBQ2xELE9BQU8sR0FBRyxVQUFVLENBQUE7SUFDdEIsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQsT0FBTyxDQUFDLE9BQU8sR0FBRyxLQUFLLEVBQUUsS0FBUyxFQUFFLEVBQUU7SUFDcEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDdEUsTUFBTSxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDM0IsTUFBTSxRQUFRLEdBQUc7UUFDZixVQUFVLEVBQUUsR0FBRztRQUNmLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ25CLE9BQU8sRUFBRSxPQUFPO1NBQ2pCLENBQUM7S0FDSCxDQUFBO0lBQ0QsT0FBTyxRQUFRLENBQUE7QUFDakIsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiXG4ndXNlIHN0cmljdCdcbmNvbnN0IENpcmN1aXRCcmVha2VyID0gcmVxdWlyZSgnY2lyY3VpdGJyZWFrZXItbGFtYmRhJylcbmxldCBtZXNzYWdlOnN0cmluZ1xuXG5jb25zdCBvcHRpb25zID0ge1xuICBmYWxsYmFjazogZmFsbGJhY2tGdW5jdGlvbixcbiAgZmFpbHVyZVRocmVzaG9sZDogMyxcbiAgc3VjY2Vzc1RocmVzaG9sZDogMixcbiAgdGltZW91dDogMTAwMDBcbn1cblxuZnVuY3Rpb24gdW5yZWxpYWJsZUZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBpZiAoTWF0aC5yYW5kb20oKSA8IDAuNikge1xuICAgICAgcmVzb2x2ZSh7IGRhdGE6ICdTdWNjZXNzJyB9KVxuICAgICAgbWVzc2FnZSA9ICdTdWNjZXNzJ1xuICAgIH0gZWxzZSB7XG4gICAgICByZWplY3QoeyBkYXRhOiAnRmFpbGVkJyB9KVxuICAgICAgbWVzc2FnZSA9ICdGYWlsZWQnXG4gICAgfVxuICB9KVxufVxuZnVuY3Rpb24gZmFsbGJhY2tGdW5jdGlvbiAoKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgcmVzb2x2ZSh7IGRhdGE6ICdFeHBlbnNpdmUgRmFsbGJhY2sgU3VjY2Vzc2Z1bCcgfSlcbiAgICBtZXNzYWdlID0gJ0ZhbGxiYWNrJ1xuICB9KVxufVxuXG5leHBvcnRzLmhhbmRsZXIgPSBhc3luYyAoZXZlbnQ6YW55KSA9PiB7XG4gIGNvbnN0IGNpcmN1aXRCcmVha2VyID0gbmV3IENpcmN1aXRCcmVha2VyKHVucmVsaWFibGVGdW5jdGlvbiwgb3B0aW9ucylcbiAgYXdhaXQgY2lyY3VpdEJyZWFrZXIuZmlyZSgpXG4gIGNvbnN0IHJlc3BvbnNlID0ge1xuICAgIHN0YXR1c0NvZGU6IDIwMCxcbiAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICBtZXNzYWdlOiBtZXNzYWdlXG4gICAgfSlcbiAgfVxuICByZXR1cm4gcmVzcG9uc2Vcbn1cbiJdfQ==
64+
exports.handler = function (event) { return __awaiter(void 0, void 0, void 0, function () {
65+
var circuitBreaker, response;
66+
return __generator(this, function (_a) {
67+
switch (_a.label) {
68+
case 0:
69+
circuitBreaker = new CircuitBreaker(unreliableFunction, options);
70+
return [4 /*yield*/, circuitBreaker.fire()];
71+
case 1:
72+
_a.sent();
73+
response = {
74+
statusCode: 200,
75+
body: JSON.stringify({
76+
message: message
77+
})
78+
};
79+
return [2 /*return*/, response];
80+
}
81+
});
82+
}); };
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
-e .
2-
aws-cdk.core==1.67.0
3-
aws-cdk.aws_apigatewayv2==1.67.0
4-
aws-cdk.aws-lambda==1.67.0
5-
aws-cdk.aws-dynamodb==1.67.0
2+
aws-cdk.core==1.74.0
3+
aws-cdk.aws_apigatewayv2==1.74.0
4+
aws-cdk.aws-apigatewayv2-integrations==1.74.0
5+
aws-cdk.aws-lambda==1.74.0
6+
aws-cdk.aws-dynamodb==1.74.0

‎the-lambda-circuit-breaker/python/the_lambda_circuit_breaker/the_lambda_circuit_breaker_stack.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from aws_cdk import (
22
aws_lambda as _lambda,
33
aws_apigatewayv2 as api_gw,
4+
aws_apigatewayv2_integrations as integrations,
45
aws_dynamodb as dynamo_db,
56
core
67
)
@@ -40,6 +41,6 @@ def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
4041

4142
# defines an API Gateway Http API resource backed by our "dynamoLambda" function.
4243
api = api_gw.HttpApi(self, 'CircuitBreakerGateway',
43-
default_integration=api_gw.LambdaProxyIntegration(handler=unreliable_lambda));
44+
default_integration=integrations.LambdaProxyIntegration(handler=unreliable_lambda));
4445

4546
core.CfnOutput(self, 'HTTP API Url', value=api.url);
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
-e .
2-
aws-cdk.core==1.60.0
3-
aws-cdk.aws-sam==1.60.0
4-
aws-cdk.aws-lambda==1.60.0
2+
aws-cdk.core==1.74.0
3+
aws-cdk.aws-sam==1.74.0
4+
aws-cdk.aws-lambda==1.74.0
+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
-e .
2-
aws-cdk.core==1.60.0
3-
aws-cdk.aws-lambda==1.60.0
4-
aws-cdk.aws-apigateway==1.60.0
2+
aws-cdk.core==1.74.0
3+
aws-cdk.aws-lambda==1.74.0
4+
aws-cdk.aws-apigateway==1.74.0

‎the-rds-proxy/python/requirements.txt

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
-e .
2-
aws-cdk.core==1.56.0
3-
aws-cdk.aws-ec2==1.56.0
4-
aws-cdk.aws-rds==1.56.0
5-
aws-cdk.aws-secretsmanager==1.56.0
6-
aws-cdk.aws-ssm==1.56.0
7-
aws-cdk.aws-lambda==1.56.0
8-
aws-cdk.aws-apigatewayv2==1.56.0
2+
aws-cdk.core==1.74.0
3+
aws-cdk.aws-ec2==1.74.0
4+
aws-cdk.aws-rds==1.74.0
5+
aws-cdk.aws-secretsmanager==1.74.0
6+
aws-cdk.aws-ssm==1.74.0
7+
aws-cdk.aws-lambda==1.74.0
8+
aws-cdk.aws-apigatewayv2==1.74.0
9+
aws-cdk.aws-apigatewayv2-integrations==1.74.0

‎the-rds-proxy/python/the_rds_proxy/the_rds_proxy_stack.py

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from aws_cdk import (
22
aws_lambda as _lambda,
33
aws_apigatewayv2 as api_gw,
4+
aws_apigatewayv2_integrations as integrations,
45
aws_ec2 as ec2,
56
aws_rds as rds,
67
aws_secretsmanager as secrets,
@@ -44,10 +45,7 @@ def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
4445
'DBInstance',
4546
engine=rds.DatabaseInstanceEngine.mysql(
4647
version=rds.MysqlEngineVersion.VER_5_7_30),
47-
master_username=
48-
db_credentials_secret.secret_value_from_json('username').to_string(),
49-
master_user_password=
50-
db_credentials_secret.secret_value_from_json('password'),
48+
credentials=rds.Credentials.from_secret(db_credentials_secret),
5149
instance_type=
5250
ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE2, ec2.InstanceSize.SMALL),
5351
vpc=vpc,
@@ -81,6 +79,6 @@ def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
8179

8280
# defines an API Gateway Http API resource backed by our "dynamoLambda" function.
8381
api = api_gw.HttpApi(self, 'Endpoint',
84-
default_integration=api_gw.LambdaProxyIntegration(handler=rds_lambda));
82+
default_integration=integrations.LambdaProxyIntegration(handler=rds_lambda));
8583

8684
core.CfnOutput(self, 'HTTP API Url', value=api.url);
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
-e .
2-
aws-cdk.core==1.60.0
3-
aws-cdk.aws_apigateway==1.60.0
4-
aws-cdk.aws-lambda==1.60.0
5-
aws-cdk.aws-dynamodb==1.60.0
6-
aws-cdk.aws-stepfunctions==1.60.0
7-
aws-cdk.aws-stepfunctions-tasks==1.60.0
2+
aws-cdk.core==1.74.0
3+
aws-cdk.aws_apigateway==1.74.0
4+
aws-cdk.aws-lambda==1.74.0
5+
aws-cdk.aws-dynamodb==1.74.0
6+
aws-cdk.aws-stepfunctions==1.74.0
7+
aws-cdk.aws-stepfunctions-tasks==1.74.0
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
-e .
2-
aws-cdk.core==1.60.0
3-
aws-cdk.aws_apigateway==1.60.0
4-
aws-cdk.aws-lambda==1.60.0
5-
aws-cdk.aws-dynamodb==1.60.0
6-
aws-cdk.aws-sqs==1.60.0
7-
aws-cdk.aws-lambda-event-sources==1.60.0
2+
aws-cdk.core==1.74.0
3+
aws-cdk.aws_apigateway==1.74.0
4+
aws-cdk.aws-lambda==1.74.0
5+
aws-cdk.aws-dynamodb==1.74.0
6+
aws-cdk.aws-sqs==1.74.0
7+
aws-cdk.aws-lambda-event-sources==1.74.0
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
-e .
2-
aws-cdk.core==1.60.0
3-
aws-cdk.aws_appsync==1.60.0
4-
aws-cdk.aws-lambda==1.60.0
5-
aws-cdk.aws-cognito==1.60.0
6-
aws-cdk.aws-dynamodb==1.60.0
7-
path==13.1.0
2+
aws-cdk.core==1.74.0
3+
aws-cdk.aws_appsync==1.74.0
4+
aws-cdk.aws-lambda==1.74.0
5+
aws-cdk.aws-cognito==1.74.0
6+
aws-cdk.aws-dynamodb==1.74.0
7+
path==13.1.0

‎the-simple-graphql-service/python/the_simple_graphql_service/the_simple_graphql_service_stack.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,20 @@
44
aws_dynamodb as dynamo_db,
55
core
66
)
7+
import os
78

89

910
class TheSimpleGraphqlServiceStack(core.Stack):
1011
def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
1112
super().__init__(scope, id, **kwargs)
13+
14+
schema_location = os.path.dirname(os.path.realpath(__file__)) + "/../schema/schema.graphql"
1215

1316
# Create a new AppSync GraphQL API
14-
api = appsync.GraphQLApi(self, 'Api',
17+
api = appsync.GraphqlApi(self, 'Api',
1518
name="demoapi",
1619
log_config=appsync.LogConfig(field_log_level=appsync.FieldLogLevel.ALL),
17-
schema_definition=appsync.SchemaDefinition.FILE,
18-
schema_definition_file="schema/schema.graphql"
20+
schema=appsync.Schema.from_asset(schema_location)
1921
)
2022

2123
api_key = appsync.CfnApiKey(self, 'the-simple-graphql-service-api-key',
@@ -108,7 +110,7 @@ def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
108110

109111
# GraphQL API Endpoint
110112
core.CfnOutput(self, 'Endpoint',
111-
value=api.graph_ql_url
113+
value=api.graphql_url
112114
)
113115

114116
# API Key
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
-e .
2-
aws-cdk.core==1.60.0
3-
aws-cdk.aws_apigatewayv2==1.60.0
4-
aws-cdk.aws-lambda==1.60.0
5-
aws-cdk.aws-dynamodb==1.60.0
6-
path==13.1.0
2+
aws-cdk.core==1.74.0
3+
aws-cdk.aws_apigatewayv2==1.74.0
4+
aws-cdk.aws-apigatewayv2-integrations==1.74.0
5+
aws-cdk.aws-lambda==1.74.0
6+
aws-cdk.aws-dynamodb==1.74.0
7+
path==13.1.0

‎the-simple-webservice/python/the_simple_webservice/the_simple_webservice_stack.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from aws_cdk import (
22
aws_lambda as _lambda,
33
aws_apigatewayv2 as api_gw,
4+
aws_apigatewayv2_integrations as integrations,
45
aws_dynamodb as dynamo_db,
56
core
67
)
@@ -30,6 +31,6 @@ def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
3031

3132

3233
# defines an API Gateway Http API resource backed by our "dynamoLambda" function.
33-
api = api_gw.HttpApi(self, 'Endpoint', default_integration=api_gw.LambdaProxyIntegration(handler=dynamo_lambda));
34+
api = api_gw.HttpApi(self, 'Endpoint', default_integration=integrations.LambdaProxyIntegration(handler=dynamo_lambda));
3435

3536
core.CfnOutput(self, 'HTTP API Url', value=api.url);
+6-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
-e .
2-
aws-cdk.core==1.60.0
3-
aws-cdk.aws-lambda==1.60.0
4-
aws-cdk.aws-stepfunctions==1.60.0
5-
aws-cdk.aws-stepfunctions-tasks==1.60.0
6-
aws-cdk.aws-sqs==1.60.0
7-
aws-cdk.aws_apigateway==1.60.0
2+
aws-cdk.core==1.74.0
3+
aws-cdk.aws-lambda==1.74.0
4+
aws-cdk.aws-stepfunctions==1.74.0
5+
aws-cdk.aws-stepfunctions-tasks==1.74.0
6+
aws-cdk.aws-sqs==1.74.0
7+
aws-cdk.aws_apigateway==1.74.0
+6-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
-e .
2-
aws-cdk.core==1.72.0
3-
aws-cdk.aws_apigateway==1.72.0
4-
aws-cdk.aws_iam==1.72.0
5-
aws-cdk.aws_lambda==1.72.0
6-
aws-cdk.aws_cloudformation==1.72.0
7-
aws-cdk.aws_wafv2==1.72.0
2+
aws-cdk.core==1.74.0
3+
aws-cdk.aws_apigateway==1.74.0
4+
aws-cdk.aws_iam==1.74.0
5+
aws-cdk.aws_lambda==1.74.0
6+
aws-cdk.aws_cloudformation==1.74.0
7+
aws-cdk.aws_wafv2==1.74.0
+9-9
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
-e .
2-
aws-cdk.core==1.60.0
3-
aws-cdk.aws-iam==1.60.0
4-
aws-cdk.aws-lambda==1.60.0
5-
aws-cdk.aws_apigateway==1.60.0
6-
aws-cdk.aws-sns==1.60.0
7-
aws-cdk.aws-sns-subscriptions==1.60.0
8-
aws-cdk.aws-dynamodb==1.60.0
9-
aws-cdk.aws-sqs==1.60.0
10-
aws-cdk.aws-lambda-event-sources==1.60.0
2+
aws-cdk.core==1.74.0
3+
aws-cdk.aws-iam==1.74.0
4+
aws-cdk.aws-lambda==1.74.0
5+
aws-cdk.aws_apigateway==1.74.0
6+
aws-cdk.aws-sns==1.74.0
7+
aws-cdk.aws-sns-subscriptions==1.74.0
8+
aws-cdk.aws-dynamodb==1.74.0
9+
aws-cdk.aws-sqs==1.74.0
10+
aws-cdk.aws-lambda-event-sources==1.74.0

‎update-python.sh

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
readarray -t patterns < <(jq -r '.[] | keys | .[]' info.json);
2+
3+
pythonPackage=aws-cdk.core;
4+
version=$(curl -Ls https://pypi.org/pypi/$pythonPackage/json | jq -r .info.version)
5+
echo "latest version is $version"
6+
7+
for pattern in "${patterns[@]}"
8+
do
9+
cd $pattern/python;
10+
if test -f "requirements.txt"; then
11+
echo "updating $pattern"
12+
#initialize empty array for new requirements
13+
updatedReqs=()
14+
readarray -t requirements <<<"$(<requirements.txt)"
15+
for requirement in "${requirements[@]}"
16+
do
17+
if [[ "$requirement" == aws-cdk.* ]]; then
18+
IFS='==' read -a fields <<<"$requirement"
19+
updatedReqs+=("${fields[0]}==$version")
20+
else updatedReqs+=("$requirement")
21+
fi
22+
done
23+
var=$( IFS=$'\n'; echo "${updatedReqs[*]}" )
24+
echo "$var" >| requirements.txt
25+
fi
26+
cd ../../;
27+
done

0 commit comments

Comments
 (0)
Please sign in to comment.