请问一下,我每次部署的时候环境都会被重置到第一个环境 默认的是node12 这样的话就跑不起来,有没有办法修改哪里的配置 可以把环境固定住。
我用的应用中心 参照了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:"} 又没权限
根据您提供的截图,您是在阿里云函数计算的应用中心中部署函数,而不是通过代码部署函数。在这种情况下,您可以尝试在函数配置中设置环境变量,以便在每次部署时保持环境设置不变。具体步骤如下:
登录阿里云函数计算控制台,选择您要修改的函数。 在函数配置页面中,找到“环境变量”选项,并单击“添加环境变量”按钮。 在弹出的对话框中,输入您要设置的环境变量名称和值,然后单击“确定”按钮。 重复以上步骤,添加所有需要的环境变量。 单击“保存”按钮保存更改。 另外,根据您提供的报错信息,可能是由于您的函数代码没有足够的权限来执行某些操作,例如访问文件系统或网络资源。您可以尝试通过为函数配置适当的权限策略来解决此问题。您可以在阿里云函数计算控制台中为函数配置权限策略,以便它可以访问所需的资源和服务。
【回答】 可能是因为默认会使用一个空白的环境,每次重新部署时都会清空之前的环境,因此需要设置阿里云函数计算的环境变量。
首先,您可以在阿里云函数计算的代码根目录中创建一个名为 .env 的文件,然后在文件中添加以下内容:
FC_RUNTIME=nodejs12
这将设置阿里云函数计算的运行时环境为 Node.js 12。还可以将 nodejs12 替换为其他版本号来设置不同的运行时环境。
另外,阿里云函数计算还支持通过控制台或 API 来设置环境变量,可以在控制台中找到您的函数并在左侧的菜单中选择“配置”,然后找到“环境变量”选项卡。在这里,可以添加、编辑或删除环境变量。
通过以上方法设置阿里云函数计算的环境变量后,环境将被固定住,部署时不会被重置。
在阿里云函数计算中,您可以通过在 "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 命令行工具。
从你提供的截图来看,你使用的是应用部署的控制台界面。在应用部署的控制台中,你可以选择部署环境,可以选择 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
文件夹删除再重新安装依赖试试。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。