Не разрешены дубликаты имен имен IdentityProperty - S3ClientJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Не разрешены дубликаты имен имен IdentityProperty - S3Client

Сообщение Anonymous »

Я использую AWS Lambda, написанную в java 21 с Spring Boot 3 . My Lambda использует клиент S3, который я создаю следующим образом: < /p>

Код: Выделить всё

@Slf4j
@Lazy(false)
@Configuration
@EnableConfigurationProperties(AwsProperties.class)
public class AwsConfig {

@Bean(destroyMethod = "close")
public S3Client awsS3Client(AwsProperties awsProperties) {
return S3Client.builder()
.region(Region.of(awsProperties.region()))
.build();
}
}
< /code>
[b] Проблема: < /strong>

Когда я вызываю лямбду несколько раз в последовательности, среда AWS, по -видимому, создает новый S3Client < /code> до того, как предыдущий будет собрана мусор. Это приводит к следующей ошибке: < /p>
No duplicate IdentityProperty names allowed but both IdentityProperties 7890fbf9 and 25f0f461 have the same namespace (java.lang.String) and name (Bucket). IdentityProperty should be referenced from a shared static constant to protect against erroneous or unexpected collisions.
Если я подожду 5-7 минут до повторной отладки, все работает совершенно хорошо.

Код: Выделить всё

private static final ConcurrentMap prev = NAME_HISTORY.putIfAbsent(Pair.of(namespace, name), this);
Validate.isTrue(prev == null,
"No duplicate IdentityProperty names allowed but both IdentityProperties %s and %s have the same "
+ "namespace (%s) and name (%s). IdentityProperty should be referenced from a shared static constant to "
+ "protect against erroneous or unexpected collisions.",
Integer.toHexString(System.identityHashCode(prev)),
Integer.toHexString(System.identityHashCode(this)),
namespace,
name);
}
Похоже, что после первого вызова Lambda name_history не очищается, поэтому последующие вызовы терпят неудачу при попытке зарегистрировать один и тот же «java.lang.string»/«bucket» . По умолчанию3ClientBuilder .
Что я пробовал: [/b]
  • Объявление s3client как статическая переменная класса
  • @scope ("Прототип") для bean ("A" @scope ("Prototype") Взлом) Удаление свойства из name_history карта через отражение (которая только что привела к аналогичной ошибке для другого свойства)
  • Различные другие стратегии жизненного цикла и инстанций
:



. /> < /ul>

Подробнее здесь: https://stackoverflow.com/questions/797 ... d-s3client
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Не разрешены дубликаты имен имен IdentityProperty - S3Client
    Anonymous » » в форуме JAVA
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Не разрешены дубликаты имен имен IdentityProperty - S3Client
    Anonymous » » в форуме JAVA
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • DUALSTACK_ENDPOINT_ENABLED при сборке s3Client
    Гость » » в форуме JAVA
    0 Ответы
    56 Просмотры
    Последнее сообщение Гость
  • Как добавить имитируемый S3Client в контекст Spring в интеграционных тестах
    Anonymous » » в форуме JAVA
    0 Ответы
    43 Просмотры
    Последнее сообщение Anonymous
  • Вызовы AWS S3AP Command-Line зеркало S3Client Programmatic Calls?
    Anonymous » » в форуме JAVA
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»