前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Azure 静态 web 应用集成 Azure 函数 API

Azure 静态 web 应用集成 Azure 函数 API

作者头像
MJ.Zhou
发布于 2020-11-24 07:07:55
发布于 2020-11-24 07:07:55
1.2K00
代码可运行
举报
文章被收录于专栏:.NET开发那点事.NET开发那点事
运行总次数:0
代码可运行

前几次我们演示了如何通过Azure静态web应用功能发布vue跟blazor的项目(使用 Azure静态web应用+Github全自动部署VUE站点使用Azure静态Web应用部署Blazor Webassembly应用)。但是一个真正的web应用,总是免不了需要后台api服务为前端提供数据或者处理数据的能力。同样前面我们也介绍了Azure函数服务,Azure函数的http trigger可以对http作出响应,可以完美的承当web api的角色。现在Azure静态web应用可以直接集成Azure函数,使得一次发布可以同时发布前端项目(vue、blazor)及后台api服务(azure函数)。

新建Azure函数

上次已经演示过如何发布Blazor项目,这里不在啰嗦,直接找到我们上次的BlazorWebassembly项目的解决方案,添加一个Azure函数。

Azure函数使用Http trigger。Http trigger可以对http请求作出响应,可以看成是一个webapi。

新建完成之后修改Function1.cs类的代码为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  public static class Function1
    {
        [FunctionName("sum")]
        public static async Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");

            string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
            dynamic data = JsonConvert.DeserializeObject(requestBody);

            int a = data.a;
            int b = data.b;

            int c = a + b;

            return new OkObjectResult(c);
        }
    }

代码比较简单,通过读取request的body获取提交的a、b两个值,然后相加之后返回结果。

关于Azure Function的文件参阅使用Azure Functions玩转Serverless

修改Blazor项目

我们开始修改上次的Blazor Webassembly项目。在首页上放置3个文本框及一个按钮。点击按钮的时候把其中两个文本框的值通过http传递到Azure函数中去得到返回值显示在第三个文本框内。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@page "/"
@inject HttpClient Http

<h1>Azure static web app with functions</h1>

A:
<input @bind="a" />+
B:
<input @bind="b" />=
<input @bind="c" />
<button @onclick="sum">求和</button>

@code{
    private int a;
    private int b;
    private string c;

    private async Task sum()
    {
        var result = await Http.PostAsJsonAsync("/api/sum", new
        {
            A = a,
            B = b
        });
        var sum = await result.Content.ReadAsStringAsync();

        c = sum;
    }
}

完成之后提交代码到github。想要了解Blazor的相关内容请阅读我的其他关于Blazor入门的文章。

tag=Blazor

配置静态web应用

打开azure portal,新建一个静态web应用资源,因为前面已经介绍过多次基本的新建过程,这里不在详细介绍。

基本配置跟上次发布Blazor Webassembly应用一样,关键的不同在于API位置需要修改为我们上面新建的Azure函数的项目名称。以便Azure能够找到这个目录。配置好之后点击开始创建。

运行项目

静态web应用资源创建完成后会在github项目上自动添加一个workflow。等待这个workflow显示绿色完成之后就可以正式访问我们的web应用了。

点击静态web应用资源的概述目录,找到url地址复制后在浏览器里打开:

随便输入几个值,点击求和可以看到得到正确的结果。:)

总结

前两次我们演示了通过Azure静态web应用功能发布vue跟Blazor wasm项目。但是他们都是纯静态页面。一般实现一个真正的web应用还需要api服务。Azure静态web应用通过直接对Azure函数的支持简化了项目开发发布流程。我们开发一些简单的项目的时候可以直接使用Azure函数做为api服务,提交代码等待几秒就可以运行了。本来可能需要前后端代码分别部署一次,现在只需要提交一下代码等待几秒就可以运行了。有了云计算程序员真的越来越傻瓜了,笑哭。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-11-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
华为oj之字符串反转
题目: 字符串反转 热度指数:4940 时间限制:1秒 空间限制:32768K 本题知识点: 字符串 题目描述 写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。例如: 输入描述
Enjoy233
2019/03/05
4420
华为oj之字符个数统计
编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。
Enjoy233
2019/03/05
8310
华为oj之等差数列前n项和
题目: 等差数列 热度指数:1010 时间限制:1秒 空间限制:32768K 题目描述 功能: 对于等差数列 2,5,8,11,14… 输入: 正整数N >0 输出: 求等差数列前N项和
Enjoy233
2019/03/05
4640
华为oj之【中级】单词倒排
3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;
Enjoy233
2019/03/05
6690
华为oj之提取不重复的整数
题目: 提取不重复的整数 热度指数:4740 时间限制:1秒 空间限制:32768K 本题知识点: 数组 题目描述 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。 输入描述: 输入一个int型整数 输出描述: 按照从右向左的阅读顺序,返回一个不含重复数字的新的整数 输入例子: 9876673 输出例子: 37689 在线提交网址: http://www.nowcoder.com/practice/253986e66d114d378ae8de2e6c4577c1
Enjoy233
2019/03/05
6140
华为oj之(整型)数字颠倒
程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
Enjoy233
2019/03/05
7020
每日一题C++版(句子反序)
编程是很多偏计算机、人工智能领域必须掌握的一项技能,此编程能力在学习和工作中起着重要的作用。因此小白决定开辟一个新的板块“每日一题”,通过每天一道编程题目来强化和锻炼自己的编程能力(最起码不会忘记编程)
小白学视觉
2019/10/24
6040
华为oj之最小公倍数
正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。
Enjoy233
2019/03/05
7840
华为oj之字符串分割
•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
Enjoy233
2019/03/05
6600
华为oj之求解立方根
立方根的逼近迭代方程是 y(n+1) = y(n)*2/3 + x/(3*y(n)*y(n)),其中y0=x. 求给定的x经过n次迭代后立方根的值。
Enjoy233
2019/03/05
9310
华为oj之字符统计(按出现次数由多到少的顺序进行输出)
如果统计的个数相同,则按照ASII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。
Enjoy233
2019/03/05
1.3K0
华为oj之计算字符个数
写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。
Enjoy233
2019/03/05
5640
C++ Primer Plus习题及答案-第十六章
因为string对象提供了自己的内存管理功能,所以不需要再显式定义复制构造函数、析构程序和赋值运算符。
艰默
2023/02/26
9920
C++ Primer Plus习题及答案-第十六章
C++版 - 剑指offer面试题28: 字符串的排列
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。
Enjoy233
2019/03/05
6360
STL介绍以及string类
是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。
用户11039545
2024/08/20
1390
STL介绍以及string类
每天一道剑指offer-翻转单词顺序列
先反转整个字符串,“student. a am I”反转完就是“I ma a .tneduts”,然后依据空格分割字符串以后,再继续反转每一个单词,最后就是最终的结果
乔戈里
2019/01/28
4580
华为oj之字符串最后一个单词的长度
热度指数:9697 时间限制:1秒 空间限制:32768K 本题知识点: 字符串
Enjoy233
2019/03/05
1K0
华为机试001:字符串最后一个单词的长度(华为OJ001)
华为机试 字符串最后一个单词的长度 计算字符串最后一个单词的长度,单词以空格隔开。 提交网址: http://www.nowcoder.com/practice/8c949ea5f36f422594
Enjoy233
2019/03/05
8760
C++版 - 剑指Offer 面试题35:第一个只出现一次的字符 解题报告(华为OJ034-找出字符串中第一个只出现一次的字符)
题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。(2006年google的一道笔试题。)
Enjoy233
2019/03/05
8430
【C++】9道经典面试题带你玩转string类
https://leetcode.cn/problems/ba-zi-fu-chuan-zhuan-huan-cheng-zheng-shu-lcof/
修修修也
2024/06/17
1060
【C++】9道经典面试题带你玩转string类
相关推荐
华为oj之字符串反转
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档