constructor()

in userreg-api-node-beanstalk/cdk/lib/cdk-stack.ts [22:65]


  constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    // The code that defines your stack goes here
    const table = new dynamodb.Table(this, 'signup', {
      partitionKey: { 
        name: 'email', 
        type: dynamodb.AttributeType.STRING 
      },
      tableName: 'signup',
      // The default removal policy is RETAIN, which means that cdk destroy will not attempt to delete
      // the new table, and it will remain in your account until manually deleted. By setting the policy to 
      // DESTROY, cdk destroy will delete the table (even if it has data in it)
      removalPolicy: cdk.RemovalPolicy.DESTROY, // NOT recommended for production code
    });

    const ecrRepo = new ecr.Repository(this, 'user-reg-db');

    const ecrRepoSNS = new ecr.Repository(this, 'user-reg-sns');

    const beanstalkEC2Instancerole = new Role(this, 'aws-elasticbeanstalk-ec2-role', {
      assumedBy: new ServicePrincipal('ec2.amazonaws.com'),
      roleName: 'aws-elasticbeanstalk-ec2-role'
    });
    beanstalkEC2Instancerole.addManagedPolicy(ManagedPolicy.fromAwsManagedPolicyName('AmazonEC2ContainerRegistryFullAccess'));
    beanstalkEC2Instancerole.addManagedPolicy(ManagedPolicy.fromAwsManagedPolicyName('AmazonDynamoDBFullAccess'));
    beanstalkEC2Instancerole.addManagedPolicy(ManagedPolicy.fromAwsManagedPolicyName('AWSElasticBeanstalkWebTier'));
    beanstalkEC2Instancerole.addManagedPolicy(ManagedPolicy.fromAwsManagedPolicyName('AWSElasticBeanstalkMulticontainerDocker'));
    beanstalkEC2Instancerole.addManagedPolicy(ManagedPolicy.fromAwsManagedPolicyName('AWSElasticBeanstalkWorkerTier'));
    beanstalkEC2Instancerole.addManagedPolicy(ManagedPolicy.fromAwsManagedPolicyName('AmazonSNSFullAccess'));

    const beanstalkEC2Instance = new CfnInstanceProfile(this, "InstanceProfile", {
      roles: [beanstalkEC2Instancerole.roleName],
      instanceProfileName: 'aws-elasticbeanstalk-ec2-role'
    });

    const beanstalkServicerole = new Role(this, 'aws-elasticbeanstalk-service-role', {
      assumedBy: new ServicePrincipal('elasticbeanstalk.amazonaws.com'),
      roleName: 'aws-elasticbeanstalk-service-role'
    });
    beanstalkServicerole.addManagedPolicy(ManagedPolicy.fromAwsManagedPolicyName('service-role/AWSElasticBeanstalkEnhancedHealth'));
    beanstalkServicerole.addManagedPolicy(ManagedPolicy.fromAwsManagedPolicyName('service-role/AWSElasticBeanstalkService'));

  }