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