解决方案架构师系列 - AWS - Pinpoint
AWS Pinpoint介绍
Amazon Pinpoint 为营销人员和开发人员提供了一款可自定义的工具,助力他们大规模地开展跨渠道、行业和活动的客户通信。
Amazon Pinpoint是一个全面的客户参与平台,旨在帮助营销人员和开发人员大规模地开展跨渠道、行业和活动的客户通信。它提供了一系列功能,包括创建和管理营销活动、客户细分、推送通知、电子邮件、短信、语音消息以及应用程序内消息等,通过这些功能,用户可以与客户进行互动并分析活动效果,以优化营销策略。
使用Amazon Pinpoint的主要步骤包括:
- 创建项目:首先,用户需要在AWS控制台中创建一个新的项目,这是使用Amazon Pinpoint的第一步。
- 导入数据并创建客户细分:接下来,导入客户数据并创建不同的客户细分,以便更精确地定位目标受众。
- 创建活动:设计并创建各种营销活动,包括推送通知、电子邮件、短信等。
- 查看活动分析:活动创建后,可以通过分析工具查看活动的效果,包括送达率、打开率、点击率等,以便优化未来的活动。
- 项目管理和发送:管理项目,包括设置推送通知、电子邮件、短信等,并监控其性能。
Amazon Pinpoint还提供了多种最佳实践和建议,帮助用户优化送达率、提高客户参与度,并通过收件箱置入测试等方式确保邮件不被标记为垃圾邮件。此外,它还支持使用专用IP地址,帮助用户更好地管理邮件发送,以及通过沙盒模式对短信和语音消息进行限制和管理。
总的来说,Amazon Pinpoint是一个功能强大的工具,它允许用户通过多种渠道与客户进行互动,并通过详细的数据分析和优化建议,提高营销活动的效率和效果12。
Amazon Pinpoint 的安全最佳实践
使用 AWS 身份和访问管理 (IAM) 账户控制 API 操作的 Amazon Pinpoint 访问权限,尤其是创建、修改或 Amazon Pinpoint 删除资源的操作。对于 Amazon Pinpoint API,此类资源包括项目、活动和旅程。对于 Amazon Pinpoint SMS 和 Voice API,此类资源包括电话号码、资源池和配置集。
-
为每个管理 Amazon Pinpoint 资源的人创建一个单独的用户,包括你自己。请勿使用 AWS 根凭证来管理 Amazon Pinpoint 资源。
-
授予每位用户执行其职责所需的最低权限集。
-
使用 IAM 组有效地管理适用于多个用户的权限。
-
定期轮换您的 IAM 凭证。
发送短信或语音消息的示例
您可以参照以下代码示例,使用 AWS SDK for Python (Boto3)发送短信。
import boto3
from botocore.exceptions import ClientErrordef send_sms_message(sms_voice_v2_client, configuration_set, context_keys,country_parameters, destination_number, dry_run, keyword,max_price, message_body, message_type, origination_number,ttl):try:response = sms_voice_v2_client.send_text_message(ConfigurationSetName=configuration_set,Context=context_keys,DestinationCountryParameters=country_parameters,DestinationPhoneNumber=destination_number,DryRun=dry_run,Keyword=keyword,MaxPrice=max_price,MessageBody=message_body,MessageType=message_type,OriginationIdentity=origination_number,TimeToLive=ttl)except ClientError as e:print(e.response)else:return response['MessageId']def main():configuration_set = "MyConfigurationSet"context_keys = {"key1": "value1"}country_parameters = {"IN_TEMPLATE_ID": "TEMPLATE01234","IN_ENTITY_ID": "ENTITY98765"}destination_number = "+14255550168"dry_run = Falsekeyword = "MyKeyword"max_price = "2.00"message_body = ("This is a test message sent from Amazon Pinpoint SMS ""using the AWS SDK for Python (Boto3). ")message_type = "TRANSACTIONAL"origination_number = "+12065550183"ttl = 120print(f"Sending text message to {destination_number}.")message_id = send_sms_message(boto3.client('pinpoint-sms-voice-v2'), configuration_set, context_keys,country_parameters, destination_number, dry_run, keyword, max_price,message_body, message_type, origination_number, ttl)print(f"Message sent!\nMessage ID: {message_id}")if __name__ == '__main__':main()
在前面的示例中,对 main()
函数进行以下更改:
-
将
configuration_set
的值改为您要用于发送此消息的配置集的名称或 Amazon 资源名称 (ARN)。 -
将
context_keys
的值改为您要在发送此消息时使用的键和值。这些键出现在与此消息关联的事件记录中。 -
如果您使用已注册的发件人 ID 向印度的客户发送消息,请将
country_parameters
的值改为匹配您在注册发件人 ID 时收到的注册实体 ID 和模板 ID。
-
重要
如果您不使用注册的发件人 ID 向印度的客户发送消息,请完全忽略此参数。同时,还必须删除
send_sms_message
函数中的相应行。 -
将
destination_number
的值改为您要向其发送消息的电话号码。 -
如果要在不发送任何消息的情况下执行此操作,请将
dry_run
的值改为True
。 -
将
max_price
的值改为您发送此消息的每个消息部分要花费的最大金额(以美元为单位)。一个消息部分最多包含 140 字节的信息。有关更多信息,请参阅 短信字符限制。 -
更改
message_body
的值以包括您要发送的消息。一条消息的最大长度取决于其所包含的字符。有关短信字符编码的更多信息,请参阅短信字符限制。 -
更改
message_type
的值以表示相应的消息类别。有效值包括 TRANSACTIONAT(适用于重要或对时间敏感的消息)和 PROMOTION(适用于不重要或对不时间敏感的消息)。 -
将
origination_number
的值改为您要用于发送消息的电话号码。电话号码必须使用 E.164 格式。 -
将的值更改
ttl
为 Amazon Pinpoint SMS 应尝试发送消息的时间(以秒为单位)。您可以将 TTL 值设置为最多 259200 秒(72 小时)。
发送语音消息
您可以使用以下代码示例,通过 AWS SDK for Python (Boto3)发送语音消息。
import boto3
from botocore.exceptions import ClientErrordef send_voice_message(sms_voice_v2_client, configuration_set, context_keys,destination_number, dry_run, max_price, message_body,message_type, origination_number, ttl, voice_id):try:response = sms_voice_v2_client.send_voice_message(ConfigurationSetName=configuration_set,Context=context_keys,DestinationPhoneNumber=destination_number,DryRun=dry_run,MaxPricePerMinute=max_price,MessageBody=message_body,MessageBodyTextType=message_type,OriginationIdentity=origination_number,TimeToLive=ttl,VoiceId=voice_id)except ClientError as e:print(e.response)else:return response['MessageId']def main():configuration_set = "MyConfigurationSet"context_keys = {"key1":"value1"}destination_number = "+12065550123"dry_run = Falsemax_price = "2.00"message_body = ("<speak>""This is a test message sent from <emphasis>Amazon Pinpoint SMS</emphasis>""using the <break strength='weak'/> AWS SDK for Python (Boto3). ""<amazon:effect phonation='soft'>Thank you for listening.""</amazon:effect>""</speak>")message_type = "SSML"origination_number = "+18445550142"ttl = 120voice_id = "MATTHEW"print(f"Sending voice message with Amazon Pinpoint SMS from {origination_number} to {destination_number}.")message_id = send_voice_message(boto3.client('pinpoint-sms-voice-v2'), configuration_set, context_keys,destination_number, dry_run, max_price, message_body, message_type,origination_number, ttl, voice_id)print(f"Message sent!\nMessage ID: {message_id}")if __name__ == '__main__':main()
在前面的示例中,对 main()
函数进行以下更改:
-
将
configuration_set
的值改为您要用于发送此消息的配置集的名称或 Amazon 资源名称 (ARN)。 -
将
context_keys
的值改为您要在发送此消息时使用的键和值。这些键出现在与此消息关联的事件记录中。 -
将
destination_number
的值改为您要向其发送消息的电话号码。 -
将
max_price
的值改为发送此消息每分钟要花费的最大金额。 -
更改
message_body
的值以包括您要发送的消息。消息最多可包含 6,000 个字符。 -
如果要使用纯文本脚本而不是 SSML 格式的脚本,请将
message_type
的值改为TEXT
-
将
origination_number
的值改为您要用于发送消息的电话号码。电话号码必须使用 E.164 格式。 -
如果要在不发送任何消息的情况下执行此操作,请将
dry_run
的值改为True
。 -
将的值更改
ttl
为 Amazon Pinpoint SMS 应尝试发送消息的时间(以秒为单位)。您可以将 TTL 值设置为最多 259200 秒(72 小时)。 -
将
MATTHEW
替换为要用于发送消息的 Amazon Polly 语音的名称。有关支持的语音的完整列表,请参阅《短信和语音》第 2 版 API 参考SendVoiceMessage中。如果您未指定语音,则您的消息将使用 “MATTHEW” 语音发送。
相关文章:
解决方案架构师系列 - AWS - Pinpoint
AWS Pinpoint介绍 Amazon Pinpoint 为营销人员和开发人员提供了一款可自定义的工具,助力他们大规模地开展跨渠道、行业和活动的客户通信。 Amazon Pinpoint是一个全面的客户参与平台,旨在帮助营销人员和开发人员大规模地开展跨渠道、行业和活动的客…...
MF173:将多个工作表转换成PDF文件
我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解&#…...
Docker、containerd、CRI-O 和 runc 之间的区别
容器与 Docker 这个名称并不紧密相关。你可以使用其他工具来运行容器 您可以使用 Docker 或一堆非Docker 的其他工具来运行容器。docker只是众多选项之一,Docker(公司)在生态系统中创建了一些很棒的工具,但不是全部。 容器方面有…...
PRISM-Python 中的规则一个简单的 Python 规则感应系统
欢迎来到雲闪世界.PRISM 是一种现有算法(尽管我确实创建了一个 Python 实现),PRISM 相对简单,但在机器学习中,有时最复杂的解决方案效果最好,有时最简单的解决方案效果最好。然而,当我们希望建立…...
DB-GPT:LLM应用的集大成者
整体架构 架构解读 可以看到,DB-GPT把架构抽象为7层,自下而上分别为: 运行环境:支持本地/云端&单机/分布式等部署方式。顺便一提,RAY是蚂蚁深度参与的一个开源项目,所以对RAY功能的支持应该非常完善。…...
汉明权重(Hamming Weight)(统计数据中1的个数)VP-SWAR算法
汉明权重(Hamming Weight)(统计数据中1的个数)VP-SWAR算法 定义 汉明重量是一串符号中非零符号的个数。它等于同样长度的全零符号串的汉明距离(在信息论中,两个等长字符串之间的汉明距离等于两个字符串对应位置的不同…...
基于 PyTorch 的模型瘦身三部曲:量化、剪枝和蒸馏,让模型更短小精悍!
基于 PyTorch 的模型量化、剪枝和蒸馏 1. 模型量化1.1 原理介绍1.2 PyTorch 实现 2. 模型剪枝2.1 原理介绍2.2 PyTorch 实现 3. 模型蒸馏3.1 原理介绍3.2 PyTorch 实现 参考文献 1. 模型量化 1.1 原理介绍 模型量化是将模型参数从高精度(通常是 float32࿰…...
二、原型模式
文章目录 1 基本介绍2 实现方式深浅拷贝目标2.1 使用 Object 的 clone() 方法2.1.1 代码2.1.2 特性2.1.3 实现深拷贝 2.2 在 clone() 方法中使用序列化2.2.1 代码 2.2.2 特性 3 实现的要点4 Spring 中的原型模式5 原型模式的类图及角色5.1 类图5.1.1 不限制语言5.1.2 在 Java 中…...
【目标检测】Anaconda+PyTorch(GPU)+PyCharm(Yolo5)配置
前言 本文主要介绍在windows系统上的Anaconda、PyTorch、PyCharm、Yolov5关键步骤安装,为使用yolo所需的环境配置完善。同时也算是记录下我的配置流程,为以后用到的时候能笔记查阅。 Anaconda 软件安装 Anaconda官网:https://www.anaconda…...
Django实战项目之进销存数据分析报表——第二天:项目创建和 PyCharm 配置
在上一篇博客中,我们讨论了如何搭建一个全栈 Web 应用的开发环境,包括 Python 环境的创建、Django 和 MySQL 的安装以及前端技术栈的选择。现在,让我们继续深入,学习如何在 PyCharm 中创建一个新的 Django 项目并进行配置。 一…...
静态路由实验
1.实验拓扑图 二、实验要求 1.R6为ISP,接口IP地址均为公有地址,该设备只能配置IP地址,之后不能再对其进行任何配置; 2.R1-R5为局域网,私有IP地址192.168.1.0/24,请合理分配; 3.R1、R2、R4&…...
VSCode STM32嵌入式开发插件记录
要卸载之前搭建的VSCode嵌入式开发环境了,记录一下用的插件。 1.Cortex-Debug https://github.com/Marus/cortex-debug 2.Embedded IDE https://github.com/github0null/eide 3.Keil uVision Assistant https://github.com/jacksonjim/keil-assistant/ 4.RTO…...
linux cpu 占用超100% 分析。
感谢: https://www.cnblogs.com/wolfstark/p/16450131.html 总结: 查看进程中各个线程占用百分比 top -H -p <pid> 某线程100%了 说明 任务处理不过来 会卡 但是永远不可能超100% 系统监视器里面看到的是 所有线程占用的 总和会超100%。 所以最好的情况是&…...
自然学习法和科学学习法
一、自然学习法 自然学习法:什么事自然学习法,特意让kimi来回答了一下。所谓的自然学习法说的俗一点就是野路子学习方法。这种学习方法的特点是“慢”“没有系统性”,学完之后感觉都会了,但是又感觉什么都不会。 二、科学学习法 …...
力扣第二十四题——两两交换链表中的节点
内容介绍 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例 1: 输入:head [1,2,3,4] 输出ÿ…...
C语言柔性数组详解
目录 1.柔性数组 2.柔性数组的特点 3.柔性数组的使用 4.柔性数组的优势 1.柔性数组 C99 中,结构体中的最后一个元素允许是未知大小的数组,这就叫做『柔性数组』成员。 例如: struct S {char c;int n;int arr[];//柔性数组 }; struct …...
自动驾驶---视觉Transformer的应用
1 背景 在过去的几年,随着自动驾驶技术的不断发展,神经网络逐渐进入人们的视野。Transformer的应用也越来越广泛,逐步走向自动驾驶技术的前沿。笔者也在博客《人工智能---什么是Transformer?》中大概介绍了Transformer的一些内容:…...
预训练语言模型实践笔记
Roberta output_hidden_statesTrue和last_hidden_states和pooler_output 在使用像BERT或RoBERTa这样的transformer模型时,output_hidden_states和last_hidden_state是两个不同的概念。 output_hidden_states: 这是一个布尔值,决定了模型是否应该返回所…...
Perl 哈希
Perl 哈希 Perl 哈希是一种强大的数据结构,用于存储键值对集合。它是 Perl 语言的核心特性之一,广泛应用于各种编程任务中。本文将详细介绍 Perl 哈希的概念、用法和最佳实践。 什么是 Perl 哈希? Perl 哈希是一种关联数组,其中…...
Linux之Mysql索引和优化
一、MySQL 索引 索引作为一种数据结构,其用途是用于提升数据的检索效率。 1、索引分类 - 普通索引(INDEX):索引列值可重复 - 唯一索引(UNIQUE):索引列值必须唯一,可以为NULL - 主键索引(PRIMARY KEY):索引列值必须唯一,不能为NULL,一个表只能有一个主键索引 - 全…...
springboot业务逻辑写在controller层吗
Spring Boot中的业务逻辑不应该直接写在Controller层。 在Spring Boot项目中,通常将业务逻辑分为几个层次,包括Controller层、Service层、Mapper层和Entity层。 1.其中,Controller层主要负责处理HTTP请求,通过注…...
Ubuntu 24.04 LTS 桌面安装MT4或MT5 (MetaTrader)教程
运行脚本即可在 Ubuntu 24.04 LTS Noble Linux 上轻松安装 MetaTrader 5 或 4 应用程序,使用 WineHQ 进行外汇交易。 MetaTrader 4 (MT4) 或 MetaTrader 5 是用于交易外汇对和商品的流行平台。它支持各种外汇经纪商、内置价格分析工具以及通过专家顾问 (EA) 进行自…...
Go基础编程 - 12 -流程控制
流程控制 1. 条件语句1.1. if...else 语句1.2. switch 语句1.3. select 语句1.3.1. select 语句的通信表达式1.3.2. select 的基特性1.3.3. select 的实现原理1.3.4. 经典用法1.3.4.1 超时控制1.3.4.2 多任务并发控制1.3.4.3 监听多通道消息1.3.4.4 default 实现非堵塞读写 2. …...
汽车信息安全--TLS,OpenSSL
目录 TLS相关知识 加密技术 对称加密 非对称加密 数字签名和CA 信任链 根身份证和自签名 双方TLS认证 加密和解密的性能 TLS相关知识 加密技术 TLS依赖两种加密技术 1. 对称加密(symmetric encryption) 2. 非对称加密(asymmetri…...
深入探索 SQL 中的 LIKE 右模糊匹配(LIKE RIGHT)与左模糊匹配(LIKE LEFT)
引言 在数据库操作中,LIKE 子句是执行模糊搜索的强大工具,用于匹配列中的数据与指定的模式。本文将详细介绍 LIKE 子句中的两种常用模式:右模糊匹配(LIKE RIGHT)和左模糊匹配(LIKE LEFT)&#…...
mybatis 多数据源 TDataSource required a single bean, but 2 were found
情况说明: 项目中本来就有一个数据源了,运行的好好的后来又合并了另一个项目,另一个项目也配置了数据源。 于是出现了如下错误: mybatis 多数据源 TDataSource required a single bean, but 2 were found 解决方法:…...
Dubbo SPI 之路由器
1. 背景介绍 Dubbo 是一个高性能的 Java RPC 框架,由阿里巴巴开源并广泛应用于分布式系统中。在 Dubbo 的架构中,SPI(Service Provider Interface)是一个关键组件,允许在运行时动态加载不同的服务实现。SPI 机制提供了…...
Python深度学习环境配置(Pytorch、CUDA、cuDNN),包括Anaconda搭配Pycharm的环境搭建以及基础使用教程(保姆级教程,适合小白、深度学习零基础入门)
全流程导览 一、前言二、基本介绍2.1全过程软件基本介绍2.1.1 Pytorch2.1.2 Anaconda2.1.3 Pycharm2.1.4 显卡GPU及其相关概念2.1.5 CUDA和cuDNN 2.2 各部分相互间的联系和安装逻辑关系 三、Anaconda安装3.1安装Anaconda3.2配置环境变量3.3检验是否安装成功 四、Pycharm安装五、…...
月影护眼大路灯怎么样?书客|月影|霍尼韦尔超硬核实力性能测评pk!
月影护眼大路灯怎么样?选到专业优质的护眼大路灯是真的可以使我们在用眼时减少疲劳感,达到护眼效果,但如果不慎买到劣质的护眼灯产品,不仅达不到健康的环境光,还越用越觉得眼睛疲劳感加重,在水深的护眼灯市…...
邮件安全篇:邮件传输加密(SSL/TLS or STATRTTLS)
1. 前言 使用过邮件客户端的同学一定见过下面这张图。这是客户端账号配置界面,里面有SSL、STARTTLS选项。刚接触邮件客户端的同学肯定会有这些疑问:什么是SSL?什么是STARTTLS?两者有什么区别?具体该如何选择呢&#x…...
个人网站可以做淘宝客吗/代做百度关键词排名
原文地址 过去,box 只是 VirtualBox 导出的 tar 文件。由于 Vagrant 现在支持多个 provider 和版本控制,box 文件稍微复杂一些。 用于 Vagrant 1.0.x 的 Box 文件(VirtualBox 导出的 tar 文件)可以继续与新版本的 Vagrant 一起使用…...
建设旅游网站的价值/网站维护一般都是维护什么
近期项目发现,在使用release发布项目包,图片找不到了,而debug下面又有图片。 后来发现,原来图片被另外一个组件嵌入了。 下面例子展示了组件嵌入和不嵌入图片的区别 <?xml version”1.0″ encoding”utf-8″?> <s:Appl…...
用easyui做的网站/四川游戏seo整站优化
一、作用 用来判断海量数据中是否存在指定值。 二、原理 将容器中的所有值求hashcode然后根据hashcode找,类似于hashmap,但不同的是这里只比较hash值,没有hash值相同之后的进一步精确匹配。 所以出现hash碰撞时,不能确定是否真…...
提供网站设计方案公司/泉州网站建设优化
check一下pom中的scala版本与Modules 中的scala版本是否一致...
网站节点加速/百度平台客服电话
题库来源:安全生产模拟考试一点通公众号小程序 危险化学品经营单位安全管理人员复审模拟考试考前必练!安全生产模拟考试一点通每个月更新危险化学品经营单位安全管理人员作业模拟考试题目及答案!多做几遍,其实通过危险化学品经营…...
123邢台招聘信息网/搜索引擎关键词优化技巧
OsChina.NET 这个域名是在去年 08年8月16日申请的,然后花了不足一个月的时候开发了第一个版本的OsChina,包含有项目展示、新闻、后台管理、会员注册等功能,以后的每次的改进就没那么集中,有空的话就完善完善一直到今天,…...