想知道如何设计 Azure 逻辑应用程序

Want to know how to design Azure Logic Apps

我的工作值得 Azure 逻辑应用程序只是失败。

  1. 收到电子邮件后,
  2. 检查电子邮件正文的大小并删除 HTML 标签
  3. 如果邮件正文大小小于10,要发送警告邮件(内容太短)。

第 1 步没问题,因为 MS 文档中有类似案例。 对于第2步,我设计了http trigger app函数如下,

import logging

import azure.functions as func
import json

def main(req: func.HttpRequest) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')
    logging.info(req.get_body())
    
    #message = req.get_body().decode()
    mess = req.get_body().decode()
    message = str(mess)
    message = message.replace("\r\n", " ")

    ####
    out = remove_html_tags(message)
    logging.info(out)
    ###
# some JSON:
    jmess =  '{{"name":{0}}}'.format(len(out))

# parse x:
    #y = json.loads(jmess)
    return func.HttpResponse(str(len(out)))

import re
def remove_html_tags(raw_html):
  cleanr = re.compile('<.*?>')
  cleantext = re.sub(cleanr, '', raw_html)

  return cleantext

逻辑应用程序设计看起来像 Logic Apps designer capture

与捕获图像一样,我想知道如何在逻辑应用程序设计器中检查 http 触发函数应用程序的 return 值。在附加代码中,return 值类型只是字符串,即电子邮件正文的长度。 (另一个 JSON 版本 return 值不起作用。-- Python 代码中的 jmess 变量)

您没有详细说明您面临的确切问题是什么,或者错误是什么以及在哪里。

仅从您的问题来看,您的条件检查似乎应该如下所示。

int(outputs('TestHttpTrigger'))

int 在检查条件之前将字符串响应转换为整数。

最后我自己找到了答案。

  1. 我认为触发函数的return值只是字符串(或整数)。实际上 return 值是 JSON 形式。
  2. 在撰写本文时 post,我修改了 return 语句。

return func.HttpResponse(str(len(out)), mimetype='application/x-www-form-urlencoded')

  1. 并且在逻辑应用程序设计器中,我使用这个表达式来检查电子邮件的大小 body,

int(actionOutputs('TestHttpTrigger')['body']['$formdata'][0]['key'])

Logic Apps 日志显示了我使用该表达式的原因

{ “状态码”:200, “headers”:{ "Transfer-Encoding": "分块", "Request-Context": "appId=cid-v1:f4f8c55f-e9e7-4f3a-8d3a-a3873d0ee143", “日期”:“2021 年 12 月 6 日星期一 03:45:39 GMT”, “服务器”:“红隼”, "Content-Type": "application/x-www-form-urlencoded", “Content-Length”:“1” }, "body": { "$content-type": "application/x-www-form-urlencoded", "$content": "OA==", "$formdata":[ { "键": "8", “价值”: ”” } ] } }

谢谢@Anupam Chand。