[英]AWS Node JS SDK - Amazon IOT - MalformedPolicyException: Policy document is Malformed
我試圖使用以下代碼使用適用於Node JS的AWS開發工具包生成IOT策略。
var params = {
policyDocument: 'file:///tmp/mypolicy.json',
policyName: 'my_custom_policy'
};
iot.createPolicy(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
但是運行腳本將返回以下異常。
[MalformedPolicyException:策略文檔格式錯誤]
消息:“策略文檔格式錯誤”,
代碼:“ MalformedPolicyException”等
我已經嘗試過/tmp/mypolicy.json
,./ ./mypolicy.json
(在將json文件復制到腳本文件夾中之后)等。但是異常始終發生。
json的內容在下面給出(從Amazon官方文檔復制)。
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action":["iot:*"],
"Resource": ["*"]
}]
}
關於指定policyDocument並生成IOT策略的正確方法有任何想法嗎?
我在Golang SDK中遇到了相同的問題,因為它不支持“ file://”路徑,這是特定於CLI的功能。 要從磁盤加載策略,您應該使用Go stdlib open並以字符串形式讀取內容。
file, err := os.Open("filename")
if err != nil {
// handle error
}
buf := &bytes.Buffer{}
if err := io.Copy(buf, file); err != nil {
// handle error
}
resp, err := svc.CreatePolicy(&iot.CreatePolicyInput{
PolicyDocument: aws.String(buf.String()),
// ...
})
if err != nil {
// handle error
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.