如何將sns_NameSpace變數傳遞給payload? 我收到錯誤Unrecognized token sns_NameSpace。我嘗試使用 JSON 進行字串化,但仍然出現相同的錯誤。
Error:
"errorMessage": "Could not parse request body into json: Could not parse payload into json: Unrecognized token 'sns_NameSpace': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\n at [Source: (byte[])\"{ \"Host\": sns_NameSpace, \"Key\": sns_key, \"Value\": \"1\"}\"; line: 1, column: 25]",
code:
var sns_NameSpace = sns.Trigger.Namespace;
var sns_NameSpace = JSON.stringify(sns_NameSpace.replace("/", "_"));
var sns_key = JSON.stringify(sns_ApiId '_' sns_MetricName);
var params = {
FunctionName: 'zabbixPy', // the lambda function we are going to invoke
InvocationType: 'RequestResponse',
LogType: 'Tail',
Payload: '{ "Host": sns_NameSpace, "Key": sns_key, "Value": "1"}'
};
uj5u.com熱心網友回復:
假設您有一個有效的字串,您應該能夠為此使用模板文字。
前任:
var params = {
...
Payload: `{ "Host": ${sns_NameSpace}, "Key": ${sns_key}, "Value": "1"}`
};
另外,我建議使用不同的變數名稱而不是定義,然后重新定義sns_nameSpace.
uj5u.com熱心網友回復:
這個問題應該重命名為“如何連接變數和字串?”。問題出在您的“有效負載”線上。
問題:按字面解釋變數
這是不起作用的字串:
'{ "Host": sns_NameSpace, "Key": sns_key, "Value": "1"}'
正如您從錯誤訊息中看到的那樣,sns_NameSpace沒有被替換,因此被逐字解釋為無效的 JSON 令牌。
解決方案1:字串連接
可以使用字串連接運算子( )連接字串
'{ "Host": ' sns_NameSpace ', "Key": ' sns_key ', "Value": "1"}'
解決方案2:模板字串
或者可以使用模板字串這樣:
`{ "Host": ${sns_NameSpace}, "Key": ${sns_key}, "Value": "1"}`
請注意模板字串使用`(反引號),而不是'(單引號)
uj5u.com熱心網友回復:
在 JS 中構建物件然后將其字串化會更直接,而不是將單個部分字串化并在字串中包含文字 JSON 片段:
var sns_NameSpace = sns.Trigger.Namespace;
var sns_NameSpace = JSON.stringify(sns_NameSpace.replace("/", "_"));
var sns_key = JSON.stringify(sns_ApiId '_' sns_MetricName);
var params = {
FunctionName: 'zabbixPy', // the lambda function we are going to invoke
InvocationType: 'RequestResponse',
LogType: 'Tail',
Payload: JSON.stringify({
Host: sns_NameSpace.replace('/', '_'),
Key: sns_ApiId '_' sns_MetricName,
Value: 1
})
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/343638.html
標籤:javascript 节点.js json
