serverless.com与AWS的关联关系及部署Lambda无法在AWS查询问题
Serverless.com与AWS的关联关系
Serverless.com是Serverless Framework的开发运营主体,Serverless Framework本身是开源的无服务器应用编排工具,核心作用是简化不同云厂商无服务器资源的配置、部署、运维流程,本身不提供计算、存储等底层云资源。你在serverless.com注册的账号属于Serverless Framework的平台账号,用于使用其提供的部署监控、日志聚合、团队协作等增值能力,你部署的无服务器函数实际会落到你配置对接的云厂商(比如AWS)账号下。
部署后AWS侧看不到Lambda函数的排查方案
你执行aws lambda list-functions返回空结果,可按以下优先级排查:
- AWS凭证不匹配:Serverless部署时使用的AWS凭证,和你登录AWS控制台、执行aws cli时使用的凭证不属于同一个AWS账号。Serverless读取凭证的优先级为:部署命令行传入的凭证 > 项目
serverless.yml中指定的profile > 系统环境变量中的AWS凭证 > 本地~/.aws/credentials文件中的default配置。你可以执行serverless deploy --verbose查看部署日志中输出的AWS账号ID,和AWS控制台右上角展示的账号ID对比是否一致。 - 区域不匹配:Lambda属于区域级服务,不同区域的资源互相隔离。Serverless默认部署区域为
us-east-1,如果你在serverless.yml的provider块中自定义了region配置,或者你AWS控制台、aws cli默认查询的区域和部署区域不一致,就会查询不到结果。你可以指定区域执行查询命令验证:
同时将AWS控制台切换到对应区域查看即可。aws lambda list-functions --region <实际部署的区域ID> - 使用了官方沙箱环境:如果是刚注册serverless.com账号后的新手引导测试部署,且你没有在项目中配置过自己的AWS凭证,测试函数会默认部署到Serverless官方提供的公共AWS沙箱环境,不属于你个人的AWS账号,因此你自己的账号下查询不到。你只需要在项目中配置好自己的AWS凭证后重新部署,资源就会同步到你的个人AWS账号下。
内容的提问来源于stack exchange,提问作者Grzegorz Wilanowski
相关产品推荐
相关产品推荐

