Procházet zdrojové kódy

fix: binding of sns and sqs with additional config

Karol Sójko před 2 roky
rodič
revize
74bc79116b

+ 18 - 7
packages/analytics/src/Bootstrap/Container.ts

@@ -89,13 +89,24 @@ export class ContainerConfigLoader {
     })
     })
     container.bind<winston.Logger>(TYPES.Logger).toConstantValue(logger)
     container.bind<winston.Logger>(TYPES.Logger).toConstantValue(logger)
 
 
-    if (env.get('SNS_AWS_REGION', true)) {
-      container.bind<AWS.SNS>(TYPES.SNS).toConstantValue(
-        new AWS.SNS({
-          apiVersion: 'latest',
-          region: env.get('SNS_AWS_REGION', true),
-        }),
-      )
+    if (env.get('SNS_TOPIC_ARN', true)) {
+      const snsConfig: AWS.SNS.Types.ClientConfiguration = {
+        apiVersion: 'latest',
+        region: env.get('SNS_AWS_REGION', true),
+      }
+      if (env.get('SNS_ENDPOINT', true)) {
+        snsConfig.endpoint = env.get('SNS_ENDPOINT', true)
+      }
+      if (env.get('SNS_DISABLE_SSL', true) === 'true') {
+        snsConfig.sslEnabled = false
+      }
+      if (env.get('SNS_ACCESS_KEY_ID', true) && env.get('SNS_SECRET_ACCESS_KEY', true)) {
+        snsConfig.credentials = {
+          accessKeyId: env.get('SNS_ACCESS_KEY_ID', true),
+          secretAccessKey: env.get('SNS_SECRET_ACCESS_KEY', true),
+        }
+      }
+      container.bind<AWS.SNS>(TYPES.SNS).toConstantValue(new AWS.SNS(snsConfig))
     }
     }
 
 
     if (env.get('SQS_QUEUE_URL', true)) {
     if (env.get('SQS_QUEUE_URL', true)) {

+ 6 - 0
packages/auth/src/Bootstrap/Container.ts

@@ -235,6 +235,12 @@ export class ContainerConfigLoader {
         apiVersion: 'latest',
         apiVersion: 'latest',
         region: env.get('SNS_AWS_REGION', true),
         region: env.get('SNS_AWS_REGION', true),
       }
       }
+      if (env.get('SNS_ENDPOINT', true)) {
+        snsConfig.endpoint = env.get('SNS_ENDPOINT', true)
+      }
+      if (env.get('SNS_DISABLE_SSL', true) === 'true') {
+        snsConfig.sslEnabled = false
+      }
       if (env.get('SNS_ACCESS_KEY_ID', true) && env.get('SNS_SECRET_ACCESS_KEY', true)) {
       if (env.get('SNS_ACCESS_KEY_ID', true) && env.get('SNS_SECRET_ACCESS_KEY', true)) {
         snsConfig.credentials = {
         snsConfig.credentials = {
           accessKeyId: env.get('SNS_ACCESS_KEY_ID', true),
           accessKeyId: env.get('SNS_ACCESS_KEY_ID', true),

+ 12 - 5
packages/event-store/src/Bootstrap/Container.ts

@@ -28,12 +28,19 @@ export class ContainerConfigLoader {
 
 
     await AppDataSource.initialize()
     await AppDataSource.initialize()
 
 
-    container.bind<AWS.SQS>(TYPES.SQS).toConstantValue(
-      new AWS.SQS({
+    if (env.get('SQS_QUEUE_URL', true)) {
+      const sqsConfig: AWS.SQS.Types.ClientConfiguration = {
         apiVersion: 'latest',
         apiVersion: 'latest',
-        region: env.get('SQS_AWS_REGION'),
-      }),
-    )
+        region: env.get('SQS_AWS_REGION', true),
+      }
+      if (env.get('SQS_ACCESS_KEY_ID', true) && env.get('SQS_SECRET_ACCESS_KEY', true)) {
+        sqsConfig.credentials = {
+          accessKeyId: env.get('SQS_ACCESS_KEY_ID', true),
+          secretAccessKey: env.get('SQS_SECRET_ACCESS_KEY', true),
+        }
+      }
+      container.bind<AWS.SQS>(TYPES.SQS).toConstantValue(new AWS.SQS(sqsConfig))
+    }
 
 
     const logger = winston.createLogger({
     const logger = winston.createLogger({
       level: env.get('LOG_LEVEL') || 'info',
       level: env.get('LOG_LEVEL') || 'info',

+ 18 - 7
packages/files/src/Bootstrap/Container.ts

@@ -110,13 +110,24 @@ export class ContainerConfigLoader {
     }
     }
     container.bind<ValidatorInterface<Uuid>>(TYPES.UuidValidator).toConstantValue(new UuidValidator())
     container.bind<ValidatorInterface<Uuid>>(TYPES.UuidValidator).toConstantValue(new UuidValidator())
 
 
-    if (env.get('SNS_AWS_REGION', true)) {
-      container.bind<AWS.SNS>(TYPES.SNS).toConstantValue(
-        new AWS.SNS({
-          apiVersion: 'latest',
-          region: env.get('SNS_AWS_REGION', true),
-        }),
-      )
+    if (env.get('SNS_TOPIC_ARN', true)) {
+      const snsConfig: AWS.SNS.Types.ClientConfiguration = {
+        apiVersion: 'latest',
+        region: env.get('SNS_AWS_REGION', true),
+      }
+      if (env.get('SNS_ENDPOINT', true)) {
+        snsConfig.endpoint = env.get('SNS_ENDPOINT', true)
+      }
+      if (env.get('SNS_DISABLE_SSL', true) === 'true') {
+        snsConfig.sslEnabled = false
+      }
+      if (env.get('SNS_ACCESS_KEY_ID', true) && env.get('SNS_SECRET_ACCESS_KEY', true)) {
+        snsConfig.credentials = {
+          accessKeyId: env.get('SNS_ACCESS_KEY_ID', true),
+          secretAccessKey: env.get('SNS_SECRET_ACCESS_KEY', true),
+        }
+      }
+      container.bind<AWS.SNS>(TYPES.SNS).toConstantValue(new AWS.SNS(snsConfig))
     }
     }
 
 
     if (env.get('SQS_QUEUE_URL', true)) {
     if (env.get('SQS_QUEUE_URL', true)) {

+ 18 - 7
packages/scheduler/src/Bootstrap/Container.ts

@@ -74,13 +74,24 @@ export class ContainerConfigLoader {
     })
     })
     container.bind<winston.Logger>(TYPES.Logger).toConstantValue(logger)
     container.bind<winston.Logger>(TYPES.Logger).toConstantValue(logger)
 
 
-    if (env.get('SNS_AWS_REGION', true)) {
-      container.bind<AWS.SNS>(TYPES.SNS).toConstantValue(
-        new AWS.SNS({
-          apiVersion: 'latest',
-          region: env.get('SNS_AWS_REGION', true),
-        }),
-      )
+    if (env.get('SNS_TOPIC_ARN', true)) {
+      const snsConfig: AWS.SNS.Types.ClientConfiguration = {
+        apiVersion: 'latest',
+        region: env.get('SNS_AWS_REGION', true),
+      }
+      if (env.get('SNS_ENDPOINT', true)) {
+        snsConfig.endpoint = env.get('SNS_ENDPOINT', true)
+      }
+      if (env.get('SNS_DISABLE_SSL', true) === 'true') {
+        snsConfig.sslEnabled = false
+      }
+      if (env.get('SNS_ACCESS_KEY_ID', true) && env.get('SNS_SECRET_ACCESS_KEY', true)) {
+        snsConfig.credentials = {
+          accessKeyId: env.get('SNS_ACCESS_KEY_ID', true),
+          secretAccessKey: env.get('SNS_SECRET_ACCESS_KEY', true),
+        }
+      }
+      container.bind<AWS.SNS>(TYPES.SNS).toConstantValue(new AWS.SNS(snsConfig))
     }
     }
 
 
     if (env.get('SQS_QUEUE_URL', true)) {
     if (env.get('SQS_QUEUE_URL', true)) {

+ 6 - 0
packages/syncing-server/src/Bootstrap/Container.ts

@@ -132,6 +132,12 @@ export class ContainerConfigLoader {
         apiVersion: 'latest',
         apiVersion: 'latest',
         region: env.get('SNS_AWS_REGION', true),
         region: env.get('SNS_AWS_REGION', true),
       }
       }
+      if (env.get('SNS_ENDPOINT', true)) {
+        snsConfig.endpoint = env.get('SNS_ENDPOINT', true)
+      }
+      if (env.get('SNS_DISABLE_SSL', true) === 'true') {
+        snsConfig.sslEnabled = false
+      }
       if (env.get('SNS_ACCESS_KEY_ID', true) && env.get('SNS_SECRET_ACCESS_KEY', true)) {
       if (env.get('SNS_ACCESS_KEY_ID', true) && env.get('SNS_SECRET_ACCESS_KEY', true)) {
         snsConfig.credentials = {
         snsConfig.credentials = {
           accessKeyId: env.get('SNS_ACCESS_KEY_ID', true),
           accessKeyId: env.get('SNS_ACCESS_KEY_ID', true),

+ 18 - 7
packages/workspace/src/Bootstrap/Container.ts

@@ -84,13 +84,24 @@ export class ContainerConfigLoader {
     })
     })
     container.bind<winston.Logger>(TYPES.Logger).toConstantValue(logger)
     container.bind<winston.Logger>(TYPES.Logger).toConstantValue(logger)
 
 
-    if (env.get('SNS_AWS_REGION', true)) {
-      container.bind<AWS.SNS>(TYPES.SNS).toConstantValue(
-        new AWS.SNS({
-          apiVersion: 'latest',
-          region: env.get('SNS_AWS_REGION', true),
-        }),
-      )
+    if (env.get('SNS_TOPIC_ARN', true)) {
+      const snsConfig: AWS.SNS.Types.ClientConfiguration = {
+        apiVersion: 'latest',
+        region: env.get('SNS_AWS_REGION', true),
+      }
+      if (env.get('SNS_ENDPOINT', true)) {
+        snsConfig.endpoint = env.get('SNS_ENDPOINT', true)
+      }
+      if (env.get('SNS_DISABLE_SSL', true) === 'true') {
+        snsConfig.sslEnabled = false
+      }
+      if (env.get('SNS_ACCESS_KEY_ID', true) && env.get('SNS_SECRET_ACCESS_KEY', true)) {
+        snsConfig.credentials = {
+          accessKeyId: env.get('SNS_ACCESS_KEY_ID', true),
+          secretAccessKey: env.get('SNS_SECRET_ACCESS_KEY', true),
+        }
+      }
+      container.bind<AWS.SNS>(TYPES.SNS).toConstantValue(new AWS.SNS(snsConfig))
     }
     }
 
 
     if (env.get('SQS_QUEUE_URL', true)) {
     if (env.get('SQS_QUEUE_URL', true)) {