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

请问一下,每一次部署那个函数监听的端口会变成默认的8080,每次部署完都得手动改一下,有什么好办法把

请问一下,每一次部署那个函数监听的端口会变成默认的8080,每次部署完都得手动改一下,有什么好办法把它固定住呢?

提问34.JPG

展开
收起
Java工程师 2023-04-16 10:22:33 400 0
3 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    阿里云函数计算在部署完成后,会为您自动启动函数实例,由于函数计算是事件驱动模型,所以每个函数实例对应一个监听端口,默认情况下监听的是8080端口。如果您希望将监听的端口固定下来,可以尝试如下两种方法:

    1. 在代码中指定监听的端口

      您可以在代码中指定要监听的端口,而不是让函数计算自动分配端口。例如,在Node.js中,您可以使用以下代码来指定要监听的端口:

      const http = require('http');
      const port = 3000; // 指定要监听的端口
      
      const server = http.createServer((req, res) => {
         res.statusCode = 200;
         res.setHeader('Content-Type', 'text/plain');
         res.end('Hello World\n');
      });
      
      server.listen(port, () => {
         console.log(`Server running at http://localhost:${port}/`);
      });
      

      您只需将端口号固定为您想要的端口号即可。

    2. 在函数计算服务中配置端口

      您可以在函数计算服务中配置端口来固定监听的端口。以下是具体步骤:

      a. 登录到阿里云函数计算控制台,在函数列表中找到您要配置的函数,单击函数名称进入详情页面。

      b. 单击左侧导航栏的“配置”标签页。

      c. 在页面底部找到“环境变量配置”部分,单击右侧的“新增”按钮,添加一个名为“FC_SERVER_PORT”的环境变量,并将其值设为您想要的端口号。

      d. 点击页面右上角的“保存”按钮保存您的配置。

      通过上述方法,阿里云函数计算就会在实例启动时使用您指定的端口。

    希望这些方法能够帮助您固定监听的端口。

    2023-04-30 08:10:07
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    您可以在部署函数时使用命令行参数 -p 或 --port 来指定监听的端口,例如:

    faas-cli deploy -f stack.yml --port=3000

    这样,每次部署时都会监听指定的端口。如果您使用的是 Docker Swarm,您可以在 stack 文件中指定端口,例如:

    functions: my-function: image: my-function:latest environment: ... ports: - "3000:8080"

    这样,每次部署时都会将容器内部的 8080 端口映射到主机的 3000 端口。这样做的好处是,即使您忘记在部署时指定端口,也不会影响函数的正常运行。

    2023-04-16 18:01:50
    赞同 展开评论 打赏
  • 在s.yaml 里面改。

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

    2023-04-16 10:29:35
    赞同 展开评论 打赏

快速交付实现商业价值。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载