AWS Lambda配置咨询:调用API需添加的策略及DNS解析(53端口/UDP)启用方法
AWS Lambda两项配置方案:IAM权限配置与DNS解析设置
一、IAM策略配置(允许调用API)
你的Lambda代码是调用外部公网HTTPS API(bittrex.com),这种场景下不需要额外添加专门的IAM策略——因为IAM权限主要用于控制Lambda对AWS内部服务(比如S3、API Gateway)的访问,调用外部公网API属于Lambda的出站网络请求,只要Lambda有正常的网络通路即可。
如果你的Lambda部署在VPC内,只需确保VPC安全组放行出站HTTPS(443端口)请求,这不属于IAM策略的范畴。
如果是调用AWS自家的API Gateway服务,才需要在Lambda执行角色的IAM策略中添加类似以下权限:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "execute-api:Invoke", "Resource": "arn:aws:execute-api:区域ID:账号ID:API ID/*/*/*" } ] }
二、配置Lambda解析DNS(启用53端口与UDP协议)
DNS解析默认依赖UDP 53端口,配置分两种场景:
1. Lambda未部署在VPC中
这种情况下Lambda默认使用AWS公共DNS服务,无需手动配置UDP 53端口,代码中的域名(bittrex.com)会自动被解析。
2. Lambda部署在VPC中
需要完成两项配置:
- 安全组出站规则:添加一条出站规则,允许UDP协议访问53端口,目标建议指定VPC的DNS服务器IP(通常是VPC网段的第二个IP,例如VPC网段为10.0.0.0/16时,DNS地址为10.0.0.2),也可按需设置为0.0.0.0/0(不推荐,安全性更低)。
- 子网DNS配置:确保Lambda所在子网启用了DNS解析(VPC默认开启);若使用自定义DNS服务器,需在VPC的DHCP选项集中配置对应服务器地址。
附:你的Lambda代码
var https = require('https'); exports.handler = (event, context, callback) => { var params = { host: "bittrex.com", path: "/api/v1.1/public/getmarketsummaries" }; var req = https.request(params, function(res) { let data = ''; console.log('STATUS: ' + res.statusCode); res.setEncoding('utf8'); res.on('data', function(chunk) { data += chunk; }); res.on('end', function() { console.log("DONE"); console.log(JSON.parse(data)); }); }); req.end(); };
内容的提问来源于stack exchange,提问作者manuelBetancurt
相关产品推荐
相关产品推荐

