2017-06-05 9 views
0

私は新しいNodeJSです。このサンプルをAWSが評判リスト更新のために変更しようとしていますが、CloudFrontグローバルリージョンにのみ適用されます。NodeJSラムダリージョンWAF IPSetID

https://github.com/awslabs/aws-waf-sample/tree/master/waf-reputation-lists

しかし私は、関数がIPSetIDが存在しない事実上終了し、地域IPSetIDを作成するために、CloudFormationに変更を加えました。これは、SDKが地域ではなくeu-west-1をグローバルに見ているためです。したがって、設定で地域を設定しましたが、それでもIPSetを見つけることができません。

var aws = require('aws-sdk'); 

// configure API retries 
aws.config.update({ 
    region:'eu-west-1', 
    maxRetries: 3, 
    retryDelayOptions: { 
     base: 1000 
    } 
}); 
var waf = new aws.WAF(); 

私はURLを更新するために開始するために理解していないしかし、URLの違いを示し、最近の質問(AWS WAF update ip sets and rules specific to a region from lambdaを)見てきましたか?

Error getting IP sets { [WAFNonexistentItemException: The referenced item does not exist.] 
      message: 'The referenced item does not exist.', 
      code: 'WAFNonexistentItemException', 
      statusCode: 400, 
      retryable: false, 
      retryDelay: 162.11187234148383 } 

    Error getting ranges and/or IP sets { [WAFNonexistentItemException: The referenced item does not exist.] 
      message: 'The referenced item does not exist.', 
      code: 'WAFNonexistentItemException', 
      statusCode: 400, 
      retryable: false, 
      retryDelay: 162.11187234148383 } 


     { 
      "errorMessage": "The referenced item does not exist.", 
      "errorType": "WAFNonexistentItemException", 
      "stackTrace": [ 
      "Request.extractError (/var/task/node_modules/aws-sdk/lib/protocol/json.js:48:27)", 
      "Request.callListeners (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:105:20)", 
      "Request.emit (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:77:10)", 
      "Request.emit (/var/task/node_modules/aws-sdk/lib/request.js:682:14)", 
      "Request.transition (/var/task/node_modules/aws-sdk/lib/request.js:22:10)", 
      "AcceptorStateMachine.runTo (/var/task/node_modules/aws-sdk/lib/state_machine.js:14:12)", 
      "/var/task/node_modules/aws-sdk/lib/state_machine.js:26:10", 
      "Request.<anonymous> (/var/task/node_modules/aws-sdk/lib/request.js:38:9)", 
      "Request.<anonymous> (/var/task/node_modules/aws-sdk/lib/request.js:684:12)", 
      "Request.callListeners (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:115:18)" 
      ] 
     } 

答えて

1

地域WAFをサポートするaws-sdkの最新バージョンがインストールされていることを確認する必要があります。行を変更します。var waf = new aws.WAF();コードは次のようになります。

var readline = require('readline'); 
var aws = require('aws-sdk'); 
var https = require('https'); 
var async = require('async'); 

    // configure API retries 
    aws.config.update({ 
     region:'eu-west-1', 
     maxRetries: 3, 
     retryDelayOptions: { 
      base: 1000 
     } 
    }); 
    var waf = new aws.WAFRegional(); 
    var cloudwatch = new aws.CloudWatch(); 
    var cloudformation = new aws.CloudFormation(); 

私は次のようなバージョンを使用していました。 (package.jsonノード構成ファイルから)

{ 
    "name": "reputation-lists-parser", 
    "version": "1.0.0", 
    "description": "", 
    "main": "reputation-lists-parser.js", 
    "dependencies": { 
    "aws-sdk": "^2.76.0", 
    "async": "^2.4.1", 
    "xml2js": "^0.4.17" 
    } 
} 

コードを含むzipファイル全体をAWS Lambdaにロードする必要がある場合があります。

私はhttps://github.com/itopiacloud/aws-waf-regional-security-automationsに含まれるコードを使用して、この作業を手助けしました。

+0

私はなぜ彼らは1つのクラスを持っていないだろうが、あなたが設定で地域を設定する場合、それは地域 – Neo

関連する問題