更新时间:2024-10-21 GMT+08:00
分享

对接SMN发送短信

通过应用与华为云的消息通知服务SMN(Simple Message Notification)对接,实现短信发送功能。例如,给某手机号码发送条短信,短信内容为:“Hi Lily!”。

前提条件

  • 已在华为云的消息通知服务SMN注册账号,并获取“IAM用户名”、“账号名”、所用SMN资源对应的“项目ID”、“项目”。
    图1 获取关键信息
  • 已获取AK(Access Key ID)、SK(Secret Access Key),即访问密钥对,具体操作请参见获取AK/SK

新建SMN连接器

  1. 参考登录AstroZero新版应用设计器中操作,进入应用设计器。
  2. 在左侧导航栏中,选择“集成”
  3. 单击“连接器”中的“ 连接器实例”,进入连接器实例页面。
  4. 在左侧导航栏中,选择“消息通知 > 消息通知服务SMN”。
  5. 在右侧页面单击“+”,设置消息通知服务SMN对接信息。

    对接SMN有密钥模式和用户名密码模式两种,请根据实际业务需求进行选择。

    图2 密钥模式
    表1 创建SMN连接器参数说明(密钥模式)

    参数

    说明

    名称

    新建连接器的名称。命名要求如下:

    • 长度不能超过64个字符,包括前缀命名空间的长度。
      说明:

      名称前的内容为命名空间,在AstroZero中为了避免不同租户间数据的重名,租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间,创建后不支持修改。

    • 必须以英文字母开头,只能由英文字母、数字或单下划线组成,且不能以下划线结尾。

    访问密钥ID

    用户的访问密钥ID(Access Key ID),配置为前提条件中获取的“AK”取值。

    访问密钥

    用户的访问密钥(Secret Access Key),配置为前提条件中获取的“SK”取值。

    项目ID

    项目的唯一标识,配置为前提条件中获取的“项目ID”取值。

    区域

    SMN服务的区域。

    描述

    根据实际需求,输入连接器的描述信息。

    取值范围:1~255个字符。

    打包当前配置

    选中该选项后,应用打包时会将当前配置的连接器信息一并打包。例如,如果应用包发布到运行环境,当前配置默认会被同步到运行环境中。如果不勾选,则内容不会打包发布到运行环境,此时需要您参考管理应用中的连接器中操作,创建对应的连接器。

    默认为选中,对信息敏感的场景,建议不勾选。

    图3 用户名密码模式

    表2 创建SMN连接器参数说明(用户名密码模式)

    参数

    说明

    名称

    新建连接器的名称。命名要求如下:

    • 长度不能超过64个字符,包括前缀命名空间的长度。
      说明:

      名称前的内容为命名空间,在AstroZero中为了避免不同租户间数据的重名,租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间,创建后不支持修改。

    • 必须以英文字母开头,只能由英文字母、数字或单下划线组成,且不能以下划线结尾。

    帐号名

    登录消息通知服务SMN的账号名。请与前提条件中获取的“账号名”取值保持一致。

    项目名

    所用SMN资源对应区域的项目名。请与前提条件中获取的“项目”取值保持一致。

    用户名

    使用消息通知服务SMN的用户名。请与前提条件中获取的“IAM用户名”取值保持一致。

    密码

    登录消息通知服务SMN的用户密码。

    项目ID

    项目的唯一标识。请与前提条件中获取的“项目ID”取值保持一致。

    用户类型

    新建连接器所属的用户类型。

    签发ID

    短信内容中,包含的短信签名对应的ID。当“用户类型”为“企业用户”时,该参数可见且需要配置。请从SMN获取,不填默认为华为云企业用户。

    区域

    SMN服务的区域。

    描述

    根据实际需求,输入连接器的描述信息。

    取值范围:1~255个字符。

    打包当前配置

    选中该选项后,应用打包时会将当前配置的连接器信息一并打出。例如,如果应用包发布到运行环境,当前配置默认会被同步到运行环境中。

    默认为选中,对信息敏感的场景,建议不勾选。

  6. 设置完成后,单击“保存”
  7. (可选)测试是否能发送短信。

    1. 在连接器详情页面,单击“发送测试”。
    2. 输入接收者手机号码和短信内容,单击“发送”。

      接收者收到短信,表示测试成功。

在服务编排中调用连接器

在服务编排中,调用连接器,实现与华为云的消息通知服务SMN的对接。

  1. 参考创建空白AstroZero服务编排中操作,创建一个空白服务编排。
  2. 在服务编排设计页面左侧,选择“连接器 > 消息通知”,拖拽“SMN”图元至画布中。

    SMN是系统预置的,与SMN对接的短信发送接口。

    图4 拖拽SMN图元至画布中

  3. 选中SMN图元,设置基本信息。

    图5 基本信息
    • 标签:图元在页面显示的名称。
    • 名称:图元在系统中的唯一标识,不能和其他图元相同。
    • 连接器:该服务编排使用的连接器的名称。

  4. 单击,设置调用SMN参数。

    图6 配置SMN
    • 动作:设置为“SMSSendSMS”,是系统预置的短信发送接口。
    • 输入参数:设置接口的输入参数。
      • “目标”设置为“endPoint”时:请在“源”中,配置短信接收者手机号,可定义为一个输入型变量“{!Phone}”。
      • “目标”设置为“message”时:请在“源”中,配置短信内容,可定义为一个输入型变量“{!Message}”。
    • 输出参数:设置接口的输出参数。“源”设置为“result”,“目标”用于接收短信发送结果(是否成功发送),必须定义一个空实例的结构变量来进行接收。

  5. 在服务编排页面左侧,选择“逻辑”,拖拽“决策”图元至画布中。

    决策是对当前条件进行判断,根据判断的结果决定执行何种操作,类似if语句的判断。

    当短信发送成功时,系统会将“resCode”赋值为“0”,这里创建Decision判断“resCode”是否为“0”,来输出发送是否成功的标识(例如“sendFlag”),从而进行后续操作。

    1. 单击,单击公式后的,增加“GetResultCode”公式变量,表达式为“GET({!result},"resCode")”,用于接收短信发送结果。
      图7 配置“GetResultCode”公式变量
    2. 配置“决策”的成功分支,即success表示“resCode”为“0”,短信发送成功分支。
      图8 配置“决策”成功分支
    3. 配置“决策”的失败分支,即error表示其他分支,即短信发送失败。
      图9 配置“error”分支

  6. 在服务编排页面左侧,选择“逻辑”,拖拽“赋值”图元至画布中,并进行配置。

    创建一个普通变量“sendFlag”。赋值是创建变量的图元,主要作用是给变量赋值。这里增加符合“success”分支的操作,短信发送成功,输出成功标识。

    1. 单击,单击变量后的,新建一个普通变量“sendFlag”。
    2. 单击,配置符合“success”的赋值操作。
    图10 赋值

  7. 单击,配置符合“error”的赋值操作。

    图11 配置赋值操作

  8. 图12所示,连接所有图元。

    图12 连接元素

  9. 单击服务编排设计页面空白区域,单击,设置服务编排入参和出参。

    图13 设置服务编排入参和出参

  10. 单击页面上方的,保存服务编排。
  11. 保存成功后,单击,运行服务编排。
  12. 设置输入参数(接受者号码和短信内容),单击“运行”

    图14 运行服务编排
    图15所示,表示发送成功。
    图15 发送成功

相关文档