Tag: 无服务器

使用OpenWhisk的无服务器Swift

Swift是开发人员中增长最快的编程语言之一。 Swift排名前15位,比我们追踪的任何其他语言都要快。 RedMonk编程语言排名 redmonk.com/sogrady/2017/03/17/… 该语言是为构建移动应用程序而创建的,现已在后端开发中流行。 但是,对于开始构建后端应用程序的Swift开发人员而言,他们现在发现自己必须管理计算基础架构才能在云中运行其应用程序。 进入无服务器云平台…☁️☁️☁️ 这些服务允许开发人员将代码(而不是VM)推送到云中。 该平台允许您将外部事件源(例如API请求或消息队列)连接到代码中的函数。 当事件发生时,您的代码将被实例化并执行以处理每个请求。 开发人员仅需为处理每个请求所需的毫秒数付费。 无服务器平台使您可以在云中运行应用程序,而不必担心基础架构。 😎 Apache OpenWhisk 是当前唯一支持Swift语言功能的无服务器平台。 让我们先看一下如何在OpenWhisk中使用Swift,然后再深入研究该平台如何实现此功能,为我们提供一些有关OpenWhisk上Swift的提示和技巧。 Swift on OpenWhisk 使用CLI 使用以下源代码创建一个Swift文件。 func main(args:[String:Any])-> [String:Any] { 如果让name = args [“ name”]为? 字符串{ return [“ greeting”:“你好\(名字)!” ] }其他{ return [“ greeting”:“你好陌生人!” ] } } 快速动作必须消耗并返回字典。 作为函数参数传递的字典将包含事件参数。 返回的字典值必须支持序列化为JSON。 使用命令行实用工具创建并调用新的OpenWhisk操作。 $ wsk action创建swift action.swift 好的:快速创建动作 $ wsk操作调用swift –result […]

Swift的无服务器计算

为什么选择无服务器Swift? 与无服务器计算是否值得追求的问题不同,为什么要在Swift中实现无服务器系统? 有三个主要原因使Swift成为Lambda实现语言的理想选择。 首先,Swift是一种功能强大,健壮且富有表现力的语言,旨在在包括服务器端计算在内的各种环境中发挥作用。 就其本身而言,区别不大,因为可以用这种方式描述其他几种语言(Rust,Go)。 但是,Swift提供了两种附加的可能性-利用现有开发人员资源的机会,以及在系统的多个层(尤其是后端和移动客户端)之间共享代码的机会。 让我们考虑一个示例场景。 一个例子 我决定组建一家初创公司-这是我可以做的酵母菌,一家专门提供美味面包的在线面包店。 由于没有健壮的云基础架构,没有任何自重的面包店会被杀死,因此我的首要任务是构建微服务来处理向客户发送收据的工作。 具体来说,我想要一种服务,其输入是要订购的项目列表。 物品是面包的种类和数量。 例如三个羊角面包。 输入以JSON编码。 输出是收据的字符串表示形式。 它列出了每个订购的项目,其小计以及整个订单的总计。 现在,我不必担心收据太漂亮。 首先,我忽略了网络连接并编写了可用作命令行工具的代码。 首先,我将创建一个新目录,并使用Swift Package Manager(SPM)创建一个Swift应用程序。 请注意,该应用程序将命名为bru 。 姆迪尔布鲁 光盘布鲁 快速包初始化—type = executable 现在,我指定数据类型。 考虑到可重用性,我在与主应用程序不同的模块中定义它们。 我创建一个目录Sources / bruModels,并在该目录中使用以下代码创建Item.swift , Order.swift和Receipt.swift文件(完整列表可在https://gist.github.com/profburke/2e951f48542a9a1ff470515725727751c中找到): // Item.swift 枚举样式:字符串,可编码{ 羊角面包 凯恩 裸露镍 黑麦 } 结构项目:可编码{ 出租数量:整数 let style:样式 } // Order.swift struct顺序:可编码{ 公共私有(设置)各种商品:[商品] … } // […]

无服务器Swift

从这往哪儿走 我在GitHub上的swift-lambda-app存储库包含一个在Lambda上运行Swift代码的更复杂的示例。 基于本文概述的思想和AlexaSkillsKit,它为Amazon Echo实现了自定义技能,该技术是为Echo提供支持的语音服务。 我将在以后的文章中介绍Swift中的Alexa Skills。 同时,如果您有任何疑问,可以通过Twitter与我联系。

无服务器的Swift와Slack Slash命令를CLI —기—第1部分

在Xcode中使用iOS版本在Alamofire中使用debugPrint() API中的使用。 在Xcode中下载。다는느꼈다。 。스위프트 스위프트 프로그래밍 다음과이출력된다。 \Uc2a4\Uc704\Ud504\Ud2b8 \Ud504\Ub85c\Uadf8\Ub798\Ubc0d 。스트기편집로에확인했다확인했다。 。이많이갔다。 난해지난해7월XCKoLog라는CLI를다。 。손으하던해주는능을능을도구도구도구다도구 。제문있었으므로배포했다。 XCKoLog X지있다는다알았다。 이유는가가지로보였다。 CLI(XCKoLog)下载(CLI),CLI(CLILog)下载。 왕지아니이만면이면다면는이스를보바꿔로했다。 Swift가iOS(그mac고macOS)쓰이는이관심다。 Swift가오픈소스가되면서Linux에이되고사이드(服务器端)프레임워크들이화제가되었다。 快速浏览器(Serverless),OpenWhisk的IBM이공개한리스오픈소스프로젝트로인큐베이터에가있다。 XCKoLog XCKoLog Log앱서버서버서버서버서버서버서버서버다다다다다다다스다 。이스등제약은있다。 XCKoLog는도구므므므므스스스스스스스스스스。。 IBM的OpenWhisk产品和服务。 지난해8 XCKoLog를IBM Bluemix OpenWhisk등록했다。 당시Swift버전은3.1을지원했다。 IBM Cloud Functions发行版,Swift 4.0版지원한다。 照片。 IBM Cloud Functions的供应商(以下简称:供应商)。 动作(动作)的下载。 오른쪽의오른쪽의 Action Action Action Action Action Action Action Action Action Action Action Action […]

将AWS AppSync与React-Native-Navigation集成

如果您使用的是来自Wix的React-Native-Navigation库,请使用分步方法将AWS AppSync与React-Native App连接。 本教程可以用作设置React-native iOS应用程序的指南,该应用程序使用React-Native-Navigation库进行导航,并使用AWS AppSync处理基于云的数据。 首先,设置存储库。 在本教程中,我将使用gitHub,您将在本文结尾处找到该仓库的链接。 react-native初始化yourAppName 请访问官方文档以遵循此安装步骤。 容易跟随截图! https://wix.github.io/react-native-navigation/#/installation-ios 返回官方文档并按照使用步骤进行操作:https://wix.github.io/react-native-navigation/#/usage。 您需要根据wix的上述说明创建一些屏幕; 我坚持使用名字FirstTabScreen,SecondTabScreen和PushedScreen与文档中的示例代码保持一致。 现在,每个屏幕都可以具有基本结构(请参见下文),同时我们确保react-native-navigation正常运行。 在应用程序根目录下的index.js文件中,您会注意到Navigation.startTabBasedApp函数的tabs:数组中每个对象的icon:和selectedIcon:属性; 您可以在此处提供应用程序导航选项卡中显示的所有图标图像的路径。 就本教程而言,我将注释掉这些属性,以免在启动应用程序时出现任何错误。 从’react’导入React,{Component} 从’react-native’导入{Text,View} Class FirstTabScreen扩展了Component { render(){ 返回( 这是您的第一个选项卡屏幕 ) } } 导出默认的FirstTabScreen 按照wix的上述说明并为每个屏幕创建三个简单的组件之后,我们可以转到终端并首次启动我们的应用程序: 反应本机运行iOS 成功! 现在,我们可以进行本机导航! 首次启动控制台时,您会看到一个橙色的“创建API”按钮, 如果这是您第一次使用GraphQL(对我而言),那么“入门”窗口中提供的“架构参考”将为您提供丰富的信息,并且易于遵循。 为了全面了解GraphQL,没有像官方文档这样的地方:http://graphql.org/learn/。 有关AppSync团队创建的其他GraphQL和AppSync资源,请参阅本文结尾。 就本教程而言,我们将使用在模式编辑器中注释掉的示例模式,并对查询类型进行一些修改。 使用左侧的导航菜单,然后单击“架构”以进入编辑器。 执行以下操作以完成您的架构的设置: 成功保存架构后,将在右侧“数据类型”窗口上方启用白色的“创建资源”按钮。 单击它以自动为Schema中的数据类型置备AWS DynamoDB表。 在这种情况下,我们只有一种名为“ Post”的数据类型: AppSync完成设置资源后,现在将在“查询”和“突变”的解析器字段中填充表名称。 您会注意到,尚未自动为“ putPost”突变和“ allPost”查询分配解析器。 我将逐步介绍如何手动设置解析器,首先我们从“ putPost”开始: 接下来,我们将为allPost设置解析器: 简单! […]

为OpenWhisk创建Swift二进制文件

在上一篇博客文章中,我们解释了如何使用OpenWhisk操作编写无服务器Swift函数。 Swift源文件在处理请求之前由平台编译。 此编译过程会增加“冷”运行时的调用时间延迟。 如果一段时间未调用该操作,系统负担沉重或并行接收多个调用,则需要初始化新的运行时。 可以部署预编译的二进制文件以消除此延迟。 必须为正确的平台体系结构编译二进制文件,并支持通过OpenWhisk运行时执行。 现在有了一个 Swift软件包, 可以使构建预编译二进制文件的过程变得更加容易。 让我们看看它是如何工作的…… Swift在Swift 3.0中引入了一个包管理器。 程序包管理器与构建系统集成在一起,以“自动执行依赖项的下载,编译和链接过程”。 Swift使用清单文件( Packages.swift )定义包属性,包括依赖项。 这是来自外部依赖的示例包中的示例清单文件。 导入PackageDescription让package = Package( 名称:“ DeckOfPlayingCards”, 目标:[], 依赖项:[ .Package(URL:“ https://github.com/apple/example-package-fisheryates.git”, majorVersion:1), .Package(URL:“ https://github.com/apple/example-package-playingcard.git”, majorVersion:1), ] ) 包通过解析为Git存储库的URL引用。 语义版本约定用于控制安装的软件包版本。 在构建过程中,将外部软件包下载,编译并链接到项目中。 $ swift build Fetching https://github.com/apple/example-package-deckofplayingcards.git Fetching https://github.com/apple/example-package-fisheryates.git Fetching https://github.com/apple/example-package-playingcard.git Cloning https://github.com/apple/example-package-fisheryates.git Resolving https://github.com/apple/example-package-fisheryates.git at 2.0.3 Cloning https://github.com/apple/example-package-playingcard.git Resolving https://github.com/apple/example-package-playingcard.git at […]

使用新的OpenWhisk调试器

无服务器计算的迅速普及也就不足为奇了。 隐式可伸缩性,事件驱动/自动数据处理,简单性,可重用性,可组合性和降低的成本只是无服务器编程模型开始兴起的几个原因。 人们有时会反对使用无服务器编程模型的一个论据是,由于无法将本地调试器附加到无服务器操作上,因此无服务器操作可能更难开发,但实际上,既然有了wskdb ,这不再是问题。 wskdb:OpenWhisk调试器 如果您还没有看到它,那么现在您可以wskdb ,它是新的/ Beta版OpenWhisk调试器。 它允许您在丰富的调试环境中调试本地计算机上的OpenWhisk操作,就像调试本地代码一样。 实际上,您实际上是在调试本地代码。 使用调试器时,您将附加到操作。 然后,对该操作的调用将重新路由到您的开发机,您可以在其中调试并进行本地更改。 调试完成后,您可以推送更改,或者只是断开连接即可清理重新路由。 您甚至可以调试序列中的特定操作。 假设您有一个由操作A,B,C和D组成的序列。您可以将调试器附加到这些操作中的任何一个上。 因此,如果我想调试动作C,则将其附加到动作C。调用序列时,将在OpenWhisk环境中执行动作A和B,然后将在本地调试环境中调用动作C,然后将动作D在OpenWhisk环境中执行。 您可以使用OpenWhisk调试器来调试Node.js / JavaScript,Swift或Python操作,它使您能够达到断点,单步执行代码,检查内存值等等。 查看此概述: 可用的命令是: 指令说明 列表,l列出可用的操作 cli使用CLI调试器(如果可用) 调用,我调用一个动作 检查,获取,检查OpenWhisk操作的详细信息 火,f扳机 附加,附加到动作 分离,动作分离 diff显示给定操作的待处理差异 p,发布对给定操作的未决更改 退出,退出,e,q退出调试器 clean,c清除调试工件 创建动作 删除删除动作 帮助,h ,? 打印此帮助文本 要调试动作,您必须首先运行attach命令–这将设置“管道”以能够调试您的动作。 一旦连接了调试器,就可以使用in invoke命令(像OpenWhisk CLI一样传递参数)。 在下面的屏幕截图中,您可以看到我如何附加和调用我的斐波那契操作(该操作会在斐波那契序列中生成数字): 这将启动调试过程。 对于JavaScript / Node.js操作,这将基于您熟悉的Chrome / Blink / Webkit / Node Inspector调试器,如下图所示。 这样就可以检查内存中的变量,设置断点,逐行执行代码等。所有这些都是非常有用的开发和调试工具。 […]