使用华为云云函数functiongraph
之前使用腾讯云serverless,但是突然开始收费了。所以改用functiongraph
首先登陆华为云。
目录
1.登录华为云
2.在控制台找到functiongraph并开通
3.添加依赖包:
3.1 制作依赖包
3.2引入依赖包
4.发送请求
4.1直接发送
4.1.1uri
4.1.2 请求头
4.1.3 body
4.1.4 Endpoint
4.1.5 测试请求
4.2 通过api网关请求
1.登录华为云
2.在控制台找到functiongraph并开通
这里参考这篇博客:
腾讯云函数收费了 改用免费华为云函数 ------以每日签到打卡类、北京某高校每日上报为例_免费云函数-CSDN博客
3.添加依赖包:
3.1 制作依赖包
python参考这个网址:
制作依赖包_函数工作流 FunctionGraph_开发指南_Python (huaweicloud.com)
node.js参考这个网址:
制作依赖包_函数工作流 FunctionGraph_开发指南_Node.js (huaweicloud.com)
3.2引入依赖包
将制作好的zip包上传:


然后就会创建好依赖包,比如我起名为node_mysql的依赖包创建后如图
然后到函数代码页面添加依赖包:


这样就添加成功了。
然后直接在代码中就可以引入:

4.发送请求
4.1直接发送
参考这里:
同步执行函数_函数工作流 FunctionGraph_API参考_API_函数调用 (huaweicloud.com)
4.1.1uri

project_id获取:

这一列就是project_id,选择对应位置的即可。

function_urn:

4.1.2 请求头
这里有一个必要参数:

这里使用iam获取。
参考这里:
获取IAM用户Token(使用密码)_统一身份认证服务 IAM_API参考_API_Token管理 (huaweicloud.com)

IAMDomain获取:


至于IAMPassword就是IAMuser的password
project.name获取:
这里就是前面获取project_id的那张图对应地区的英文名。
然后通过postman发送请求:


这个就是token。
这里需要注意的scope下必须使用project,不然获取的token不能用于连接云函数服务。
4.1.3 body

这个视具体情况而定。
4.1.4 Endpoint
参考这里:
构造请求_函数工作流 FunctionGraph_API参考_如何调用API (huaweicloud.com)

上面的uri只是resource-path,前面还需要endpoint.
上面的例子iam服务的endpoint,functiongraph的endpoint可以在这里获取:
地区和终端节点_OpenAPI_开发者中心-华为云 (huaweicloud.com)

这个就是。前面的区域不固定,例如上海一是cn-east-3也可以使用。
4.1.5 测试请求
这里我在上海一创建一个python函数。

代码:

就是返回请求内容。
这里替换endpoint,project_id, function_urn后完整的url:
https://functiongraph.cn-east-3.myhuaweicloud.com/v2/221028919ee2453b97bdec80a452d4e8/fgs/functions/urn:fss:cn-east-3:221028919ee2453b97bdec80a452d4e8:function:default:test1:latest/invocations
然后还要添加headers中的token:

填入之前获取的token。
然后设置一下body

注意发送post请求,(functiongraph的api好像只支持post)
结果:

请求成功。
4.2 通过api网关请求
由于我之前做过一个小项目需要在浏览器请求云函数。但是涉及到跨域问题。会先发一个prelight request。但是是OPTIONS类型的请求。由于这个functiongraph的api不支持OPTIONS。所以导致prelight request 一直失败。一直提示response中没有"access-contral-all-origin"。但是我的云函数代码中是设置了response中的这个参数的。实际上就是api根本没有返回response,因为它根本不支持options类型的请求。
例如我只改变请求类型:

解决方法就是使用api网关。
这里为function绑定api网关。


这里随便起个名字,如果之前没有创建过分组,就创建一个,这个貌似没啥影响。

然后就创建好了。直接调用那个url就可以请求了。

可以看到返回的内容还是很复杂的,可能通过api后请求event变复杂了吧。
这里我们改一下代码:


好了。
这样就解决了请求方式限制的问题了。同时也可以解决跨域的问题了。
而且通过api网关请求有一个好处,就是url直接给了,不用改project_id等参数了。
而且如果在创建网关时选择安全认证为不认证,甚至不需要token.
例如删掉Header中的token。

然后修改一下网关设置:
点击这里:



之前默认是iam认证,这里改为无认证。然后一直下一步

点击完成


再测试:

成功。
但是这种方式降低了安全性。
这里测试完毕,销毁云函数。
![]()
相关文章:
使用华为云云函数functiongraph
之前使用腾讯云serverless,但是突然开始收费了。所以改用functiongraph 首先登陆华为云。 目录 1.登录华为云 2.在控制台找到functiongraph并开通 3.添加依赖包: 3.1 制作依赖包 3.2引入依赖包 4.发送请求 4.1直接发送 4.1.1uri 4.1.2 请求头…...
Android logcat系统
一 .logcat命令介绍 android log系统: logcat介绍 : logcat是android中的一个命令行工具,可以用于得到程序的log信息. 二.C/Clogcat访问接口 Android系统中的C/C日志接口是通过宏来使用的。在system/core/include/android/log.h定义了日志的级别: /…...
android 使用协程CoroutineScope 实现定时器
满足延迟执行、立即执行,每次任务间隔时长,总时长的任务 使用1 class TimeViewModel:Viewmodel(){//测试延迟5秒开始执行任务,然后每隔1秒执行1次,总执行时间60秒fun testTime(){var startTime System.currentTimeMillis()log(…...
【algorithm】算法基础课---排序算法(附笔记 | 建议收藏)
🚀write in front🚀 📝个人主页:认真写博客的夏目浅石. 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝 📣系列专栏:AcWing算法学习笔记 💬总结:希望你看完…...
UnityShader——09数学知识3
方阵 行与列数量相等的矩阵,n*n阶矩阵 对角矩阵 当对角线以外的矩阵内元素全为0,则称之为对角矩阵,对角矩阵的前提是必须是方阵 单位矩阵 对角线元素全为1,其余元素全为0,属于对角矩阵的一部分 矩阵和向量 把1 * n阶矩阵称…...
langchain学习笔记(九)
RunnableBranch: Dynamically route logic based on input | 🦜️🔗 Langchain 基于输入的动态路由逻辑,通过上一步的输出选择下一步操作,允许创建非确定性链。路由保证路由间的结构和连贯。 有以下两种方法执行路由 1、通过Ru…...
周处除三害在线资源最新电影1080p高清
打开下面这个链接就可以看到 周处除三害在线资源最新电影1080p高清 如果链接打不开,就复制下面的网址到浏览器打开 https://www.zhufaka.cn/liebiao/A09504AE3BF8BD06 用阿里云盘下载,下载完成之后,用迅雷播放 周处除三害在线资源最新电…...
STM32CubeIDE基础学习-新建STM32CubeIDE基础工程
STM32CubeIDE基础学习-新建STM32CubeIDE基础工程 前言 有开发过程序的朋友都清楚,后面开发是不需要再新建工程的,一般都是在初学时或者有特殊需要的时候才需要新建项目工程的。 后面开发都是可以在这种已有的工程上添加相关功能就行,只要前…...
R语言简介|你对R语言了解多少?
R语言是一种专门用于统计计算和图形展示的开源编程语言,它在数据科学领域有着广泛的应用。下面对R语言的环境、基础语法及注释进行解释: R语言环境 安装与配置 安装R语言通常可以从官方站点下载对应操作系统的安装包,如Windows、Linux、ma…...
Android的硬件接口HAL
我一直觉得,现代计算机不是一门科学,起码快算不上一门理科科学。上上下下全是人造,左左右右全是生意,用管理学,经济学去学计算机,也许更看得懂很多问题。HAL就是一个典型例子。 传统Linux绕开了微软的霸权…...
【js】数组的常用方法
增加 push,unshift,splice,concat 前面三种修改原数组,concat不会修改原数组push 从后面添加数据,并返回新数组的长度unshift 从前面添加数据,并返回新数组的长度splice 可以接受三个参数,第一个参数开始位置,第二个参数是删除元素的数量,第三个参数是插入的数据concat 合并数…...
08. Nginx进阶-Nginx动静分离
简介 什么是动静分离? 通过中间件将动态请求和静态请求进行分离。分离资源,减少不必要的请求消耗,减少请求延时。 动静分离的好处 动静分离以后,即使动态服务不可用,静态资源仍不受影响。 动静分离示意图 动静分离…...
RPC--一起学习吧之架构
RPC(远程过程调用)是一种网络通信协议,它允许一台计算机(客户端)上的程序调用另一台计算机(服务器)上的程序,就像调用本地程序一样。RPC 可以使得网络中的不同进程能够相互调用&…...
服务器后端是学习java还是php
没有绝对的"最好"语言,每种后端语言都有其适用的场景和特点。以下是几种常用的后端语言: 1. Java:Java是一种通用且强大的语言,广泛用于企业级应用和大型系统。它有很好的性能和可靠性,并且具有优秀的生态系…...
DCFL: for Oriented Tiny Object Detection
文章目录 AbstractIntroductionContributionRelated Work定向目标检测微小目标检测多尺度学习标签分配上下文信息特征增强MethodOverview动态先验Coarse Prior MatchingFiner Dynamic Posterior MatchingAblation StudyAnalysis不平衡问题的调解可视化速度Conclusionhh 源代码 …...
代码学习记录11
随想录日记part11 t i m e : time: time: 2024.03.04 主要内容:今天的主要内容是深入了解栈和队列中比较难的题录类型:滑动窗口最大值与前 K K K 个高频元素,最后对于这三天学习的队列和栈的知识进行总结。…...
【LeetCode】第 387 场周赛
3069. 将元素分配到两个数组中 I 给你一个下标从 1 开始、包含 不同 整数的数组 nums ,数组长度为 n 。 你需要通过 n 次操作,将 nums 中的所有元素分配到两个数组 arr1 和 arr2 中。在第一次操作中,将 nums[1] 追加到 arr1 。在第二次操作…...
基于 Vue3打造前台+中台通用提效解决方案(下)
47、通用组件 - 倒计时组件 特惠部分存在一个倒计时的功能,所以我们需要先处理对应的倒计时模块,并把它处理成一个通用组件。 那么对于倒计时模块我们又应该如何进行处理呢? 所谓倒计时,其实更多的是一个时间的处理,那么对于时间的处理,此时我们就需要使用到一个第三方…...
Topaz Video AI:一键提升视频品质,智能重塑影像魅力 mac/win版
Topaz Video AI是一款革命性的视频智能处理软件,它利用先进的机器学习和人工智能技术,为视频创作者提供了前所未有的视频增强和修复功能。无论您是专业视频编辑师、摄影师,还是热爱视频创作的爱好者,Topaz Video AI都能帮助您轻松…...
高效办公软件中哪个提醒待办事项更有效
在忙碌的办公环境中,每个人都像是一台精密运转的机器,处理着各种任务和待办事项。而在这其中,总有一些人,他们仿佛拥有超能力般,总是能准时、高效地完成每一项工作。他们的秘密武器是什么呢?答案就是——高…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...
GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
