对接SMN实现短信发送功能
背景信息
通过应用与华为云的消息通知服务SMN(Simple Message Notification)对接,实现短信发送功能。
场景描述
给某手机号码发送条短信,短信内容为:“Hi Lily!”。
前提条件
- 已在华为云的消息通知服务SMN注册账号,并获取“IAM用户名”、“账号名”、所用SMN资源对应的“项目ID”、“项目”。
图1 获取关键信息
- 已获取AK(Access Key ID)、SK(Secret Access Key),即访问密钥对,具体操作请参见获取AK/SK。
新建SMN连接器
- 参考创建连接器入口中操作,进入创建连接器页面。
- 在左侧列表中,选择“消息通知 > 消息通知服务SMN”,单击“+”。
图2 新建SMN连接器
- 设置SMN对接参数,单击“保存”。
对接SMN有密钥模式和用户名密码模式两种,请根据实际业务需求进行选择。
图3 密钥模式
图4 用户名密码模式
- 名称:连接器的名称,在服务编排中选用连接器时的一个标识。
- 账号名:登录消息通知服务SMN的账号名。请与前提条件中获取的“账号名”取值保持一致。
- 项目名:所用SMN资源对应区域的项目名。请与前提条件中获取的“项目”取值保持一致。
- 用户名:使用消息通知服务SMN的用户名。请与前提条件中获取的“IAM用户名”取值保持一致。
- 密码:登录消息通知服务SMN的用户密码。
- 项目ID:项目的唯一标识。请与前提条件中获取的“项目ID”取值保持一致。
- 用户类型:新建连接器所属的用户类型。
- 签发ID:短信内容中,包含的短信签名对应的ID。当“用户类型”为“企业用户”时,该参数可见且需要配置。请从SMN获取,不填默认为华为云企业用户。
- 区域:SMN服务的区域。
- 描述:连接器的描述信息。
- 打包当前配置:默认为选中,对信息敏感的场景,建议不勾选。
选中该选项后,应用打包时会将当前配置的连接器信息一并打出。例如,如果应用包发布到运行环境,当前配置默认会被同步到运行环境中。
- (可选)测试是否能发送短信。
在服务编排中调用连接器
在服务编排中,调用连接器,实现与华为云的消息通知服务SMN的对接。
- 参考如何开发服务编排中操作,创建一个空白服务编排。
图5 添加服务编排
- 在服务编排设计页面左侧,选择“连接器 > 消息通知”,拖拽“SMN”图元至画布中。
SMN是系统预置的,与SMN对接的短信发送接口。
图6 拖拽SMN图元至画布中
- 选中SMN图元,设置基本信息。
图7 基本信息
- 标签:图元在页面显示的名称。
- 名称:图元在系统中的唯一标识,不能和其他图元相同。
- 连接器:该服务编排使用的连接器的名称。
- 单击,设置调用SMN参数。
图8 配置SMN
- 动作:设置为“SMSSendSMS”,是系统预置的短信发送接口。
- 输入参数:设置接口的输入参数。
- “目标”设置为“endPoint”时:请在“源”中,配置短信接收者手机号,可定义为一个输入型变量“{!Phone}”。
- “目标”设置为“message”时:请在“源”中,配置短信内容,可定义为一个输入型变量“{!Message}”。
- 输出参数:设置接口的输出参数。“源”设置为“result”,“目标”用于接收短信发送结果(是否成功发送),必须定义一个空实例的结构变量来进行接收。
- 在服务编排页面左侧,选择“逻辑”,拖拽“决策”图元至画布中。
决策是对当前条件进行判断,根据判断的结果决定执行何种操作,类似if语句的判断。
当短信发送成功时,系统会将“resCode”赋值为“0”,这里创建Decision判断“resCode”是否为“0”,来输出发送是否成功的标识(例如“sendFlag”)从而进行后续操作。
- 单击,单击公式后的,增加“GetResultCode”公式变量,表达式为“GET({!result},"resCode")”,用于接收短信发送结果。
图9 配置“GetResultCode”公式变量
- 配置“决策”的成功分支,即success表示“resCode”为“0”,短信发送成功分支。
图10 配置“决策”成功分支
- 配置“决策”的失败分支,即error表示其他分支,即短信发送失败。
图11 配置“error”分支
- 单击,单击公式后的,增加“GetResultCode”公式变量,表达式为“GET({!result},"resCode")”,用于接收短信发送结果。
- 在服务编排页面左侧,选择“逻辑”,拖拽“赋值”图元至画布中,并进行配置。
创建一个普通变量“sendFlag”。赋值是创建变量的图元,主要作用是给变量赋值。这里增加符合“success”分支的操作,短信发送成功,输出成功标识。
- 单击,单击变量后的,新建一个普通变量“sendFlag”。
- 单击,配置符合“success”的赋值操作。
图12 赋值
- 单击,配置符合“error”的赋值操作。
图13 配置赋值操作
- 如图14所示,连接所有图元。
- 单击服务编排设计页面空白区域,选择,设置服务编排入参和出参。
图15 设置服务编排入参和出参
- 单击页面上方的,保存服务编排。
- 保存成功后,单击,运行服务编排。
- 设置输入参数(接受者号码和短信内容),单击“运行”。
图16 运行服务编排
如图17所示,表示发送成功。