Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if (!props.target.connections.defaultPort) {
throw new Error('The `target` connections must have a default port range.');
}
const rotationFunctionName = this.node.uniqueId;
const securityGroup = new ec2.SecurityGroup(this, 'SecurityGroup', {
vpc: props.vpc
});
const { subnetIds } = props.vpc.selectSubnets(props.vpcSubnets);
props.target.connections.allowDefaultPortFrom(securityGroup);
const application = new serverless.CfnApplication(this, 'Resource', {
location: props.application,
parameters: {
endpoint: `https://secretsmanager.${Stack.of(this).region}.${Stack.of(this).urlSuffix}`,
functionName: rotationFunctionName,
vpcSecurityGroupIds: securityGroup.securityGroupId,
vpcSubnetIds: subnetIds.join(',')
}
});
// Dummy import to reference this function in the rotation schedule
const rotationLambda = lambda.Function.fromFunctionArn(this, 'RotationLambda', Stack.of(this).formatArn({
service: 'lambda',
resource: 'function',
sep: ':',
resourceName: rotationFunctionName
}));
constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
const tableName = 'twitchViewers';
const primaryKeyName = 'viewerId';
const table = new Table(this, 'viewers-table', {
tableName: tableName,
partitionKey: {
name: primaryKeyName,
type: AttributeType.String
},
billingMode: BillingMode.PayPerRequest
});
const api = new CfnApi(this, 'viewersApi', {
stageName: 'prod',
cors: '"*"'
});
new CfnFunction(this, 'SaveToDynamoDB', {
codeUri: new AssetCode('src').path,
handler: 'index.handler',
runtime: 'nodejs8.10',
environment: {
variables: {
TABLE_NAME: table.tableName,
PRIMARY_KEY: primaryKeyName
}
},
policies: `
- DynamoDBCrudPolicy:
constructor(scope, id, props) {
super(scope, id, props);
const tableName = 'twitchViewers';
const primaryKeyName = 'viewerId';
const table = new aws_dynamodb_1.Table(this, 'viewers-table', {
tableName: tableName,
partitionKey: {
name: primaryKeyName,
type: aws_dynamodb_1.AttributeType.String
},
billingMode: aws_dynamodb_1.BillingMode.PayPerRequest
});
const api = new aws_sam_1.CfnApi(this, 'viewersApi', {
stageName: 'prod',
cors: '"*"'
});
new aws_sam_1.CfnFunction(this, 'SaveToDynamoDB', {
codeUri: new aws_lambda_1.AssetCode('src').path,
handler: 'index.handler',
runtime: 'nodejs8.10',
environment: {
variables: {
TABLE_NAME: table.tableName,
PRIMARY_KEY: primaryKeyName
}
},
policies: `
- DynamoDBCrudPolicy:
TableName: ${tableName}`,
constructor(scope: cdk.Construct, id: string) {
super(scope, id)
new CfnApplication(scope, `${id}App`, {
location: {
applicationId:
'arn:aws:serverlessrepo:us-east-1:923120264911:applications/pipeline-dashboard',
semanticVersion: '0.0.7'
},
parameters: {
PipelinePattern: '*'
}
})
}
}
const primaryKeyName = 'viewerId';
const table = new Table(this, 'viewers-table', {
tableName: tableName,
partitionKey: {
name: primaryKeyName,
type: AttributeType.String
},
billingMode: BillingMode.PayPerRequest
});
const api = new CfnApi(this, 'viewersApi', {
stageName: 'prod',
cors: '"*"'
});
new CfnFunction(this, 'SaveToDynamoDB', {
codeUri: new AssetCode('src').path,
handler: 'index.handler',
runtime: 'nodejs8.10',
environment: {
variables: {
TABLE_NAME: table.tableName,
PRIMARY_KEY: primaryKeyName
}
},
policies: `
- DynamoDBCrudPolicy:
TableName: ${tableName}`,
events: {
save: {
type: 'Api',
properties: {
super(scope, id, props);
const tableName = 'twitchViewers';
const primaryKeyName = 'viewerId';
const table = new aws_dynamodb_1.Table(this, 'viewers-table', {
tableName: tableName,
partitionKey: {
name: primaryKeyName,
type: aws_dynamodb_1.AttributeType.String
},
billingMode: aws_dynamodb_1.BillingMode.PayPerRequest
});
const api = new aws_sam_1.CfnApi(this, 'viewersApi', {
stageName: 'prod',
cors: '"*"'
});
new aws_sam_1.CfnFunction(this, 'SaveToDynamoDB', {
codeUri: new aws_lambda_1.AssetCode('src').path,
handler: 'index.handler',
runtime: 'nodejs8.10',
environment: {
variables: {
TABLE_NAME: table.tableName,
PRIMARY_KEY: primaryKeyName
}
},
policies: `
- DynamoDBCrudPolicy:
TableName: ${tableName}`,
events: {
save: {
type: 'Api',
properties: {