From the Pricing Docs :
DynamoDB charges for reading data from DynamoDB Streams in read request units. Each GetRecords API call is billed as a streams read request unit and returns up to 1 MB of data from DynamoDB Streams. Streams read request units are unique from read requests on your DynamoDB table.
I understand that lambda polls the stream 4 times per second, invoking the trigger when changes are detected as per the batching config. Does this mean that Stream Read Request Units are only consumed when items in DynamoDB actually change, or are they consumed during the polling as well?