I want to create the same CW alarm/metrics for a number of DynamoDB tables in cdk, my instinct was to try to use a for loop to append the name of the DDB table to the CW alarm, but doing so generates the following error: Cannot use tokens in construct ID
It makes sense, because the token has yet to be evaluated so its just a placeholder value. But then what would a good alternative be to sequentially naming the alarms?
My usecase isn't that complicated I could just repeat the same code X times and tweak the name each time, but that seems like an incorrect approach.
I'm using the bellow code for inspiration, but I can't see what values I can call on that wouldn't trigger this error.
https://aws.amazon.com/blogs/developer/aws-cdk-developer-preview/
You should use the id
or uniqueId
of the table, something like:
for (const table of tables) {
new cloudwatch.Alarm(this, `AlarmFor${table.node.id}`, ...); // or table.node.uniqueId
}
But a better pattern could be to create a TableWithAlarm
construct and instantiate it multiple times in your stack.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.