@@ -5,25 +5,75 @@ public static class BusRegistrationConfiguratorExt
5
5
{
6
6
public static void SetupTransport ( this IBusRegistrationConfigurator x , string [ ] args )
7
7
{
8
- string selectedTransport = Environment . GetEnvironmentVariable ( "TRANSPORT_TYPE" ) ?? "RabbitMQ" ;
8
+ var selectedTransport = Environment . GetEnvironmentVariable ( "TRANSPORT_TYPE" ) ?? "RabbitMQ" ;
9
+ string envFile ;
9
10
10
11
switch ( selectedTransport )
11
12
{
13
+ case "AmazonSQS" :
14
+ var awsRegion = Environment . GetEnvironmentVariable ( "AWS_REGION" ) ;
15
+ var awsClientId = Environment . GetEnvironmentVariable ( "AWS_ACCESS_KEY_ID" ) ;
16
+ var awsSecret = Environment . GetEnvironmentVariable ( "AWS_SECRET_ACCESS_KEY" ) ;
17
+ envFile = Path . GetFullPath ( "../../../sqs.env" ) ;
18
+ if ( File . Exists ( envFile ) )
19
+ {
20
+ var envs = DotEnv . Read ( new DotEnvOptions ( envFilePaths : [ envFile ] ) ) ;
21
+ awsRegion = envs [ "AWS_REGION" ] ;
22
+ awsClientId = envs [ "AWS_ACCESS_KEY_ID" ] ;
23
+ awsSecret = envs [ "AWS_SECRET_ACCESS_KEY" ] ;
24
+ }
25
+
26
+ x . UsingAmazonSqs ( ( ctx , cfg ) =>
27
+ {
28
+ cfg . Host ( awsRegion , h =>
29
+ {
30
+ h . AccessKey ( awsClientId ) ;
31
+ h . SecretKey ( awsSecret ) ;
32
+ } ) ;
33
+
34
+ cfg . ConfigureEndpoints ( ctx ) ;
35
+ } ) ;
36
+ break ;
12
37
case "AzureServiceBus" :
13
- string connectionString = Environment . GetEnvironmentVariable ( "CONNECTION_STRING" ) ;
38
+ var connectionString = Environment . GetEnvironmentVariable ( "CONNECTION_STRING" ) ;
39
+ envFile = Path . GetFullPath ( "../../../asb.env" ) ;
40
+ if ( File . Exists ( envFile ) )
41
+ {
42
+ var envs = DotEnv . Read ( new DotEnvOptions ( envFilePaths : [ envFile ] , ignoreExceptions : false ) ) ;
43
+ connectionString = envs [ "CONNECTION_STRING" ] ;
44
+ }
45
+
14
46
x . UsingAzureServiceBus ( ( context , cfg ) =>
15
- {
16
- cfg . Host ( connectionString ) ;
17
- cfg . ConfigureEndpoints ( context ) ;
18
- } ) ;
47
+ {
48
+ cfg . Host ( connectionString ) ;
49
+
50
+ cfg . ConfigureEndpoints ( context ) ;
51
+ } ) ;
52
+
19
53
break ;
20
54
case "RabbitMQ" :
55
+ var host = Environment . GetEnvironmentVariable ( "RABBITMQ_HOST" ) ;
56
+ var port = Environment . GetEnvironmentVariable ( "RABBITMQ_PORT" ) ?? "5672" ;
57
+ var vHost = Environment . GetEnvironmentVariable ( "RABBITMQ_VIRTUALHOST" ) ;
58
+ var username = Environment . GetEnvironmentVariable ( "RABBITMQ_MANAGEMENT_API_USERNAME" ) ;
59
+ var password = Environment . GetEnvironmentVariable ( "RABBITMQ_MANAGEMENT_API_PASSWORD" ) ;
60
+ envFile = Path . GetFullPath ( "../../../rabbit.env" ) ;
61
+ if ( File . Exists ( envFile ) )
62
+ {
63
+ var envs = DotEnv . Read ( new DotEnvOptions ( envFilePaths : [ envFile ] , ignoreExceptions : false ) ) ;
64
+ host = envs [ "RABBITMQ_HOST" ] ;
65
+ port = envs [ "RABBITMQ_PORT" ] ;
66
+ vHost = envs [ "RABBITMQ_VIRTUALHOST" ] ;
67
+ username = envs [ "RABBITMQ_MANAGEMENT_API_USERNAME" ] ;
68
+ password = envs [ "RABBITMQ_MANAGEMENT_API_PASSWORD" ] ;
69
+ }
70
+
21
71
x . UsingRabbitMq ( ( context , cfg ) =>
22
72
{
23
- cfg . Host ( "rabbitmq" , 5672 , "/" , h =>
73
+ cfg . Host ( host , ushort . Parse ( port ) , vHost , h =>
24
74
{
25
- h . Username ( "guest" ) ;
26
- h . Password ( "guest" ) ;
75
+ h . Username ( username ) ;
76
+ h . Password ( password ) ;
27
77
} ) ;
28
78
cfg . ConfigureEndpoints ( context ) ;
29
79
} ) ;
0 commit comments