71916


AWSのLambdaで、AWS.CloudWatchEventsクラスのenableRuleを使って複数のCloudWatchルールを有効にしたいのですが、Handlerに渡すイベントの書き方がわかりません。以下のようなエラーが出てしまいます。  
以下のenableRuleのリファレンス通りにやった場合の1件だけのステータスの切り替えはうまくいきました。  
(<https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchEvents.html#enableRule-
property>)

まったく知見がないもので、JSONの渡し方が悪かったりparamsの書き方が違ったりするのかもしれませんがご教授いただければ幸いです。

[code]

    InvalidParameterType: Expected params.Name to be a string
    
[/code]

Lambdaに渡すJSONの例:

[code]

    {
      "Name": [
        "test-sample-activate",
        "test-sample-activate2",
        "test-sample-activate3"
      ]
    }
    
[/code]

index.jsの例:

[code]

    var AWS = require('aws-sdk');
    var cw = new AWS.CloudWatchEvents();
    
    exports.handler = event => {
    
        for (let i = 0; i < event.Name.length; i++) {
            cw.enableRule({ Name: [event.Name[i]}] }, function(err, data) {
                if (err) {
                    console.log(err, err.stack);
                } else {
                    console.log(data);
                }
            });
        }
    };
    
[/code]

* * *

修正したコード:

[code]

    var AWS = require('aws-sdk');
    var cw = new AWS.CloudWatchEvents();
    
    exports.handler = event => {
    
        for (let i = 0; i < event.Name.length; i++) {
            cw.enableRule({ Name: event.Name[i] }, function(err, data) {
                if (err) {
                    console.log(err, err.stack);
                } else {
                    console.log(data);
                }
            });
        }
    };
    
[/code]

自分が参考にしていた別のメソッドのリファレンスの書き方を真似してしまっていました…  
しっかり自分で考えてプログラミングしたいと思います。


CC BY-SA 4.0
2020-11-13T03:46:14.640
71912
2020-11-13T06:20:36.427
2020-11-13T06:20:36.427
31521
31521
question
javascript aws aws-lambda aws-cloudwatch
Lambdaで複数のCloudWatchルールを有効化したい


>
[code]

>     cw.enableRule({ Name: [event.Name[i]}] }, function(err, data) {
>  
[/code]

ここは

[code]

    cw.enableRule({ Name: event.Name[i] }, function(err, data) {
    
[/code]

ですか？


CC BY-SA 4.0
2020-11-13T05:56:42.220
71916
2020-11-13T05:56:42.220
4236
71912
answer