Skip to content

Commit

Permalink
fix extra bug in v2 on message attr size
Browse files Browse the repository at this point in the history
  • Loading branch information
vandonr committed Jun 10, 2024
1 parent 81caa8c commit 9579b09
Showing 1 changed file with 14 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,31 +45,34 @@ public SdkRequest modifyRequest(
// Injecting the trace context into SNS messageAttributes.
if (context.request() instanceof PublishRequest) {
PublishRequest request = (PublishRequest) context.request();
Map<String, MessageAttributeValue> messageAttributes =
new HashMap<>(request.messageAttributes());
// 10 messageAttributes is a limit from SQS, which is often used as a subscriber, therefore
// the limit still applies here
if (messageAttributes.size() < 10) {
messageAttributes.put(
if (request.messageAttributes().size() < 10) {
Map<String, MessageAttributeValue> modifiedMessageAttributes =
new HashMap<>(request.messageAttributes());
modifiedMessageAttributes.put(
"_datadog", // Use Binary since SNS subscription filter policies fail silently with JSON
// strings https://github.com/DataDog/datadog-lambda-js/pull/269
MessageAttributeValue.builder()
.dataType("Binary")
.binaryValue(this.getMessageAttributeValueToInject(executionAttributes))
.build());
return request.toBuilder().messageAttributes(modifiedMessageAttributes).build();
}
return request.toBuilder().messageAttributes(messageAttributes).build();
return request;
} else if (context.request() instanceof PublishBatchRequest) {
PublishBatchRequest request = (PublishBatchRequest) context.request();
ArrayList<PublishBatchRequestEntry> entries = new ArrayList<>();
final SdkBytes sdkBytes = this.getMessageAttributeValueToInject(executionAttributes);
for (PublishBatchRequestEntry entry : request.publishBatchRequestEntries()) {
Map<String, MessageAttributeValue> messageAttributes =
new HashMap<>(entry.messageAttributes());
messageAttributes.put(
"_datadog",
MessageAttributeValue.builder().dataType("Binary").binaryValue(sdkBytes).build());
entries.add(entry.toBuilder().messageAttributes(messageAttributes).build());
if (entry.messageAttributes().size() < 10) {
Map<String, MessageAttributeValue> modifiedMessageAttributes =
new HashMap<>(entry.messageAttributes());
modifiedMessageAttributes.put(
"_datadog",
MessageAttributeValue.builder().dataType("Binary").binaryValue(sdkBytes).build());
entries.add(entry.toBuilder().messageAttributes(modifiedMessageAttributes).build());
}
}
return request.toBuilder().publishBatchRequestEntries(entries).build();
}
Expand Down

0 comments on commit 9579b09

Please sign in to comment.