Node.js NodeJS Lambda区域WAF IPSetID
我是新的NodeJS,正在尝试更改AWS提供的此示例,以更新声誉列表,但它仅适用于CloudFront全球区域 我已经对CloudFormation进行了更改,以创建区域IPSetID,但是该功能存在于IPSetID不存在的事实上。我假设这是因为SDK关注的是全局而不是区域,即eu-west-1,因此我在配置中设置了区域,但它仍然无法定位IPSetNode.js NodeJS Lambda区域WAF IPSetID,node.js,aws-lambda,aws-sdk,aws-sdk-nodejs,amazon-waf,Node.js,Aws Lambda,Aws Sdk,Aws Sdk Nodejs,Amazon Waf,我是新的NodeJS,正在尝试更改AWS提供的此示例,以更新声誉列表,但它仅适用于CloudFront全球区域 我已经对CloudFormation进行了更改,以创建区域IPSetID,但是该功能存在于IPSetID不存在的事实上。我假设这是因为SDK关注的是全局而不是区域,即eu-west-1,因此我在配置中设置了区域,但它仍然无法定位IPSet var aws = require('aws-sdk'); // configure API retries aws.config.update(
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
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)"
]
}
您应该确保拥有支持区域WAF的aws sdk的更新版本。更改行var waf=新的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中
我使用中包含的代码来帮助我实现这一点。我不明白为什么他们没有一个类,但如果在配置中设置一个区域,那么它将是区域性的