Exemple #1
0
 def get_task_definition(self, security_group):
     task_definition = FargateTaskDefinition(self._stack,
                                             self._name,
                                             memory_limit_mib=512,
                                             cpu=256)
     task_definition.add_volume(
         name=DATA_VOLUME,
         efs_volume_configuration=self.get_volume(security_group))
     image = ContainerImage.from_asset(directory=self._config.docker_dir)
     container = ContainerDefinition(
         self._stack,
         'obm_container',
         task_definition=task_definition,
         image=image,
         environment=self.get_environment(),
         logging=AwsLogDriver(stream_prefix=self._config.service_name),
     )
     container.add_mount_points(self.get_mount_point())
     container.add_port_mappings(
         PortMapping(container_port=HTTP_PORT, host_port=HTTP_PORT),
         PortMapping(container_port=HTTPS_PORT, host_port=HTTPS_PORT),
         PortMapping(container_port=SSH_PORT, host_port=SSH_PORT),
     )
     self._tag_it(container)
     self._tag_it(task_definition)
     return task_definition
Exemple #2
0
 def __init__(self, scope: Construct, _id: str, **kwargs) -> None:
     super().__init__(scope, _id, **kwargs)
     task_definition = FargateTaskDefinition(
         self,
         'TaskDefinition',
         cpu=256,
         memory_limit_mib=512,
         execution_role=Role(
             self,
             'ExecutionRole',
             assumed_by=cast(IPrincipal, ServicePrincipal('ecs-tasks.amazonaws.com'))
         ),
         task_role=Role(
             self,
             'TaskRole',
             assumed_by=cast(IPrincipal, ServicePrincipal('ecs-tasks.amazonaws.com')),
             managed_policies=[
                 ManagedPolicy.from_aws_managed_policy_name('AmazonSESFullAccess')
             ]
         )
     )
     task_definition.add_container(
         'Container',
         image=ContainerImage.from_asset(
             getcwd(),
             file='Dockerfile',
             repository_name='jqbx-bot',
             exclude=['cdk.out']
         ),
         command=['pipenv', 'run', 'python', '-u', '-m', 'src.main'],
         environment={
             'SPOTIFY_USER_ID': environ.get('SPOTIFY_USER_ID'),
             'JQBX_ROOM_ID': environ.get('JQBX_ROOM_ID'),
             'JQBX_BOT_DISPLAY_NAME': environ.get('JQBX_BOT_DISPLAY_NAME'),
             'JQBX_BOT_IMAGE_URL': environ.get('JQBX_BOT_IMAGE_URL'),
             'DATA_SERVICE_BASE_URL': environ.get('DATA_SERVICE_BASE_URL')
         },
         logging=AwsLogDriver(
             stream_prefix='jqbx-bot',
             log_group=LogGroup(self, 'LogGroup')
         )
     )
     cluster = Cluster(self, '%sCluster' % _id)
     FargateService(self, '%sService' % _id, cluster=cluster, task_definition=task_definition, desired_count=1)