Невозможно получить доступ к таблицам DynamodB через кластер DAX

Создал кластер [cluster name : staging-dax-cluster.ckbrjt.clustercfg.dax.use1.cache.amazonaws.com] в сша-восток-1 регион. Когда я пытаюсь использовать кластер, получаю следующие исключения.

Общая поддержка журналов lib устарела. Переключитесь на бэкэнд slf4j. Приложение Cloud Watch больше не поддерживается. Используйте приложение stdOut или SLF4J с поддержкой.

Exception in thread "main" com.amazon.dax.client.exceptions.DaxServiceException: NotImplementedException
    at com.amazon.dax.client.dynamodbv2.ExceptionTranslator.createValidationException(ExceptionTranslator.java:91)
    at com.amazon.dax.client.dynamodbv2.ExceptionTranslator.translateException(ExceptionTranslator.java:80)
    at com.amazon.dax.client.dynamodbv2.DaxClient.handleException(DaxClient.java:1898)
    at com.amazon.dax.client.dynamodbv2.DaxClient.describeTable(DaxClient.java:610)
    at com.amazon.dax.client.dynamodbv2.ClusterDaxClient$21.call(ClusterDaxClient.java:328)
    at com.amazon.dax.client.dynamodbv2.ClusterDaxClient$21.call(ClusterDaxClient.java:325)
    at com.amazon.dax.client.dynamodbv2.ClusterDaxClient$RetryHandler.makeRequestWithRetries(ClusterDaxClient.java:635)
    at com.amazon.dax.client.dynamodbv2.ClusterDaxClient.makeReadRequestWithRetries(ClusterDaxClient.java:604)
    at com.amazon.dax.client.dynamodbv2.ClusterDaxClient.describeTable(ClusterDaxClient.java:325)
    at com.amazonaws.services.dynamodbv2.util.TableHelper.verifyTableExists(TableHelper.java:51)
    at com.amazonaws.services.dynamodbv2.util.TableHelper.verifyOrCreateTable(TableHelper.java:117)
    at com.amazonaws.services.dynamodbv2.transactions.TransactionManager.verifyOrCreateTransactionTable(TransactionManager.java:180)
    at com.usermind.integrations.api.dao.DynamoDbPersistenceContext.verifyOrCreateTransactionTables(DynamoDbPersistenceContext.java:151)
    at com.usermind.integrations.api.dao.DynamoDbPersistenceContext.<init>(DynamoDbPersistenceContext.java:138)
    at com.usermind.integrations.api.App.initPersistenceContext(App.java:143)
    at com.usermind.integrations.api.AbstractSparkApp.run(AbstractSparkApp.java:17)
    at com.usermind.integrations.api.App.main(App.java:93)

2 ответа

Решение

DAX не распознает операции DynamoDB для управления таблицами, в вашем случае "descriptionTable". Операции чтения и записи поддерживаются. Смотрите документацию для подробных API.

  • DAX не поддерживает операции управления таблицами, напримерDescribeTable.

  • Это довольно странно, потому что, когда мы определяем контроль доступа к DAX через IAM, обратитесь к AWS Doc; независимо от конкретной операции, для которой нам нужна поддержка (например: «Только чтение», «Чтение и запись» и т. д.); добавление действия: dynamodb:DescribeTable является обязательным.

  • Посколькуdynamodb:DescribeTableтребуется действие, чтобы DAX сохранял метаданные о таблице.

  • Но мы не можем вызвать API DescribeTable через клиент DAX, поскольку он не поддерживается. Нам все еще нужно определить его в политике IAM (и, в свою очередь, в IAC), поскольку он использует его «под капотом», как описано выше.

Другие вопросы по тегам