<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Rohit Shrivastava</title>
    <description>The latest articles on DEV Community by Rohit Shrivastava (@rohitshrivastava87).</description>
    <link>https://dev.to/rohitshrivastava87</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F880649%2Fbe48da18-e5f5-47c3-be01-e684c311c702.jpeg</url>
      <title>DEV Community: Rohit Shrivastava</title>
      <link>https://dev.to/rohitshrivastava87</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rohitshrivastava87"/>
    <language>en</language>
    <item>
      <title>#4 Shorticles: AWS Glue’s integration with Apache Spark</title>
      <dc:creator>Rohit Shrivastava</dc:creator>
      <pubDate>Tue, 16 May 2023 08:13:11 +0000</pubDate>
      <link>https://dev.to/aws-builders/4-shorticles-aws-glues-integration-with-apache-spark-4jha</link>
      <guid>https://dev.to/aws-builders/4-shorticles-aws-glues-integration-with-apache-spark-4jha</guid>
      <description>&lt;p&gt;When we start writing the program for glue first time, few lines which we first encountered are:&lt;/p&gt;

&lt;p&gt;import sys&lt;br&gt;
from awsglue.transforms import *&lt;br&gt;
from awsglue.utils import getResolvedOptions&lt;br&gt;
from pyspark.context import SparkContext&lt;br&gt;
from awsglue.context import GlueContext&lt;br&gt;
from awsglue.job import Job&lt;br&gt;
glueContext = GlueContext(SparkContext.getOrCreate())&lt;/p&gt;

&lt;p&gt;The above lines of code are used to set up the necessary dependencies and initialize the GlueContext object for AWS Glue ETL (Extract, Transform, Load) jobs using Apache Spark.&lt;/p&gt;

&lt;p&gt;Let’s break down the code line by line and understand what exactly their meaning is:&lt;/p&gt;

&lt;p&gt;import sys: This line imports the sys module, which provides access to system-specific parameters and functions.&lt;/p&gt;

&lt;p&gt;from awsglue.transforms import *: This line imports all the classes and functions from the awsglue.transforms module. The awsglue.transforms module provides a set of transformation functions that can be used in AWS Glue ETL jobs.&lt;/p&gt;

&lt;p&gt;from awsglue.utils import getResolvedOptions: This line imports the getResolvedOptions function from the awsglue.utils module. The getResolvedOptions function is used to retrieve the AWS Glue job arguments and their values.&lt;/p&gt;

&lt;p&gt;from pyspark.context import SparkContext: This line imports the SparkContext class from the pyspark.context module. SparkContext is the entry point for creating a connection to Apache Spark.&lt;/p&gt;

&lt;p&gt;from awsglue.context import GlueContext: This line imports the GlueContext class from the awsglue.context module. GlueContext is a high-level wrapper around Apache SparkContext that provides additional AWS Glue-specific functionality.&lt;/p&gt;

&lt;p&gt;from awsglue.job import Job: This line imports the Job class from the awsglue.job module. The Job class represents an AWS Glue job and provides methods to configure and execute the job.&lt;/p&gt;

&lt;p&gt;glueContext = GlueContext(SparkContext.getOrCreate()): This line creates an instance of GlueContext by passing the SparkContext.getOrCreate() method as an argument. &lt;/p&gt;

&lt;p&gt;SparkContext.getOrCreate() returns an existing SparkContext instance or creates a new one if it doesn't exist. The glueContext object is then used to interact with the AWS Glue environment and perform ETL operations.&lt;/p&gt;

&lt;p&gt;With these lines of code, you can leverage AWS Glue’s integration with Apache Spark to write and execute ETL scripts for data processing and transformation in the AWS Glue service.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>#3 Shorticle: REGEX in Python</title>
      <dc:creator>Rohit Shrivastava</dc:creator>
      <pubDate>Tue, 16 May 2023 08:11:44 +0000</pubDate>
      <link>https://dev.to/aws-builders/3-shorticle-regex-in-python-64c</link>
      <guid>https://dev.to/aws-builders/3-shorticle-regex-in-python-64c</guid>
      <description>&lt;p&gt;Regular expressions, often referred to as regex or regexp, are powerful tools for pattern matching and text manipulation. Python provides a built-in module called re that allows you to work with regular expressions.&lt;/p&gt;

&lt;p&gt;To start using regular expressions in Python, you need to import the re module:&lt;br&gt;
import re&lt;/p&gt;

&lt;p&gt;Now let’s dive into the details of using regular expressions in Python:&lt;/p&gt;

&lt;p&gt;Matching Patterns: The re module provides several functions for matching patterns:&lt;br&gt;
re.search(pattern, string): Searches the string for a match to the pattern and returns the first occurrence.&lt;/p&gt;

&lt;p&gt;re.match(pattern, string): Checks if the pattern matches at the beginning of the string.&lt;/p&gt;

&lt;p&gt;re.findall(pattern, string): Returns all non-overlapping matches of the pattern in the string.&lt;/p&gt;

&lt;p&gt;re.finditer(pattern, string): Returns an iterator yielding match objects for all matches.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Basic Patterns:
Literal characters: You can search for literal characters by including them directly in the pattern.
Metacharacters: These are special characters that have special meanings in regular expressions, such as ., *, +, ?, ^, $, \, [ ], |, (, and ).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Character classes: You can define custom character classes using square brackets [ ]. For example, [a-z] matches any lowercase letter.&lt;/p&gt;

&lt;p&gt;Predefined character classes: There are several shorthand character classes like \d (digits), \w (word characters), \s (whitespace characters), and their negations \D, \W, \S, respectively.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Quantifiers:&lt;br&gt;
*: Matches zero or more occurrences of the preceding element.&lt;br&gt;
+: Matches one or more occurrences of the preceding element.&lt;br&gt;
?: Matches zero or one occurrence of the preceding element.&lt;br&gt;
{n}: Matches exactly n occurrences of the preceding element.&lt;br&gt;
{n,}: Matches at least n occurrences of the preceding element.&lt;br&gt;
{n,m}: Matches at least n and at most m occurrences of the preceding element.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Anchors:&lt;br&gt;
^: Matches the beginning of a line.&lt;br&gt;
$: Matches the end of a line.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Groups and Capturing:&lt;br&gt;
( ): Creates a group. Groups can be used for capturing substrings and applying quantifiers.&lt;br&gt;
\number: Backreference to a captured group by its number.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Special Sequences:&lt;br&gt;
\b: Matches a word boundary.&lt;br&gt;
\B: Matches a non-word boundary.&lt;br&gt;
\d: Matches any decimal digit.&lt;br&gt;
\s: Matches any whitespace character.&lt;br&gt;
\w: Matches any alphanumeric character and underscore.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Flags: The re module supports optional flags that modify the behavior of the regular expression matching. Some common flags include:&lt;br&gt;
re.IGNORECASE or re.I: Performs case-insensitive matching.&lt;br&gt;
re.MULTILINE or re.M: Allows the ^ and $ anchors to match at the beginning and end of each line.&lt;br&gt;
re.DOTALL or re.S: Allows the . metacharacter to match any character, including a newline.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Here’s a simple example that demonstrates some of the concepts mentioned above:&lt;br&gt;
import re pattern = r"gr.y" string = "The gray cat is sitting on the green mat." match = re.search(pattern, string) if match: print("Match found:", match.group()) else: print("No match found.") matches = re.findall(pattern, string) prin&lt;br&gt;
Match found: gray&lt;/p&gt;

&lt;p&gt;Explanation:&lt;br&gt;
The regular expression pattern gr.y matches any three-character sequence starting with "gr" and ending with "y", where the dot . represents any single character.&lt;br&gt;
The re.search() function is used to find the first occurrence of the pattern in the string.&lt;br&gt;
Since the string contains the word "gray," which matches the pattern, the re.search() function returns a match object.&lt;br&gt;
The match.group() method retrieves the matched substring.&lt;br&gt;
Therefore, the output is "Match found: gray".&lt;br&gt;
Note: If you want to find all occurrences of the pattern in the string, you can use the re.findall() function. In this case, the output would be:&lt;br&gt;
['gray']&lt;br&gt;
This returns a list containing all the non-overlapping matches of the pattern in the string.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>#2 Shorticle: How to read data from S3 bucket using python</title>
      <dc:creator>Rohit Shrivastava</dc:creator>
      <pubDate>Sun, 14 May 2023 06:31:20 +0000</pubDate>
      <link>https://dev.to/aws-builders/2-shorticle-how-to-read-data-from-s3-bucket-using-python-54li</link>
      <guid>https://dev.to/aws-builders/2-shorticle-how-to-read-data-from-s3-bucket-using-python-54li</guid>
      <description>&lt;p&gt;To read data from an Amazon S3 bucket using Python, you can utilize the boto3 library, which is the official AWS SDK for Python. Follow the steps below to get started:&lt;br&gt;
Install the boto3 library by running the following command in your Python environment:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install boto3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Import the required modules in your Python script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import boto3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Create a boto3 S3 client or resource object by providing your AWS access key ID and secret access key (or by using an IAM role with appropriate permissions). For example:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;s3_client = boto3.client('s3', aws_access_key_id='YOUR_ACCESS_KEY', aws_secret_access_key='YOUR_SECRET_KEY')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Use the client or resource object to interact with your S3 bucket. To read an object (file) from the bucket, you can use the get_object() method:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;response = s3_client.get_object(Bucket='your-bucket-name', Key='your-object-key')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;p&gt;In the above code snippet, replace 'your-bucket-name' with the name of your S3 bucket, and 'your-object-key' with the key (path) of the object you want to read.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Access the content of the object through the response object. For example, to read the object's content as text:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;object_content = response['Body'].read().decode('utf-8')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;You can also read the content as bytes by omitting the decode('utf-8') part.
Process or use the data as needed.
Here’s a complete example that demonstrates reading a text file from an S3 bucket:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import boto3
# Create an S3 client
s3_client = boto3.client(‘s3’, aws_access_key_id=’YOUR_ACCESS_KEY’, aws_secret_access_key=’YOUR_SECRET_KEY’)
# Read an object from the bucket
response = s3_client.get_object(Bucket=’your-bucket-name’, Key=’your-object-key’)
# Read the object’s content as text
object_content = response[‘Body’].read().decode(‘utf-8’)
# Process or use the content as needed
print(object_content)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Remember to replace 'YOUR_ACCESS_KEY', 'YOUR_SECRET_KEY', 'your-bucket-name', and 'your-object-key' with your actual credentials and bucket/object information.&lt;/p&gt;

&lt;p&gt;Note: It’s recommended to follow AWS security best practices and avoid hardcoding your access keys in your code. Instead, consider using AWS credentials stored in a secure manner, such as environment variables, AWS profile configuration, or EC2 instance roles, depending on your execution environment.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>#1 Shorticle: Why AWS Lambda Throttles?</title>
      <dc:creator>Rohit Shrivastava</dc:creator>
      <pubDate>Sun, 14 May 2023 06:24:14 +0000</pubDate>
      <link>https://dev.to/aws-builders/1-shorticle-why-aws-lambda-throttles-2ih6</link>
      <guid>https://dev.to/aws-builders/1-shorticle-why-aws-lambda-throttles-2ih6</guid>
      <description>&lt;p&gt;AWS Lambda throttling refers to the process of limiting the number of concurrent executions or the number of requests per second that a Lambda function can handle. Throttling is designed to prevent excessive resource consumption and ensure the overall stability and performance of the Lambda service.&lt;br&gt;
When a Lambda function receives a high number of requests or exceeds the allocated concurrency limit, AWS may enforce throttling by limiting the rate at which new requests are accepted or the rate at which concurrent executions are allowed. Throttling can occur at different levels:&lt;/p&gt;

&lt;p&gt;Account Level Throttling: AWS imposes account-level limits on the total number of concurrent executions across all Lambda functions within an AWS account. If the account limit is reached, any new requests or invocations may be throttled until the load reduces or the concurrency limit is increased.&lt;/p&gt;

&lt;p&gt;Function Level Throttling: Each individual Lambda function can have its own concurrency limit, which restricts the maximum number of simultaneous executions for that function. When the function’s concurrency limit is reached, additional requests or invocations may be throttled until existing executions complete or the limit is increased.&lt;/p&gt;

&lt;p&gt;Provisioned Concurrency Throttling: If you have provisioned concurrency enabled for your Lambda function, there is a separate limit for the number of provisioned concurrency instances. If this limit is reached, additional requests may be throttled until a provisioned concurrency instance becomes available.&lt;/p&gt;

&lt;p&gt;When a Lambda function is throttled, AWS typically responds with a specific error code (e.g., “TooManyRequestsException” or “RequestLimitExceeded”), indicating that the function is currently unable to process the request. Throttled requests may need to be retried or handled accordingly in your application logic.&lt;/p&gt;

&lt;p&gt;To mitigate throttling, you can take the following actions:&lt;br&gt;
Monitor your function’s concurrency usage and adjust the concurrency limit based on your workload requirements.&lt;br&gt;
Implement proper error handling and retry mechanisms in your application code to handle throttling errors and resubmit requests if necessary.&lt;/p&gt;

&lt;p&gt;Consider using provisioned concurrency to pre-warm your function and ensure a specific number of concurrent instances are always available to handle requests.&lt;/p&gt;

&lt;p&gt;Optimize your code and configuration to reduce the time and resources required for each function execution, allowing more efficient use of the available concurrency.&lt;/p&gt;

&lt;p&gt;It’s important to note that AWS Lambda provides high scalability and performance, but it’s crucial to design your applications to handle and recover from throttling conditions to ensure smooth operation under varying workloads.&lt;br&gt;
Do read about &lt;a href="https://medium.com/@rohitshrivastava87/9-shorticle-concurrency-limit-in-aws-lambda-ac89ef89d3a"&gt;Concurrency Limit in AWS Lambda&lt;/a&gt;&lt;/p&gt;

</description>
      <category>awslambda</category>
      <category>aws</category>
      <category>lambdathrotlle</category>
      <category>serverless</category>
    </item>
    <item>
      <title>Serverless! Is it really without servers or something else????</title>
      <dc:creator>Rohit Shrivastava</dc:creator>
      <pubDate>Sun, 28 Aug 2022 11:57:00 +0000</pubDate>
      <link>https://dev.to/aws-builders/serverless-is-it-really-without-servers-or-something-else-2dm4</link>
      <guid>https://dev.to/aws-builders/serverless-is-it-really-without-servers-or-something-else-2dm4</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt;&lt;br&gt;
         In the recent years the computing technology has been evolving at a phenomenal rate. Data storage has become very affordable and computing power has vastly increased and this has allowed us to build applications that leverage these advancements in the computing space.&lt;/p&gt;

&lt;p&gt;Cloud computing for example has made it possible for us to build such cutting-edge applications at a small amount of cost, not only for big ventures but also for small ventures or individual people. Public cloud providers like Amazon AWS, Microsoft Azure, Google Cloud Platform have removed the entry barriers and made computing very easy and affordable for common people.&lt;br&gt;
 &lt;br&gt;
We know the modern-day applications demand high level of power, high level of compute power as well as speed let's take an example if your youtube app doesn’t show you what you need to see as soon as you open the youtube app, most of you might simply close the app and move on. It means the application should be fast and responsive and at the same time, it must be scalable with almost no downtime. Serverless Computing is the new trend in cloud computing which attempts to solve many of these challenges.&lt;br&gt;
 &lt;br&gt;
&lt;strong&gt;Serverless in Brief:&lt;/strong&gt;&lt;br&gt;
                Serverless computing will help you build the next generation of systems that can handle workloads on demand and scale indefinitely without having to provision or manage any servers. Now, if we look at the traditional architecture, there are several activities and tasks that you must perform in order to run any particular application.&lt;br&gt;
 &lt;br&gt;
First, you need to create and setup servers, install operating systems, install and setup databases, manage software patches and hardware updates, manage capacity and scaling, manage high-availability through load-balancing and so on and of course, this server infrastructure and the computing power has its own costs, which are often substantial. On the other hand, with Serverless Architecture, all these tedious tasks of managing the underlying infrastructure are abstracted away from us.&lt;br&gt;
 &lt;br&gt;
So in a way when you use serverless architecture, you won’t really feel like you are using any high-end servers, because you’re not the one who is actually taking care of it.&lt;br&gt;
That’s the reason this approach is called as &lt;strong&gt;Serverless&lt;/strong&gt;.&lt;br&gt;
 &lt;br&gt;
That means, Serverless Computing still uses servers, but you no longer have to worry about managing them or worry about the uptime or availability or anything that has to do with the infrastructure part. With Serverless, you kind of get to be more productive. You can completely focus on writing your code without having to worry about the underlying support system. So you simply upload your code to the cloud provider and it can be run on-demand as and when needed.&lt;br&gt;
 &lt;br&gt;
With Serverless(e.g. AWS Lambda), you write your code in the form of functions, just like you’d write a function in any programming language and these functions then run in the cloud. So, you segregate your application logic in to small independent functions or microservices and upload them to the cloud provider. These functions are stateless and can be invoked in response to different events. These events could be file uploads, database updates, in-app activity, API calls, website clicks, or sensor outputs just like those from IoT devices and so on and all this can be accomplished without having to manage any infrastructure or having to size, provision or scale a bunch of servers, and without having to worry about performance and availability. This seriously allows us to lesser focus on our application code and not get caught up in multitude of infrastructure issues.&lt;/p&gt;

&lt;p&gt;Let’s discuss in a more technical terms, these serverless functions often run in Docker-like containers and hence several instances of these functions can be run concurrently, like in a Dockerswarm, thus making them highly scalable. If you’re new to these terms like Docker or Container, nothing to worry. You really don’t need to know about these terms to be able to build Serverless applications.&lt;/p&gt;

&lt;p&gt;All this containerization happens behind the scenes and is completely taken care of by the cloud provider. Just for your information though, containers are a lightweight alternative to virtualization they allow you to run your code in isolated preconfigured environments.&lt;br&gt;
 &lt;br&gt;
So, in a nutshell, Serverless means “Event-driven Computing” using “Small independent stateless functions” running inside “containers in the cloud”. That’s the short definition of what Serverless is all about. So, you have your code running on the cloud platform, AWS in our case. Whenever the triggering event occurs, the cloud platform spins up a container or initializes a container, loads the function in it and executes the function. And this happens almost instantaneously, thereby allowing us to build applications that respond quickly to new information and thus enhance user experience. Once the function completes execution, it optionally returns a response back to the caller, and then finally exits or shuts down.&lt;br&gt;
 &lt;br&gt;
&lt;strong&gt;Pros&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No necessity of server management.&lt;/li&gt;
&lt;li&gt;Scales Quickly.&lt;/li&gt;
&lt;li&gt;High availability and fault tolerance.&lt;/li&gt;
&lt;li&gt;Pay as per use.&lt;/li&gt;
&lt;li&gt;Integration of services with other AWS services to send text notifications, emails.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Level of control.&lt;/li&gt;
&lt;li&gt;Execution time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;AWS offers Serverless Services in various categories:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Serverless Compute Services:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS Lambda&lt;/li&gt;
&lt;li&gt;AWS ECS&lt;/li&gt;
&lt;li&gt;AWS Fargate&lt;/li&gt;
&lt;li&gt;AWS EKS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Serverless Application Integration Services:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Amazon EventBridge&lt;/li&gt;
&lt;li&gt;Amazon SQS&lt;/li&gt;
&lt;li&gt;AWS Step Functions&lt;/li&gt;
&lt;li&gt;Amazon API Gateway&lt;/li&gt;
&lt;li&gt;Amazon SNS&lt;/li&gt;
&lt;li&gt;AWS AppSync&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Serverless Database Services:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Amazon S3&lt;/li&gt;
&lt;li&gt;Amazon RDS Proxy&lt;/li&gt;
&lt;li&gt;Amazon DynamoDB&lt;/li&gt;
&lt;li&gt;Amazon Aurora Serverless&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Serverless Data/Analytics Integration Services:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS Glue&lt;/li&gt;
&lt;li&gt;AWS Athena&lt;/li&gt;
&lt;li&gt;AWS Redshift&lt;/li&gt;
&lt;li&gt;Amazon Kinesis&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Serverless Debugging Tools:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS X-Ray&lt;/li&gt;
&lt;li&gt;AWS Cloudwatch&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Serverless User Authentication &amp;amp; Mnagement Services:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS Cognito&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For more information you can refer &lt;a href="https://docs.aws.amazon.com/index.html?nc2=h_ql_doc_do_v"&gt;AWS Documentation&lt;/a&gt;&lt;br&gt;
 &lt;br&gt;
From the next articles onwards, I’ll discuss about all the above services in my &lt;em&gt;SHORTICLES&lt;/em&gt; and detailed articles with their applications.&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Thanks for reading!!!&lt;br&gt;
 &lt;br&gt;
 &lt;/p&gt;

</description>
      <category>aws</category>
      <category>serverless</category>
      <category>cloud</category>
      <category>serverlesservices</category>
    </item>
  </channel>
</rss>
