Using a comma to delimit your strings is probably the main pain point here. The shell naturally supports space-separated tokens.
printf '%s-landscape\n' aws azure
If you want to do something a bit more complex, maybe a loop.
sep=''
for token in aws azure; do
printf '%s%s-landscape' "$sep" "$token"
sep=','
done
If you want to do something even more complex, perhaps put them in an array. (This is not Bourne/POSIX sh compatible, but a common extension in Ksh, Bash, etc.)
a=(aws azure)
for token in "${a[@]}"; do ...
As an aside, in Bash, there is also brace expansion:
printf '%s\n' {aws,azure}-landscape
This is tortured, but produces what you are asking:
printf '%s' {aws,\,azure}-landscape
The first comma separates the phrases between the braces. To include a literal comma in one of the phrases, we backslash it.