Utharaa M
Utharaa M

Reputation: 33

Not able to access dynamodb tables via DAX cluster

Created a cluster [cluster name : staging-dax-cluster.ckbrjt.clustercfg.dax.use1.cache.amazonaws.com] in us-east-1 region . When i try to use the cluster getting the below exceptions.

The common lib logging backed is deprecated. Switch to the slf4j backend. Cloud Watch appender is no longer supported. Use the stdOut appender or SLF4J backed.

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)

Upvotes: 3

Views: 1414

Answers (2)

Pransh Tiwari
Pransh Tiwari

Reputation: 4202

  • DAX doesn't supports manage table operations, like DescribeTable.

  • This is quite weird because when we define the DAX access control through IAM, Refer AWS Doc; no matter the specific operation we need support for (eg: Only Read, Both Read and Write, etc); adding the action: dynamodb:DescribeTable is mandatory.

  • Because: the dynamodb:DescribeTable action is required for DAX to maintain metadata about the table.

  • But we cannot call the DescribeTable API through DAX client, as it it not supported. We still need to define it in IAM Policy (and in turn IAC) because it uses it beneath the hood as explained above.

Upvotes: 0

Abdelrahman Elhaddad
Abdelrahman Elhaddad

Reputation: 841

DAX doesn't recognize DynamoDB operations for managing tables, in your case "describeTable". Read and write operations are supported. See documentation for detailed APIs.

Upvotes: 3

Related Questions