使用华为云云函数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认证,这里改为无认证。然后一直下一步

点击完成

再测试:

成功。

但是这种方式降低了安全性。

这里测试完毕,销毁云函数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/429214.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用word写论文或项目书时,插入图片显示不完整或随文字移动解决办法

一、背景 虽然我们写科技论文时可以用Latex进行排版,但在写项目书或硕士论文时,一般给的模板都是word类型,所以我们还是不能放弃word的使用。但在word中插入图片时,会出现图片显示不完整情况,如下图所示,具…

单调队列(347. 前 K 个高频元素239. 滑动窗口最大值)

单调队列和单调栈其实差不多,就是维护一个区间单调的队列或者是栈,单调队列就是我们所说的大顶堆小顶堆, //升序队列 小顶堆 great 小到大 priority_queue <int,vector<int>,greater<int> > pri_que; //降序队列 大顶堆 less 大到小 默认 priority_qu…

xss.haozi.me:0x01

<textarea></textarea> 标签是不可以写入javascript代码的 所以我们要把textarea标签给闭合掉 这样就成功了 </textarea><script>alert(1)</script>

【Java设计模式】四、原型设计模式

文章目录 1、原型设计模式2、深克隆和浅克隆 1、原型设计模式 说明&#xff1a; 用一个原型对象&#xff0c;创建和原型对象相同的对象&#xff0c;以能够保证创建对象的性能是创建大量相同对象的最佳方式 使用场景&#xff1a; 对象的创建非常复杂&#xff0c;可以使用原型…

神经网络结构——CNN、RNN、LSTM、Transformer !!

文章目录 前言 一、什么是CNN 网络结构 解决问题 工作原理 实际应用 二、什么是RNN 网络结构 解决问题 工作原理 应用场景 三、什么是LSTM 网络结构 解决问题 工作原理 应用场景 四、什么是Transformer 网络结构 解决问题 工作原理 BERT GPT 前言 本文将从什么是CNN&#xff1…

使用 Footprint Analytics 提升 Web3 项目的空投活动

作者&#xff1a;stellafootprint.network 空投已成为 Web3 项目提升知名度、激励早期贡献者并吸引新用户的核心策略。尽管空投的概念一目了然——即向各类钱包免费发放代币&#xff0c;但要成功实施却需要周密的执行和战略规划。单纯的代币分发并非万全之策。在许多的空投后&a…

爬虫案例一

首先我举一个案例比如豆瓣电影排行榜 (douban.com)这个电影&#xff0c;首先我们进去检查源代码 说明源代码有&#xff0c;说明是服务器渲染&#xff0c;可以直接那html 但是返回的结果是空&#xff0c;所以我们需要在头里面加上User-Agent 然后可以看到有返回的结果&#xff0…

VBA字典与数组第十二讲:行列数相同的数组间运算

《VBA数组与字典方案》教程&#xff08;10144533&#xff09;是我推出的第三套教程&#xff0c;目前已经是第二版修订了。这套教程定位于中级&#xff0c;字典是VBA的精华&#xff0c;我要求学员必学。7.1.3.9教程和手册掌握后&#xff0c;可以解决大多数工作中遇到的实际问题。…

RabbitMQ的整体架构是怎么样的?

RabbitMQ是一个开源的消息中间件&#xff0c;用于在应用程序之间传递消息。它实现了AMQP(高级消息队列协议)并支持其他消息传递协议&#xff0c;例如STOMP(简单文本定向消息协议)和MQTT&#xff08;物联网协议&#xff09; 他的整体架构大致如下&#xff1a; Producer&#xf…

ABAP - SALV教程12 显示图标和提示信息

ALV要求字段的值为图标的需求并不多见&#xff0c;一般都用于红黄绿灯&#xff0c;来表示单据的执行状态&#xff0c;添加图标的方式也可以实现红黄绿灯的功能&#xff0c;也可以参考SALV实现红黄绿灯这篇文章&#xff1a;http://t.csdnimg.cn/Dzx7x效果图SAVL列设置为图标图标…

【Flutter 面试题】在flutter里streams是什么?有几种streams?有什么场景用到它?

【Flutter 面试题】在flutter里streams是什么&#xff1f;有几种streams&#xff1f;有什么场景用到它&#xff1f; 文章目录 写在前面解答补充说明**Single subscription streams** 读取文件广播流 Broadcast streams 通知多个监听器关于状态的变化 写在前面 关于我 &#xf…

鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:组件标识)

id为组件的唯一标识&#xff0c;在整个应用内唯一。本模块提供组件标识相关接口&#xff0c;可以获取指定id组件的属性&#xff0c;也提供向指定id组件发送事件的功能。 说明&#xff1a; 从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容…

最短路径Floyd算法

第一题&#xff1a;[USACO08OPEN] Clear And Present Danger S #include<bits/stdc.h> using namespace std; int n,m; int g[105][105]; int arr[100005]; long long sum; int main() {scanf("%d%d",&n,&m);for(int i1;i<m;i){scanf("%d"…

Pytorch实现卷积、Depthwise Convolution、分组卷积、动态卷积和转置卷积、反卷积、全卷积、空洞卷积、可变形卷积、深度可分离卷积等操作

底层是用img2col实现的&#xff0c;但是如果想用pytorch来实现&#xff0c;可以试试torch.unfold这个函数&#xff0c; torch.unfold torch.unfold可以按照指定维度&#xff0c;以一定的间隔将原始张量进行分片&#xff08;slicing&#xff09;&#xff0c;然后返回重整后的张…

开发知识点-前端-layUI

layui layertabletable render <script type"text/html" id"buttonTpl">{{# if(d.check true){ }}<button class"layui-btn layui-btn-xs">已审核</button>{{# } else { }}<button class"layui-btn layui-btn-prim…

Docker镜像导出/导入

Docker镜像导出/导入 一、前言 在实际操作中&#xff0c;为了便于docker镜像环境和服务配置的迁移&#xff0c;我们有时需要将已在测试环境主机上完成一系列配置的docker镜像或运行中的容器镜像导出&#xff0c;并传输到生产或其他目标环境主机上运行。为此&#xff0c;本文主…

Python-sklearn-LinearRegression

目录 1 手动实现/使用sklearn实现线性回归训练 1.1 单特征线性回归&#xff08;One Feature&#xff09; 1.2 多特征线性回归&#xff08;Multiple Features&#xff09; 1.3 多项式线性回归&#xff08;Polynomial&#xff09; 1 手动实现/使用sklearn实现线性回归训练 1…

flutter之终极报错

看到这个报错头都大了 一开始在网上各种搜搜&#xff0c;然后有人说是flutter版本的问题&#xff0c;改完版本之后还是不对&#xff0c;又是各种搜搜搜 有人说是环境变量的问题&#xff0c;后来改了环境变量&#xff0c;妈的&#xff0c;竟然还不行&#xff0c;想砸电脑的心都…

深入浅出RPC原理

远程过程调用(Remote Procedure Call&#xff0c;简称RPC)&#xff0c;在微服务大行其道的今天&#xff0c;得到了广泛的应用。因此&#xff0c;在分布式系统服务群中开发应用&#xff0c;了解RPC一些原理和实现架构&#xff0c;还是很有必要的。本文&#xff0c;将从大的框架层…

js字符串转json的3种方法

1.eval方式解析 function strToJson(str){var json eval("(" str ")");return json;}console.log(strToJson("{int:1, string:demo}")); 运行截图&#xff1a; 注&#xff1a; 记得别忘了str两旁的小括号。 永远不要使用 eval !!! eval() 是一…
最新文章