无法使用Windows 10中的无服务器框架进行部署

时间:2017-08-16 01:28:52

标签: serverless-framework

尝试使用Windows 10通过无服务器框架进行部署失败:

  

C:\ Users \ xxxxxx> sls deploy --verbose无服务器:打包   service ...无服务器:排除开发依赖...

     

错误---------------------------------------------- ----

     

EPERM:不允许操作,scandir   ' C:\用户\ XXXXXX \应用程序数据\本地\ ElevatedDiagnostics'用于调试   日志,在设置" SLS_DEBUG = *"之后再次运行环境变量。

     

     

您的环境信息----------------------------- OS:win32   节点版本:6.11.2无服务器版本:1.19.0

     

在提升的权限下使用命令提示符再次尝试:

     

     

EBUSY:资源繁忙或被锁定,scandir   ' C:\用户\ XXXXXX \应用程序数据\本地\微软\ InputPersonalization \ TextHarvester \ WaitList.dat'

我首先假设存在权限问题,所以我在完全管理模式下使用命令提示符重试,但刚刚遇到第二个错误。我的研究提出了Windows搜索的一个问题,所以我将其关闭(以及所有后台应用程序)。再次尝试(又一次)我遇到了更多类似的问题,我无法部署任何东西。任何人都有类似的问题,并找到了解决方法吗?

1 个答案:

答案 0 :(得分:1)

我最终解决了这个问题,所以万一其他人在这里遇到这个问题是一个总结。似乎有两个问题:

  1. 不要在根文件夹中创建功能。为无服务器功能创建一个特定的文件夹,即不在C:\ Users \ nnnnnn>中。但在常规文档存储中。在Windows 10中,如果您使用OneDrive文件夹,它可以很好地工作,其好处是您的功能也会被复制到您可能使用的其他开发机器(并且会自动备份到异地)。

  2. 更重要的是,如果您尝试部署到aws CLI配置中设置的默认区域以外的区域,则无服务器框架似乎存在问题。我不知道为什么会这样,因为我在AWS CLI中使用的凭据已获得所有地区的授权。我也不知道为什么这个问题应该导致无服务器试图访问一系列没有权限的Windows文件,但不过......

  3. 在我的情况下,我主要使用区域ap-southeast-2。默认情况下,SLS CREATE使用默认的US区域生成serverless.yml。如果保持原样,则部署区域与AWS CLI区域之间存在不匹配。不好。为了避免必须在SLS deploy命令中指定部署区域的轻微痛苦,只需更新serverless.yml文件中的部署区域以匹配CLI区域。

    现在可以治疗......