开发者社区 > 云原生 > Serverless > 正文

请问一下,我每次部署的时候环境都会被重置到第一个环境 默认的是node12 这样的话就跑不起来,有没

请问一下,我每次部署的时候环境都会被重置到第一个环境 默认的是node12 这样的话就跑不起来,有没有办法修改哪里的配置 可以把环境固定住。

提问30.png

我用的应用中心 参照了https://help.aliyun.com/document_detail/132044.html?spm=5176.fcnext.0.0.431878c8S3Ehui#p-x11-e4f-0yr 添加了node16 但是 报错 {"ErrorCode":"CAFilePermission","ErrorMessage":"Function instance exited unexpectedly(code 13, message:permission denied) with start command '/code/node-v16.20.0-darwin-x64/bin/node index.js'.\nLogs:"} 又没权限

提问31.png

展开
收起
函数计算小白 2023-05-18 17:15:03 225 0
5 条回答
写回答
取消 提交回答
  • 值得去的地方都没有捷径

    根据您提供的截图,您是在阿里云函数计算的应用中心中部署函数,而不是通过代码部署函数。在这种情况下,您可以尝试在函数配置中设置环境变量,以便在每次部署时保持环境设置不变。具体步骤如下:

    登录阿里云函数计算控制台,选择您要修改的函数。 在函数配置页面中,找到“环境变量”选项,并单击“添加环境变量”按钮。 在弹出的对话框中,输入您要设置的环境变量名称和值,然后单击“确定”按钮。 重复以上步骤,添加所有需要的环境变量。 单击“保存”按钮保存更改。 另外,根据您提供的报错信息,可能是由于您的函数代码没有足够的权限来执行某些操作,例如访问文件系统或网络资源。您可以尝试通过为函数配置适当的权限策略来解决此问题。您可以在阿里云函数计算控制台中为函数配置权限策略,以便它可以访问所需的资源和服务。

    2023-05-19 08:31:40
    赞同 展开评论 打赏
  • 直接这里选 ,然后导出配置参考一下就ok

    回答10.png

    此答案来自钉钉群“阿里函数计算官网客户"

    2023-05-18 20:09:25
    赞同 展开评论 打赏
  • CSDN博客专家,51CTO博主专家,多知名企业认证讲师&签约作者&培训讲师,特邀作者等,华为云专家,资深测试开发专家,金牌面试官,职场面试培训及规划师。

    【回答】 可能是因为默认会使用一个空白的环境,每次重新部署时都会清空之前的环境,因此需要设置阿里云函数计算的环境变量。

    首先,您可以在阿里云函数计算的代码根目录中创建一个名为 .env 的文件,然后在文件中添加以下内容:

    FC_RUNTIME=nodejs12

    这将设置阿里云函数计算的运行时环境为 Node.js 12。还可以将 nodejs12 替换为其他版本号来设置不同的运行时环境。

    另外,阿里云函数计算还支持通过控制台或 API 来设置环境变量,可以在控制台中找到您的函数并在左侧的菜单中选择“配置”,然后找到“环境变量”选项卡。在这里,可以添加、编辑或删除环境变量。

    通过以上方法设置阿里云函数计算的环境变量后,环境将被固定住,部署时不会被重置。

    2023-05-18 18:43:55
    赞同 展开评论 打赏
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    在阿里云函数计算中,您可以通过在 "template.yml" 中指定 Function 的运行环境的方式来固定环境。 以 Node.js 为例,您可以在 "template.yml" 的 "Properties" 字段中设置 "Runtime" 属性为您需要的 Node.js runtime 版本。例如:

    ROSTemplateFormatVersion: '2015-09-01'
    Resources:
      myFunction:
        Type: 'Aliyun::Serverless::Function'
        Properties:
          Handler: index.handler
          Runtime: nodejs14
          MemorySize: 128
          Timeout: 60
          CodeUri: ./
          ......
    

    在上面代码中,将 "Runtime" 属性设置为 "nodejs14",将 Node.js runtime 版本固定为 v14。

    使用此方法时需要确保电脑中安装了对应版本的 Node.js 和 Fun 命令行工具。

    2023-05-18 18:42:36
    赞同 展开评论 打赏
  • 从你提供的截图来看,你使用的是应用部署的控制台界面。在应用部署的控制台中,你可以选择部署环境,可以选择 Nodejs 12.X 和 Nodejs 14.X 两种环境进行部署。

    如果你要将部署环境固定在某个特定版本的 Node.js 上,则可以在代码仓库中包含一个 .env 文件,通过设置 FC_RUNTIME 的值来指定所需的 Node.js 版本。例如,设置 FC_RUNTIME=nodejs14,则部署的环境将固定为 Node.js 14.x 版本。

    关于你使用应用中心的部署报错问题,在你添加了 Node.js 16 环境后,可能出现了权限问题。你可以检查一下你的代码是否包含了不该包含的文件,或者尝试将 node_modules 文件夹删除再重新安装依赖试试。

    2023-05-18 18:40:45
    赞同 展开评论 打赏

快速交付实现商业价值。

相关电子书

更多
探究 Node.js 的服务端之路 立即下载
个推微服务实践 基于OpenResty 和Node.js 立即下载
沪江基于Node.js大规模应用实践 立即下载