You can create apps in AppSheet with data from AWS DynamoDB. To do this, you need to first add a DynamoDB data source to your AppSheet account. In your account page, open the Data Sources tab and click on the add data source button. When prompted to select a new data source, choose Database and then select DynamoDB as the database provider.

Choose an AWS Region, specify the Access Key and Access Secret, and then specify the name of an S3 bucket that will be used for any images captured by apps using data from DynamoDB. Make sure to correctly paste in this information from your AWS account.

In order for AppSheet servers to access your data, both your network and DynamoDB must accept inbound connections to the database from AppSheet servers. Please refer to Managing IP Address and Firewall Information for further information.

Once a DynamoDB data source has been added to your account, you can add its tables or views to any app. When you choose Add Table in your app, you can select the specific data source, and a table or view from that data source.

Once added to the app, AppSheet treats all data sources similarly. In fact, it's common and natural to combine data from a DynamoDB data source with data from other sources in the same app.

Dealing with Loosely-Structured Tables

Tables in DynamoDB can be loosely structured. Each "row" is a combination of property-value pairs and different rows can have different properties. However, an AppSheet app requires regularly structured data.

Do not try to build AppSheet apps with DynamoDB tables that have no regular structure. This won't work well. Likewise, do not build apps with tables that have serialized JSON objects or other such non-tabular data.

On the other hand, it's common to use DynamoDB to store regular structured tables with each row having some optional extra properties. AppSheet tries to deduce the extra properties by reading the first hundred rows of data. It also automatically includes five additional hidden columns when it extracts the column structure. This allows the app creator to change the column names to explicitly include properties that the system didn't automatically deduce.

Did this answer your question?