我尝试用LocalStack运行lambda函数。我安装了awscli-local和localstack
pip3安装awscli-local
pip3安装--用户localstack--忽略-安装六个
然后我启动了localstack
lamdba_executor=Docker本地堆栈启动--Docker
当我现在要创建lambda函数时
aws lambda create-function--function-name Test--zip-file fileb://mylambda.zip--handler index.handler--运行时“NodeJS6.10”--endpointhttp://localhost:4574--角色管理
我得到这个错误
调用CreateFunction操作时出错(ResourceConflictException):函数已存在:Test
列出函数不返回任何信息
aws lambda列表-函数--endpointhttp://localhost:4574
有人知道为什么localstack认为函数已经在那里了吗?
您可以从Commodeer应用程序直接在localstack中调用lambdas。它使用Docker在引擎盖下安装localstack。
lambda细节上有一个按钮,允许您指定负载,然后查看cloudwatch日志。
我也看到了这个问题。但并不是每次我尝试在LocalStack中创建lambda时都发生这种情况。我注意到的是lambda创建似乎需要相当长的时间,在我的mac上创建lambda时会消耗大量的CPU。我的初步猜测是,由于创建ambda所花费的时间,在lambda创建过程中,有些东西超时了,就好像在内部重试创建,它发现lambda退出了一样。如果我在收到这个错误消息后用awslocal
查询lambda,我会看到它存在。
我在一个内存为32GB的MBP上运行这个程序,并将Docker引擎的资源分配增加到16GB和8个处理器,希望用额外的资源来解决这个问题,但这似乎没有什么帮助。欢迎提出建议。