将Amazon Boto3集成在QCS610上

在TurboX C610板上为Amazon服务构建基于python语言的应用程序

 

Boto3是亚马逊云服务(AWS)的官方Python语言软件开发工具包。Boto3程序库可用于帮助开发人员在AWS云中构建基于python语言的应用程序。该程序库包括某些针对服务的特性,从而使开发工作更加容易。Boto3支持当前所有的AWS云服务,其中许多该类服务均可以在TurboX C610上运行。TurboX C610是由创通联达公司提供、并由Qualcomm®QCS610应用处理器驱动的开放式工具包目标板。

如要获得更多信息,包括快速入门指南和应用程序接口参考,请参阅Boto3文档

如要在TurboX C610上安装Boto3程序包,您需要在Yocto主机系统上构建以下python3语言程序包,并将其安装到目标TurboX C610板上:

• python3-boto3

• python3-botocore

• python3-jmespath

• python3-s3transfer

该等python3语言程序包的bitbake文件来自https://github.com/intel-iot-devkit/meta-iot-cloud上的github存储库。将bitbake文件(.Inc和.bb文件)设置在poky/meta- openbedded /meta-python/recipes-devtools/python/目录下。

按照以下步骤构建程序包:

1. 更改为yocto工作目录:$ cd

2. 运行“来源”,以设置环境:$ source poky/qti-conf/set_bb_env.sh

3.针对可用机器打开一个弹出菜单;选择qcs610-odk,然后选择“确定”。弹出另一个可用于发行的窗口;选择qti-distro-fullstack-perf,然后选择“确定”。

4. 运行bitbake,以安装程序包:

$ bitbake

$ bitbake <程序包名称>

一旦完成了构建,共享程序库和包含文件可以在./tmp-glibc/sysroot -components/armv7ahf-neon//usr中获得

5. 使用USB-C线缆将Yocto主机系统连接至于TurboX C610板上。

6. 对于C/C++程序库,应当将<程序包-名称>共享程序(.so文件)推送到目标板上。

$ cd ./tmp-glibc/sysroots-components/armv7ahf-neon//usr/

$ adb push lib/ /data/boto3/

如果<程序包-名称>中包含了任何包含文件,则将其推送到/usr/include/目录中。

$ adb push include/* /usr/include/

对于python3语言程序包,应当将lib/python3.5/site-packages目录中的文件推送到/data/boto3/lib/中(python3语言程序包的bitbake文件以‘span class="txt-courier">python3-’开头)

$ adb push lib/python3.5/site-packages/* /data/boto3/lib/

 

注解:

1. 如要获得更多信息,请参见“QCS610/QCS410 Linux平台开发工具包快速入门指南”。

2. 在默认情况下,在TurboX C610板上并没有提供某些必要的内置python3语言程序包,例如超文本标记语言、日期工具、多重处理和并行等。您可以在yocto构建系统的/tmp-glibc/sysroot -components/armv7ahf-neon/python3/usr/lib/python3.5/目录下查找到缺少的任何python3语言程序库。将程序库推送到TurboX C610板的/usr/lib/python3.5/目录下。

在TurboX C610上设置环境,以运行有关Boto3服务的Python语言脚本

1. 通过adb访问TurboX C610板。

$ adb root

$ adb remount

$ adb shell mount -o remount

2. 推送具有亚马逊云服务凭证的配置文件,包括aws_access_key_id, aws_security_access_key_id、实例信息、服务识别号等。

$ adb push config.py /data/boto3/

$ adb shell

3. 在目标上启用无线网络。

$ wpa_supplicant -Dnl80211 -iwlan0 -c /etc/misc/wifi/wpa_supplicant.conf -ddddt & dhcpcd wlan0

4. 将共享程序库导出至LD_LIBRARY_PATH。

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/boto3/lib/

$ cd data/boto3/

此时,TurboX C610已经准备好执行有关Boto3服务的示例Python语言脚本。

注解:Python语言 3.5.6版本预先安装在TurboX C610上。

 

Boto3服务

将Boto3 Python语言软件开发工具包集成到TurboX C610板上后,您可以调用并运行大多数亚马逊云服务,包括:

·身份和访问管理(IAM)访问分析器

• 身份和访问管理

• 简单存储服务(S3)

• Lex模型构建服务

• Lex运行时间服务

• Polly

• 转录

• 弹性计算云(EC2)

• 物联网

• 识别

 

身份和访问管理(IAM)访问分析器

亚马逊云服务身份和访问管理访问分析器可以帮助识别当前AWS账户中的资源,例如S3桶或身份和访问管理角色。如在AWS账户之外共享资源实例,访问分析仪会生成一个结果,包括访问细节。您可以对结果进行审核和监控,以确定访问是否符合预期并且安全,还是不符合预期并且存在安全风险。

如要利用访问分析仪开始进行,则您首先应当按照https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html中的步骤创建一个分析器。

下文中提供了一个示例:

您可以使用回调函数,例如“apply_archive_rule()”:

 

身份和访问管理

亚马逊云服务身份和访问管理是一项用于安全控制对AWS服务访问的服务。利用身份和访问管理,您可以集中管理用户、权限和访问密钥等安全凭证。

利用身份和访问管理服务及以下身份和访问管理客户类的方法创建、删除策略,挂载和卸载角色策略:

• 创建_策略

• 获得_策略

• 挂载_角色_策略

• 卸载_角色_策略

以下示例表明了获得_策略的方法:

 

简单存储服务(S3)

S3是亚马逊云服务提供的、具有高度可用性和持久性的对象存储服务,是存储视频、图像和数据的常用方式。您可以将S3与其他服务结合在一起,以构建具有无限可伸缩性的应用程序。

如要创建一个S3存储器,请参考https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html中的步骤。

以下为创建S3存储器的示例:

Image.jpg文件将会保存在image_upload.jpg S3存储器中。

 

Lex模型构建服务

使用“亚马逊Lex”创建交互式语音和文本会话界面。该项服务确保您能够轻松地更新、创建和删除会话机器人程序。

如要创建一个lex机器人程序,请遵循https://alexaworkshop.com/en/custom-skill/1.create-lex.html中的步骤。

如要利用Lex模型开始,首先应当创建一个lex-模型实例,如本示例所示:

 

Polly

亚马逊Polly提供了通过文本轻松合成语音的选项,还提供了通过纯文本和语音合成标记语言(SSML)生成高质量语音的应用程序接口。Polly还可以管理发音、词汇和语调,使之最接近人类的语言。

如要开始使用Polly,首先应当创建一个polly实例,如本示例所示:

 

转录

Amazon转录是一项基于深度学习模型,并且可以将语音转换为文本的自动语音识别(ASR)服务。亚马逊转录的应用包括客户服务呼叫转录,自动配字幕、以及生成媒体资产的元数据,从而可以简化搜索。

如要创建一项转录工作,请遵循https://docs.aws.amazon.com/transcribe/latest/dg/getting-started-asc-console.html中的步骤。

如要开始使用转录,首先应当创建一个转录实例,如本示例所示:

 

弹性计算云(EC2)

使用弹性计算云在亚马逊网络服务云中进行高效和可伸缩计算。您可以管理存储、配置安全性和网络连接,并根据需要启动任意数量的虚拟服务。

如要启动一项弹性计算云实例,请遵循https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html中的步骤

如要开始使用弹性计算云,首先应当创建一个弹性计算云实例,如本示例所示:

该步骤可以打印出所有实例及其当前状态。如要运行实例,请使用以下脚本:

 

物联网

物联网服务有助于将物联网设备轻松、安全地连接到云应用程序和设备上。

如要设置亚马逊网络服务物联网,请遵循https://docs.aws.amazon.com/iot/latest/developerguide/iot-quick-start.html中的步骤。(在第2步“创建一个事物对象”中,选择Python语言作为亚马逊网络服务物联网设备软件开发工具包。)

下文中的代码片段利用Boto3将讯息发送到亚马逊网络服务物联网中的MQTT主题。该应用程序发布一个以事物名称命名的主题,您可以在亚马逊网络服务物联网控制台查找。

 

识别

亚马逊识别提供了图像和视频分析所使用的计算机视觉技术。该项服务具有高度可扩展性,不需要机器学习知识。亚马逊识别所提供的应用程序接口可以使用深度学习模型寻找人脸和感兴趣的对象,然后对其进行分析。参看https://docs.aws.amazon.com/rekognition/latest/dg/detect-labels-console.html。

如要开始使用识别,首先应当创建一个识别实例,如本示例所示:

 

 

Qualcomm QCS610为Qualcomm Technologies, Inc.和/或其子公司的产品。

Qualcomm 解决方案

 

高通软件中心

通过集中式门户站无缝管理您的高通®软件和工具

下载软件中心