ebook img

The Definitive Guide to AWS Application Integration: With Amazon SQS, SNS, SWF and Step Functions PDF

363 Pages·2019·5.77 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview The Definitive Guide to AWS Application Integration: With Amazon SQS, SNS, SWF and Step Functions

The Definitive Guide to AWS Application Integration With Amazon SQS, SNS, SWF and Step Functions — Jyothi Prasad Buddha Reshma Beesetty The Definitive Guide to AWS Application Integration With Amazon SQS, SNS, SWF and Step Functions Jyothi Prasad Buddha Reshma Beesetty The Definitive Guide to AWS Application Integration Jyothi Prasad Buddha Reshma Beesetty Seattle, WA, USA Seattle, WA, USA ISBN-13 (pbk): 978-1-4842-5400-4 ISBN-13 (electronic): 978-1-4842-5401-1 https://doi.org/10.1007/978-1-4842-5401-1 Copyright © 2019 by Jyothi Prasad Buddha and Reshma Beesetty This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein. Managing Director, Apress Media LLC: Welmoed Spahr Acquisitions Editor: Celestin Suresh John Development Editor: James Markham Coordinating Editor: Aditee Mirashi Cover designed by eStudioCalamar Cover image designed by Freepik (www.freepik.com) Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail [email protected], or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation. For information on translations, please e-mail [email protected], or visit http://www.apress. com/rights-permissions. Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales web page at http://www.apress.com/bulk-sales. Any source code or other supplementary material referenced by the author in this book is available to readers on GitHub via the book’s product page, located at www.apress.com/ 978-1-4842-5400-4. For more detailed information, please visit http://www.apress.com/ source-code. Printed on acid-free paper To our parents, Vijaya Parvati and Venkata Ramana Buddha, Lakshmi Tulasi and Venkata Ramana Beesetty, whose love and support shaped us into who we are today Table of Contents About the Authors ��������������������������������������������������������������������������������xi About the Technical Reviewer �����������������������������������������������������������xiii Acknowledgments ������������������������������������������������������������������������������xv Introduction ��������������������������������������������������������������������������������������xvii Chapter 1: Getting Started ��������������������������������������������������������������������1 Available Services �������������������������������������������������������������������������������������������������2 Basic Concepts �����������������������������������������������������������������������������������������������������5 IAM ������������������������������������������������������������������������������������������������������������������6 Simple Storage Service ���������������������������������������������������������������������������������10 DynamoDB �����������������������������������������������������������������������������������������������������18 Lambda ����������������������������������������������������������������������������������������������������������35 Sample Application ���������������������������������������������������������������������������������������������49 Understanding the Project �����������������������������������������������������������������������������52 Vue Components ��������������������������������������������������������������������������������������������54 Summary�������������������������������������������������������������������������������������������������������������57 Chapter 2: Simple Queue Service �������������������������������������������������������59 Big Picture�����������������������������������������������������������������������������������������������������������64 Creating a Queue ������������������������������������������������������������������������������������������������66 Console Method ���������������������������������������������������������������������������������������������66 CLI Method ����������������������������������������������������������������������������������������������������70 SDK Method ���������������������������������������������������������������������������������������������������74 v TTaabbllee ooff CCoonnTTeennTTss Send Messages to Queues ����������������������������������������������������������������������������������77 Console Method ���������������������������������������������������������������������������������������������78 CLI Method ����������������������������������������������������������������������������������������������������80 SDK Method ���������������������������������������������������������������������������������������������������82 Pull Message from a Queue ��������������������������������������������������������������������������������84 Console Method ���������������������������������������������������������������������������������������������84 CLI Method ����������������������������������������������������������������������������������������������������86 SDK Method ���������������������������������������������������������������������������������������������������88 Long Polling ���������������������������������������������������������������������������������������������������92 Life Cycle of a Message ��������������������������������������������������������������������������������������93 Consumption Approaches �����������������������������������������������������������������������������������96 Lambda SQS Worker ��������������������������������������������������������������������������������������98 EC2 NodeJS SQS Worker �����������������������������������������������������������������������������112 FIFO (First-In-First-Out) Queues ������������������������������������������������������������������������126 Creating FIFO Queues ����������������������������������������������������������������������������������127 Sending Messages ��������������������������������������������������������������������������������������128 Receive Messages ���������������������������������������������������������������������������������������130 Retry Failed Receive Requests ��������������������������������������������������������������������132 Dead Letter Queues ������������������������������������������������������������������������������������������132 Handle Messages in Dead Letter Queues ����������������������������������������������������137 Summary�����������������������������������������������������������������������������������������������������������137 Chapter 3: Simple Notification Service ���������������������������������������������139 Difference from SQS �����������������������������������������������������������������������������������������140 Setting Up ���������������������������������������������������������������������������������������������������������141 Creating Topics ��������������������������������������������������������������������������������������������142 Create Subscription �������������������������������������������������������������������������������������146 Publishing Messages ����������������������������������������������������������������������������������������150 API Method ��������������������������������������������������������������������������������������������������153 vi TTaabbllee ooff CCoonnTTeennTTss Message Receivers �������������������������������������������������������������������������������������������158 Lambda Receiver �����������������������������������������������������������������������������������������158 SQS Receiver �����������������������������������������������������������������������������������������������162 Message Filtering ���������������������������������������������������������������������������������������������163 Filter Expressions ����������������������������������������������������������������������������������������168 Push Notifications ���������������������������������������������������������������������������������������������173 Firebase Steps ���������������������������������������������������������������������������������������������174 Initializing Firebase in web-app ������������������������������������������������������������������176 SNS Setup ���������������������������������������������������������������������������������������������������179 Client Endpoint ��������������������������������������������������������������������������������������������182 Testing It Out �����������������������������������������������������������������������������������������������183 Miscellaneous Topics ����������������������������������������������������������������������������������������184 Access Policy �����������������������������������������������������������������������������������������������185 Summary�����������������������������������������������������������������������������������������������������������187 Chapter 4: Simple Workflow Service ������������������������������������������������189 Architecture of SWF Applications ����������������������������������������������������������������������190 Creating Types ���������������������������������������������������������������������������������������������������193 Register Domain ������������������������������������������������������������������������������������������193 Register Workflow Type �������������������������������������������������������������������������������199 Register Activity Types ���������������������������������������������������������������������������������203 Workflow Execution ������������������������������������������������������������������������������������������208 Implementing Actors �����������������������������������������������������������������������������������������211 Implementing Starter�����������������������������������������������������������������������������������212 Implementing Decider ���������������������������������������������������������������������������������217 Implementing Activity Worker ����������������������������������������������������������������������233 Serverless Workflow �����������������������������������������������������������������������������������������237 Serverless Activity Workers �������������������������������������������������������������������������238 Serverless Deciders�������������������������������������������������������������������������������������242 vii TTaabbllee ooff CCoonnTTeennTTss Advanced Topics �����������������������������������������������������������������������������������������������248 Timers ����������������������������������������������������������������������������������������������������������248 Recording Heartbeats ����������������������������������������������������������������������������������253 Miscellaneous Topics ����������������������������������������������������������������������������������������255 Frameworks�������������������������������������������������������������������������������������������������256 Pricing ���������������������������������������������������������������������������������������������������������257 Limits �����������������������������������������������������������������������������������������������������������259 Summary�����������������������������������������������������������������������������������������������������������260 Chapter 5: Step Functions ����������������������������������������������������������������263 Key Concepts ����������������������������������������������������������������������������������������������������264 State Machine ���������������������������������������������������������������������������������������������264 Tasks �����������������������������������������������������������������������������������������������������������265 Activity ���������������������������������������������������������������������������������������������������������265 Basic Operations �����������������������������������������������������������������������������������������������266 Creating State Machine �������������������������������������������������������������������������������266 Executing the State Machine �����������������������������������������������������������������������272 API Method ��������������������������������������������������������������������������������������������������273 State Machine Definition �����������������������������������������������������������������������������������277 Top-Level Fields�������������������������������������������������������������������������������������������277 States ����������������������������������������������������������������������������������������������������������278 Activities �����������������������������������������������������������������������������������������������������������309 Creating and Using Activity ��������������������������������������������������������������������������309 Activity Worker Implementation ������������������������������������������������������������������311 Other Patterns ���������������������������������������������������������������������������������������������������317 Long-Running Tasks ������������������������������������������������������������������������������������317 Child Step Functions ������������������������������������������������������������������������������������323 Creating Loops ���������������������������������������������������������������������������������������������324 viii TTaabbllee ooff CCoonnTTeennTTss Monitoring ���������������������������������������������������������������������������������������������������������329 Updating Order Workflow ����������������������������������������������������������������������������������333 Step Functions vs� SWF ������������������������������������������������������������������������������������338 Pricing ���������������������������������������������������������������������������������������������������������������340 Summary�����������������������������������������������������������������������������������������������������������341 Index �������������������������������������������������������������������������������������������������343 ix About the Authors Jyothi Prasad Buddha has 12+ years of experience in software development along with building tools for optimizing testing. He has worked on many time-critical projects for IBM, Oracle, and Amazon, by inventing new time-saving approaches and tools consistently. At Amazon, he developed two products named LiveCode and HireOn quickly using Amazon Web Services (AWS) which were experiments from Amazon and later became full-fledged products embedded into Amazon’s recruiting workflow. He is also a Pluralsight author and an open source contributor and was a Java User Group Hyderabad lead. He is currently working for Amazon, based out of Seattle, WA. Reshma Beesetty is currently working as a software developer for Tata Consultancy Services. She is also a published author with experience in extensive research-oriented content creation. She has produced and managed content for several startups by designing and maintaining editorial calendars that were published across various web platforms. Her work as an article writer and report creator has been published across state media of Andhra Pradesh, Karnataka, and Tamil Nadu in India. xi

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.