登录
首页 >  Golang >  Go问答

无法使用 lambda 访问远程文件

来源:stackoverflow

时间:2024-04-26 10:27:36 180浏览 收藏

欢迎各位小伙伴来到golang学习网,相聚于此都是缘哈哈哈!今天我给大家带来《无法使用 lambda 访问远程文件》,这篇文章主要讲到等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!

问题内容

我刚刚创建了一个 lambda 并为其指定了默认 vpc、安全组和子网。为其指定一个具有 awslambdavpcaccessexecutionrole 的角色。已验证的出站规则显示所有端口和协议均为 0.0.0.0/0。已验证 lambda.amazonaws.com 是策略上的可信实体。

给它的代码是这样的(在本地工作):

package main

import (
    "fmt"
    "io/ioutil"
    "log"
    "net/http"
)

func main() {
    res, err := http.Get("http://www.google.com/robots.txt")
    if err != nil {
        log.Fatal(err)
    }
    robots, err := ioutil.ReadAll(res.Body)
    res.Body.Close()
    if err != nil {
        log.Fatal(err)
    }
    fmt.Printf("%s", robots)
}

我在 lambda 中使用“测试”函数,而我遇到的麻烦是: 获取“http://www.google.com/robots.txt”:拨打 tcp 172.217.1.196:80:i/o timeout

我已尝试查看有关该主题的每个 aws 文档,看来我没有遗漏任何内容,但也许其他人会知道?

我最初并没有尝试访问 google robots.txt 文件,但无论我尝试什么,都得到相同的结果,我想我应该直接从文档中提取一个示例来排除我正在做的任何事情。至少我知道我的代码正在执行,否则我们不会走到这一步。有什么想法可以尝试吗?


解决方案


我在这里忽略的一件事是子网需要公共 NAT 网关......而不是互联网网关。一旦我们添加了这些,它就能够到达 AWS 墙外并下载所需的文件。

本篇关于《无法使用 lambda 访问远程文件》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>