I don't dislike the export arn stuff. It's likely ok. Maybe could use some extra validation around the date (be sure we're getting this right) and id (format?).
The only alternative that springs to mind would be to do something with the checksum table export function. It has the arn:
exportArn, err := exportTable(ctx, dynamodbClient, tableArn, exportBucket, prefix)
So it could do something with it, like push it to s3 and you read the export arn from the file we're expecting? And presumably that exportArn is usable for what you're doing ...
Questions re: CSV function.
How many files and how large are the files in the worst case? Because lots of copying into memory may need to process export files by line, append to tmp file and upload when done ...
Template
Missing the conditions stuff for IMAGE_URI. Also CSV function doesn't need the DDB envvar.