Das Was < /h2>
Beim Erstellen eines Massstransit -Verbrauchers in einer AWS -Lambda -Funktion. In einer Ausnahme scheint Masstransit die Nachricht nicht auf die _error -Tharte zu setzen, wie in den Masstransit -Ausnahmen beschrieben. Hier ist ein Ausschnitt des Codes, der auf dem Masstransit -Beispiel in GitHub < /p>
der Lambda basiert Funktion: < /p>
public Function()
{
_environment = Environment.GetEnvironmentVariable("DOTNET_ENVIRONMENT") ?? "production";
var services = LambdaConfiguration.ConfigureServices(_cache);
_provider = services.BuildServiceProvider(true);
}
public async Task FunctionHandler(SQSEvent input, ILambdaContext context)
{
using var cts = new CancellationTokenSource(context.RemainingTime);
using var scope = _provider.CreateScope();
var factory = scope.ServiceProvider.GetRequiredService();
var ep = factory.CreateConsumerReceiver("static-name");
var logger = scope.ServiceProvider.GetRequiredService();
logger.LogInformation("Lambda function handler executed {@Environment}", _environment);
var headers = new Dictionary();
try
{
foreach (var record in input.Records)
{
foreach (var key in record!.Attributes!.Keys)
headers[key] = record.Attributes[key];
foreach (var key in record!.MessageAttributes!.Keys)
headers[key] = record.MessageAttributes[key];
logger.LogInformation("Message received {Body}", record.Body);
var body = Encoding.UTF8.GetBytes(record.Body);
await ep.Dispatch(body, headers, cts.Token);
}
}
catch (Exception ex)
{
logger.LogError(ex, "Error while processing message");
throw;
}
finally
{
await Log.CloseAndFlushAsync();
}
}
< /code>
Der Verbraucher, in dem ich eine Ausnahme manuell erzwinge.public class HandleVehicleTelemetryConsumer : IConsumer
{
private readonly ILogger _logger;
public HandleVehicleTelemetryConsumer(ILogger logger)
{
_logger = logger;
}
public Task Consume(ConsumeContext context)
{
_logger.LogInformation("Message received {@MessageId}", context.MessageId);
throw new Exception("Something bad happened"); //
Für eine Ausnahme hätte ich also einen neuen _error < /code> wie SO erwartet:
< /p>
Und ich sehe meine Ausnahme in den Fehlerprotokollen:
Eine andere Notiz ist, dass dieser Verbraucher zum Empfangen von Nachrichten das Empfangen von Nachrichten dazu gebracht wird, Nachrichten zu empfangen Ich musste den SQS -Trigger manuell in die AWS -Konsole hinzufügen (nicht sicher, ob das einen Unterschied macht) < /p>
Das Was < /h2> Beim Erstellen eines Massstransit -Verbrauchers in einer AWS -Lambda -Funktion. In einer Ausnahme scheint Masstransit die Nachricht nicht auf die _error -Tharte zu setzen, wie in den Masstransit -Ausnahmen beschrieben. Hier ist ein Ausschnitt des Codes, der auf dem Masstransit -Beispiel in GitHub < /p> der Lambda basiert Funktion: < /p> [code]public Function() { _environment = Environment.GetEnvironmentVariable("DOTNET_ENVIRONMENT") ?? "production";
var services = LambdaConfiguration.ConfigureServices(_cache);
public async Task FunctionHandler(SQSEvent input, ILambdaContext context) { using var cts = new CancellationTokenSource(context.RemainingTime); using var scope = _provider.CreateScope();
var factory = scope.ServiceProvider.GetRequiredService();
var ep = factory.CreateConsumerReceiver("static-name");
var logger = scope.ServiceProvider.GetRequiredService();
logger.LogInformation("Lambda function handler executed {@Environment}", _environment);
var headers = new Dictionary(); try { foreach (var record in input.Records) { foreach (var key in record!.Attributes!.Keys) headers[key] = record.Attributes[key];
foreach (var key in record!.MessageAttributes!.Keys) headers[key] = record.MessageAttributes[key];
logger.LogInformation("Message received {Body}", record.Body);
finally { await Log.CloseAndFlushAsync(); } } < /code> Der Verbraucher, in dem ich eine Ausnahme manuell erzwinge.public class HandleVehicleTelemetryConsumer : IConsumer { private readonly ILogger _logger;
public HandleVehicleTelemetryConsumer(ILogger logger) { _logger = logger; }
public Task Consume(ConsumeContext context) { _logger.LogInformation("Message received {@MessageId}", context.MessageId);
throw new Exception("Something bad happened"); // Für eine Ausnahme hätte ich also einen neuen _error < /code> wie SO erwartet: < /p> Und ich sehe meine Ausnahme in den Fehlerprotokollen:
Eine andere Notiz ist, dass dieser Verbraucher zum Empfangen von Nachrichten das Empfangen von Nachrichten dazu gebracht wird, Nachrichten zu empfangen Ich musste den SQS -Trigger manuell in die AWS -Konsole hinzufügen (nicht sicher, ob das einen Unterschied macht) < /p>
Ich arbeite an AWS Lambda im Spring Boot-Framework.
Ich habe den Code aus dem folgenden Link verwendet, um Zertifikate aus Dateien zu laden, weil beim Erstellen des PKIX-Pfads ein Fehler aufgetreten...
Ich arbeite an AWS Lambda im Spring Boot-Framework.
Ich habe den Code aus dem folgenden Link verwendet, um Zertifikate aus Dateien zu laden, weil beim Erstellen des PKIX-Pfads ein Fehler aufgetreten...
Ich führe einen Supervisor-Worker in einem Container als unabhängige Aufgabe in aws aus. Ich habe das Flag --stop-when-empty angegeben, aber die Aufgabe läuft weiter, auch wenn sich keine Nachrichten...
Ich verwende Python, um ein Projekt zu automatisieren, bei dem mehrere DOCX-Dateien zu einer verkettet werden. Das Makro funktioniert perfekt in Word, aber wenn der Python-Code versucht, das Makro...
Ich verwende Python, um ein Projekt zu automatisieren, bei dem mehrere DOCX-Dateien zu einer verkettet werden. Das Makro funktioniert perfekt in Word, aber wenn der Python-Code versucht, das Makro...