I have a dot net application running on aws
ec2 instance as a docker
container but it throws this error:
MassTransit.AmazonSqsTransport.Exceptions.AmazonSqsConnectionException: ReceiveTransport faulted: https://ap-southeast-2/ ---> Amazon.Runtime.AmazonServiceException: Failed to retrieve credentials from EC2 Instance Metadata Service.
at GreenPipes.Caching.Internals.NodeValueFactory`1.CreateValue()
at GreenPipes.Caching.Internals.NodeTracker`1.AddNode(INodeValueFactory`1 nodeValueFactory)
--- End of inner exception stack trace ---
at MassTransit.Transports.ReceiveTransport`1.ReceiveTransportAgent.RunTransport()
at MassTransit.Transports.ReceiveTransport`1.ReceiveTransportAgent.Run()
at MassTransit.Transports.StartHostHandle.EndpointsReady(Task`1[] endpoints)
at MassTransit.Transports.StartHostHandle.ReadyOrNot(Task`1[] endpoints, Task`1[] riders)
at MassTransit.MassTransitBus.Handle.ReadyOrNot(Task`1 ready)
at MassTransit.MassTransitBus.StartAsync(CancellationToken cancellationToken)
at MassTransit.MassTransitBus.StartAsync(CancellationToken cancellationToken)
at API.Infrastructure.MassTransitExtensions.MassTransitHostedService.StartAsync(CancellationToken cancellationToken) in /src/API/Infrastructure/MessageBus.cs:line 35
And here's my MessageBus.cs
.
.
.
<retracted-code>
public static IServiceCollection UseMassTransit(this IServiceCollection services, IConfiguration Configuration)
{
return services.AddMassTransit(x =>
{
x.UsingAmazonSqs((context, cfg) =>
{
cfg.Host(new Uri($"amazonsqs://{Configuration["MessageBus:Transports:SQSSNS:Region"]}"), h =>
{
h.AccessKey(Configuration["MessageBus:Transports:SQSSNS:AccessKeyId"]);
h.SecretKey(Configuration["MessageBus:Transports:SQSSNS:SecretAccessKey"]);
// specify a scope for all queues
h.Scope(Configuration["MessageBus:Prefix"]);
// scope topics as well
h.EnableScopedTopics();
});
var sqsPrefix = Configuration["MessageBus:Prefix"].ToLower();
cfg.ReceiveEndpoint($"{sqsPrefix}-messaging-service", e =>
{
// add common consumers
});
cfg.ReceiveEndpoint($"{sqsPrefix}-messaging-service-email", e =>
{
e.Consumer<BankStatementRequestEmailConsumer>(services.BuildServiceProvider());
e.Subscribe<BankStatementRequested>();
});
cfg.ReceiveEndpoint($"{sqsPrefix}-messaging-service-sms", e =>
{
e.Consumer<BankStatementRequestSMSConsumer>(services.BuildServiceProvider());
e.Subscribe<BankStatementRequested>();
});
});
});
}
}
}
Can someone please help me why I am getting this error?