有没有办法将变量与用于 SNS 的 AWS CLI 一起使用?

Is there a way to use variables with the AWS CLI for SNS?

我正在使用 aws cli 通过 sns 发送一些电子邮件,在 shell 脚本中,我 运行 声明了一些变量,STATUS_DOWN_HOST 和 STATUS_DOWN_ENV。我脚本的主要 "meat" 然后运行以下内容:

aws sns publish --topic-arn arn:aws:sns:ap-southwest-2:377766644499:URL_TEST --message "The service $STATUS_DOWN_HOST is unresponsive on $STATUS_DOWN_ENV."

这按预期发送了一封邮件,但未提取变量,因此只显示了省略了这些部分的电子邮件消息。

我是否应该使用一些引号或括号以便 cli 获取变量?

谢谢!

您可以使用 printenv 命令将环境变量包含到您的输出中。

$() 语法允许您嵌入命令。

aws sns publish --topic-arn arn:aws:sns:ap-southwest-2:377766644499:URL_TEST --message "The service $(printenv STATUS_DOWN_HOST) is unresponsive on $(printenv STATUS_DOWN_ENV)."

参考资料

printenv man page
Unix & Linux - What is $() in a command?