外部チェック機能でのシェル実行と直接シェル実行した場合の引数の違いについて

お世話になっております。
以下ご教示いただけないでしょうか。
Zabbixバージョンは4.0です。

AWSメトリクスを取得するシェルを外部チェック機能で実行しているのですが、エラー(取得不可)となります。

<キー>
cloudwatch_metrics.sh["-n AWS/TrustedAdvisor","-d Name=Category,Value=\"Service Limits\"","-m RedChecks","-s Maximum","-r us-east-1"]

< /usr/lib/zabbix/externalscripts/cloudwatch_metrics.sh >======================================
#!/bin/sh

while getopts n:r:d:m:s:r: OPT
do
case ${OPT} in
n) NAMESPACE=${OPTARG} ;;
d) DIMENSIONS=${OPTARG} ;;
m) METRIC=${OPTARG} ;;
s) STATISTICS=${OPTARG} ;;
r) REGION=${OPTARG} ;;
*) exit 1 ;;
esac
done

sudo /root/.local/bin/aws cloudwatch get-metric-statistics --output text \
--namespace ${NAMESPACE} \
--dimensions "${DIMENSIONS}" \
--metric-name ${METRIC} \
--statistics ${STATISTICS} \
--start-time `date -u -d '6000 minutes ago' +%Y-%m-%dT%TZ` \
--end-time `date -u +%Y-%m-%dT%TZ` \
--region ${REGION} \
--period 360000 | sort -k 3,3 | tail -n 1 | awk '{print $2}'
~;:
=============================================

<エラー内容>===================================
Value "
Error parsing parameter '--dimensions': Expected: '=', received: 'N' for input:
Name=Category,Value=Service Limits
^" of type "string" is not suitable for value type "Numeric (unsigned)"
==============================================

直接コマンドプロンプトから以下のようにシェルに引数を渡して実行した場合は、問題なく戻り値を得ることができるのですが、
外部チェック機能だとエラーとなります。何が原因かご教示いただけないでしょうか。

<実行コマンド>
sudo -u zabbix ./cloudwatch_metrics.sh -n AWS/TrustedAdvisor -d Name=Category,Value="Service Limits" -m RedChecks -s Maximum -r us-east-1

宜しくお願い致します。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

アイテムキーで指定されている引数が、例えば、

 "-n AWS/TrustedAdvisor"

と括られているので、呼び出されたスクリプトで引数として、「-n」
と「AWS/TrustedAdvisor」を分離できず、getoptsでNAMESPACEなど
の値を切り出せていないのではないでしょうか?

awsを呼び出す前に、各引数を引き渡すことができているかという
ところからまずは確認してみてください。