Skip to content

Commit

Permalink
Replace AWS JS SDK v2 to v3 in demo and migrate from chime client sdk
Browse files Browse the repository at this point in the history
  • Loading branch information
trivikr authored and ltrung committed Dec 1, 2023
1 parent af6936b commit 26f4a50
Show file tree
Hide file tree
Showing 16 changed files with 7,802 additions and 4,418 deletions.
2,368 changes: 1,219 additions & 1,149 deletions demos/browser/package-lock.json

Large diffs are not rendered by default.

6 changes: 4 additions & 2 deletions demos/browser/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,11 @@
"webpack-dev-server": "^4.9.0"
},
"dependencies": {
"@aws-sdk/client-chime-sdk-messaging": "^3.370.0",
"@aws-sdk/client-chime-sdk-media-pipelines": "^3.441.0",
"@aws-sdk/client-chime-sdk-meetings": "^3.441.0",
"@aws-sdk/client-chime-sdk-messaging": "^3.441.0",
"@aws-sdk/client-sts": "^3.441.0",
"amazon-chime-sdk-js": "file:../..",
"aws-sdk": "^2.1376.0",
"bootstrap": "^5.1.3",
"compression": "^1.7.4",
"jquery": "^3.5.1",
Expand Down
129 changes: 44 additions & 85 deletions demos/browser/server.js

Large diffs are not rendered by default.

35 changes: 12 additions & 23 deletions demos/serverless/deploy.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,13 @@ const path = require("path");

// Parameters
let region = 'us-east-1';
let useChimeSDKMeetings = true;
let bucket = ``;
let artifactBucket = ``;
let stack = ``;
let app = `meetingV2`;
let useEventBridge = false;
let enableTerminationProtection = false;
let disablePrintingLogs = false;
let chimeEndpoint = 'https://service.chime.aws.amazon.com';
let chimeSDKMeetingsEndpoint = 'https://service.chime.aws.amazon.com';
let chimeMediaPipelinesServicePrincipal = 'mediapipelines.chime.amazonaws.com'
let captureOutputPrefix = ''
Expand All @@ -38,15 +36,20 @@ let mediaCaptureRegions = [
// Supported regions for the Amazon Chime SDK Meetings namespace
// https://docs.aws.amazon.com/chime-sdk/latest/dg/sdk-available-regions.html
const supportedControlRegions = [
'ap-south-1',
'ap-northeast-1',
'ap-northeast-2',
'ap-southeast-1',
'ap-southeast-2',
'eu-central-1',
'eu-west-2',
'us-east-1',
'us-west-2',
'ca-central-1',
'us-gov-east-1',
'us-gov-west-1',
];

let useChimeSDKMediaPipelines = true;
let chimeSDKMediaPipelinesEndpoint = 'https://media-pipelines-chime.us-east-1.amazonaws.com';
// Supported regions for the Amazon Chime SDK Media Pipelines namespace
// https://docs.aws.amazon.com/chime-sdk/latest/dg/sdk-available-regions.html#sdk-media-pipelines
Expand All @@ -61,12 +64,10 @@ const supportedMediaPipelinesControlRegions = [
function usage() {
console.log(`Usage: deploy.sh [-r region] [-b bucket] [-s stack] [-a application] [-e]`);
console.log(` -r, --region Target region, default '${region}'`);
console.log(` -u, --use-chime-sdk-meetings Flag to switch between chime and ChimeSDKMeetings client, default '${useChimeSDKMeetings}'`);
console.log(` -b, --s3-bucket S3 bucket for deployment, required`);
console.log(` -s, --stack-name CloudFormation stack name, required`);
console.log(` -a, --application Browser application to deploy, default '${app}'`);
console.log(` -e, --event-bridge Enable EventBridge integration, default is no integration`);
console.log(` -c, --chime-endpoint AWS SDK Chime endpoint, default is '${chimeEndpoint}'`);
console.log(` -p, --service-principal Service principal for media pipelines related resources, default is '${chimeMediaPipelinesServicePrincipal}'`)
console.log(` -t, --enable-termination-protection Enable termination protection for the Cloudformation stack, default is false`);
console.log(` -l, --disable-printing-logs Disable printing logs`);
Expand All @@ -75,7 +76,6 @@ function usage() {
console.log(` -m, --chime-sdk-meetings-endpoint AWS SDK Chime Meetings endpoint`);
console.log(` --chime-sdk-media-pipelines-region Media pipelines control region, default '${mediaPipelinesControlRegion}'`);
console.log(` --chime-sdk-media-pipelines-endpoint AWS SDK Chime Media Pipelines endpoint, default is ${chimeSDKMediaPipelinesEndpoint}`)
console.log(` --use-chime-sdk-media-pipelines Flag to switch between chime and chimeSDKMediaPipelines client, default '${useChimeSDKMediaPipelines}'`);
console.log(` -h, --help Show help and exit`);
}

Expand Down Expand Up @@ -113,9 +113,6 @@ function parseArgs() {
case '-r': case '--region':
region = getArgOrExit(++i, args)
break;
case '-u': case '--use-chime-sdk-meetings':
useChimeSDKMeetings = getArgOrExit(++i, args)
break;
case '-b': case '--s3-bucket':
bucket = getArgOrExit(++i, args)
break;
Expand All @@ -128,9 +125,6 @@ function parseArgs() {
case '-e': case '--event-bridge':
useEventBridge = true;
break;
case '-c': case '--chime-endpoint':
chimeEndpoint = getArgOrExit(++i, args)
break;
case '-p': case '--service-principal':
chimeMediaPipelinesServicePrincipal = getArgOrExit(++i, args)
break;
Expand All @@ -153,9 +147,6 @@ function parseArgs() {
case '--chime-sdk-media-pipelines-endpoint':
chimeSDKMediaPipelinesEndpoint = getArgOrExit(++i, args);
break;
case '--use-chime-sdk-media-pipelines':
useChimeSDKMediaPipelines = getArgOrExit(++i, args);
break;
case '--chime-sdk-media-pipelines-region':
mediaPipelinesControlRegion = getArgOrExit(++i, args);
break;
Expand Down Expand Up @@ -274,16 +265,14 @@ function copyAssets() {
}

function ensureRegion() {
if (useChimeSDKMeetings === 'true') {
if (!(new Set(supportedControlRegions)).has(region)) {
console.error(`Amazon Chime SDK does not support ${region} (control region). Specify one of the following regions: ${supportedControlRegions.join(', ')}.\nSee https://docs.aws.amazon.com/chime-sdk/latest/dg/sdk-available-regions.html for more information.`);
process.exit(1);
}
if (!(new Set(supportedControlRegions)).has(region)) {
console.error(`Amazon Chime SDK does not support ${region} (control region). Specify one of the following regions: ${supportedControlRegions.join(', ')}.\nSee https://docs.aws.amazon.com/chime-sdk/latest/dg/sdk-available-regions.html for more information.`);
process.exit(1);
}
}

function ensureMediaPipelinesRegion() {
if (useChimeSDKMediaPipelines === 'true' && !(new Set(supportedMediaPipelinesControlRegions)).has(region)) {
if (!(new Set(supportedMediaPipelinesControlRegions)).has(region)) {
console.error(`Amazon Chime SDK Media Pipelines does not support ${region} (control region). Specify one of the following regions: ${supportedMediaPipelinesControlRegions.join(', ')}.\nSee https://docs.aws.amazon.com/chime-sdk/latest/dg/sdk-available-regions.html#sdk-media-pipelines for more information.`);
process.exit(1);
}
Expand All @@ -299,7 +288,7 @@ if (!fs.existsSync('build')) {
fs.mkdirSync('build');
}

console.log(`Using region ${region}, useChimeSDKMeetings ${useChimeSDKMeetings}, bucket ${bucket}, stack ${stack}, endpoint ${chimeEndpoint}, enable-termination-protection ${enableTerminationProtection}, disable-printing-logs ${disablePrintingLogs} service-principal ${chimeMediaPipelinesServicePrincipal}`);
console.log(`Using region ${region}, bucket ${bucket}, stack ${stack}, enable-termination-protection ${enableTerminationProtection}, disable-printing-logs ${disablePrintingLogs} service-principal ${chimeMediaPipelinesServicePrincipal}`);
ensureBucket();

copyAssets();
Expand All @@ -309,7 +298,7 @@ spawnOrFail('sam', ['package', '--s3-bucket', `${bucket}`,
`--output-template-file`, `build/packaged.yaml`,
'--region', `${region}`]);
console.log('Deploying serverless application');
let parameterOverrides = `Region=${region} UseChimeSDKMeetings=${useChimeSDKMeetings} UseEventBridge=${useEventBridge} ChimeEndpoint=${chimeEndpoint} ChimeServicePrincipal=${chimeMediaPipelinesServicePrincipal} ChimeSDKMeetingsEndpoint=${chimeSDKMeetingsEndpoint} ChimeSDKMediaPipelinesEndpoint=${chimeSDKMediaPipelinesEndpoint} UseChimeSDKMediaPipelines=${useChimeSDKMediaPipelines} MediaPipelinesControlRegion=${mediaPipelinesControlRegion}`
let parameterOverrides = `Region=${region} UseEventBridge=${useEventBridge} ChimeServicePrincipal=${chimeMediaPipelinesServicePrincipal} ChimeSDKMeetingsEndpoint=${chimeSDKMeetingsEndpoint} ChimeSDKMediaPipelinesEndpoint=${chimeSDKMediaPipelinesEndpoint} MediaPipelinesControlRegion=${mediaPipelinesControlRegion}`
if (app === 'meetingV2' && captureOutputPrefix) {
parameterOverrides += ` ChimeMediaCaptureS3BucketPrefix=${captureOutputPrefix}`;
createCaptureS3Buckets(captureOutputPrefix, mediaCaptureRegions);
Expand Down
Loading

0 comments on commit 26f4a50

Please sign in to comment.