云原生身份z在线识别小项目(阿里云Serverless+Python)

云原生身份z在线识别小项目(阿里云Serverless+Python),第1张

云原生身份z在线识别小项目(阿里云Serverless+Python) 前言 什么是Serverless Serverless由两部分组成,Server和Less。

前者可以理解为其解决方案范围处在服务端;后者可以译为少量的;组合起来就是较少服务端干预的服务端解决方案。

Serverless 俗称为“无服务器架构”,Serverless 不是具体的一个编程框架、类库或者工具。简单来说,Serverless 是一种软件系统架构思想和方法,它的核心思想是用户无须关注支撑应用服务运行的底层主机。这种架构的思想和方法将对未来软件应用的设计、开发和运营产生深远的影响。

所谓“无服务器”,并不是说基于 Serverless 架构的软件应用不需要服务器就可以运行,其指的是用户无须关心软件应用运行涉及的底层服务器的状态、资源(比如 CPU、内存、磁盘及网络)及数量。软件应用正常运行所需要的计算资源由底层的云计算平台动态提供。

serverless详细介绍 什么是FC

FC(函数计算):阿里云函数计算是事件驱动的全托管计算服务。通过函数计算,用户无需管理服务器等基础设施,只需编写代码并上传。函数计算会为您准备好计算资源,以d性、可靠的方式运行您的代码,并提供日志查询、性能监控、报警等功能。

FC工作流程

  • 开发者使用编程语言编写应用和服务。函数计算支持的开发语言,请参见开发语言列表。

  • 开发者上传应用到函数计算。
    上传途径包括:

    • 通过函数计算控制台上传。
    • 通过Serverless Devs上传。
    • 通过API或SDK上传。
  • 触发函数执行。触发方式包括事件触发以及函数计算API、SDK等。

  • 动态扩缩容以响应请求。函数计算可以根据用户请求量自动扩缩容,该过程对您和您的用户均透明无感知。

  • 根据函数的实际执行时间按量计费。

1. 首先开通阿里云身份z识别服务 和 阿里云函数计算服务(FC)
  • 文字识别服务
  • 函数计算
在菜单栏搜索FC 2.创建服务 3.创建函数 选择使用模板创建 flask-web

d性实例等设置可在配置之后修改

函数创建成功,进入在线IDE 在这里我们就可以编写自己想要的函数服务了 4.身份z识别服务代码添加
  • 首先添加依赖包

【身份z识别附件】附件.zip

将这三个文件上传至项目根目录

* 在项目根目录新建 recognizeIdentityCard.py 文件 * 在recognizeIdentityCard.py中写入如下代码:
#!/usr/bin/env python
# coding=utf-8
import json
from aliyunsdkcore.client import AcsClient
from aliyunsdkocr.request.v20191230.RecognizeIdentityCardRequest import RecognizeIdentityCardRequest


ak = 'LTA***************ixV'  #  AccessKey ID
secret = '4r*********************cK' # AccessKey Secret
region_id = 'cn-shanghai'


# url转换
def generate_url(or_url):
 
    from viapi.fileutils import FileUtils
    file_utils = FileUtils(ak, secret)
    oss_url = file_utils.get_oss_url(or_url, "jpg", False)
    print(oss_url)
    return oss_url


# 识别身份z正面信息
def face_recognizeIdentityCard(face_url):
    face_url = generate_url(face_url)

    client = AcsClient(ak=ak, secret=secret, region_id=region_id)
    request = RecognizeIdentityCardRequest()
    request.set_accept_format('json')
    # 识别正面
    request.set_Side("face")
    request.set_ImageURL(face_url)
    request = client.do_action_with_exception(request)
    re = str(request, encoding='utf-8')
    # print(re)

    re_dict = eval(re)
    info = re_dict['Data']['FrontResult']
    info_dict = {}
    info_dict['IDNumber'] = info['IDNumber']
    info_dict['Name'] = info['Name']
    info_dict['Gender'] = info['Gender']
    info_dict['Nationality'] = info['Nationality']
    info_dict['BirthDate'] = info['BirthDate']
    info_dict['Address'] = info['Address']
    # print(info_dict)
    return info_dict


def back_recognizeIdentityCard(back_url):
    back_url = generate_url(back_url)

    client = AcsClient(ak=ak, secret=secret, region_id=region_id)
    request = RecognizeIdentityCardRequest()
    # 识别背面
    request = RecognizeIdentityCardRequest()
    request.set_Side("back")
    request.set_ImageURL(back_url)
    request = client.do_action_with_exception(request)
    re = str(request, encoding='utf-8')
    # print(re)

    re_dict = eval(re)
    info = re_dict['Data']['BackResult']
    info_dict = {}
    info_dict['StartDate'] = info['StartDate']
    info_dict['EndDate'] = info['EndDate']
    info_dict['Issue'] = info['Issue']
    # print(info_dict)
    return info_dict


def get_IdentityCardInfo(face_url, back_url):
    re_dict = {
        'FrontResult': face_recognizeIdentityCard(face_url),
        'BackResult': back_recognizeIdentityCard(back_url)
    }
    print(re_dict)
    return json.dumps(re_dict)


  • 更改 ak 和 secret
ak = 'LTA***************ixV' #你自己的 AccessKey ID
secret = '4r*********************cK'# 你自己的 AccessKey Secret
  • AccessKey ID 和 AccessKey Secret 获取方法如下
  • 注意:为方便使用,建议下载并保存Secret

  • 在main.py 中注册身份z识别接口路由:

@app.route('/idcard', methods=['GET'])
def idcard():
    from recognizeIdentityCard import get_IdentityCardInfo
    face_url=request.args.get('FaceUrl')
    back_url=request.args.get('BackUrl')
    
    re=get_IdentityCardInfo(face_url,back_url)
  
    resp = make_response(re, 200)
    return resp

5.点击部署
6.获取身份z识别服务接口url
  • 点击调用
  • 拿到请求地址后拼接上我们自己定义的路由’idcard’得到最终的url:

列如 请求地址为:
https://18xxxxxxxxxx89.cn-hangzhou.fc.aliyuncs.com/2016-08-15/proxy/id_identify.LATEST/id_identify/

则最终的url为:
https://18xxxxxxxxxx89.cn-hangzhou.fc.aliyuncs.com/2016-08-15/proxy/id_identify.LATEST/id_identify/idcard


7.使用接口测试工具进行测试

在APIPost中填入最终url
选用get方法
参数位置 Query

至此你已经成功搭建你的第一个云原生应用

(注意:阿里云身份z识别服务按流量计费,每次调用成本约为0.08元)

参考文章:https://blog.csdn.net/qq_45385867/article/details/115272821

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5679722.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存