<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Jay's Blog]]></title><description><![CDATA[Jay's Blog]]></description><link>https://hashnode.jayjoshi.live</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Apr 2026 09:53:44 GMT</lastBuildDate><atom:link href="https://hashnode.jayjoshi.live/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[SDLC Topics for AWS Certified DevOps Professional]]></title><description><![CDATA[Introduction
AWS DevOps Professional is one of the toughest AWS examination as it not only tests knowledge but also requires extensive concentration during the 3 hours of your exam. 
It has got 6 domains, during this blog, I will cover the first doma...]]></description><link>https://hashnode.jayjoshi.live/sdlc-topics-for-aws-certified-devops-professional</link><guid isPermaLink="true">https://hashnode.jayjoshi.live/sdlc-topics-for-aws-certified-devops-professional</guid><category><![CDATA[Devops]]></category><category><![CDATA[ci-cd]]></category><category><![CDATA[AWS]]></category><category><![CDATA[Certification]]></category><dc:creator><![CDATA[Jay Joshi]]></dc:creator><pubDate>Thu, 03 Mar 2022 07:00:17 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/unsplash/eStCg6FRw_E/upload/v1646290723013/YL3cqxs7L.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1 id="heading-introduction">Introduction</h1>
<p>AWS DevOps Professional is one of the toughest AWS examination as it not only tests knowledge but also requires extensive concentration during the 3 hours of your exam. 
It has got 6 domains, during this blog, I will cover the first domain which is Software Development Lifecycle. </p>
<h2 id="heading-topics-and-aws-services">Topics and AWS Services</h2>
<p>Code Commit, triggers, notifications and integration with lambda functions 
Code Build
Code Pipeline</p>
<h3 id="heading-code-commit">Code Commit</h3>
<p>Code commit - Version control with ability to understand changes to the code. 
Enabled by using a version control system such as Git
AWS Code commit offers private git repository solution, no limit on repositories, fully managed and scalable.
Secure and can be integrated with Jenkins, CodeBuild and other CI tools</p>
<p>Question: How would you restrict permissions to Junior developers to push and merge branches to AWS code commit
<strong>Answer</strong>: You can do this using IAM policy and applying it to IAM group or role,  <a target="_blank" href="https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-conditional-branch.html">here is an AWS blog on the same </a> </p>
<h4 id="heading-code-commit-integration-with-lambda">Code commit integration with Lambda</h4>
<p>I personally find this feature very cool, you can have a lambda function and setup a trigger based on Code Commit events! It's very simple, </p>
<ul>
<li>On AWS Console, open Lambda console and create a function, select python 3.</li>
<li>Once you create a function, under configurations, Add a trigger</li>
<li>Configure trigger as shown in screenshot below </li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1632288332777/nYdWabKAj.png" alt="Screen Shot 2021-09-22 at 1.25.19 AM.png" /></p>
<p>For Python 3, add the following code to your Lambda function - </p>
<pre><code><span class="hljs-keyword">import</span> json
<span class="hljs-keyword">import</span> boto3

codecommit = boto3.client(<span class="hljs-string">'codecommit'</span>)

<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">lambda_handler</span>(<span class="hljs-params">event, context</span>):</span>
    <span class="hljs-comment">#Log the updated references from the event</span>
    references = { reference[<span class="hljs-string">'ref'</span>] <span class="hljs-keyword">for</span> reference <span class="hljs-keyword">in</span> event[<span class="hljs-string">'Records'</span>][<span class="hljs-number">0</span>][<span class="hljs-string">'codecommit'</span>][<span class="hljs-string">'references'</span>] }
    print(<span class="hljs-string">"References: "</span>  + str(references))

    <span class="hljs-comment">#Get the repository from the event and show its git clone URL</span>
    repository = event[<span class="hljs-string">'Records'</span>][<span class="hljs-number">0</span>][<span class="hljs-string">'eventSourceARN'</span>].split(<span class="hljs-string">':'</span>)[<span class="hljs-number">5</span>]
    <span class="hljs-keyword">try</span>:
        response = codecommit.get_repository(repositoryName=repository)
        print(<span class="hljs-string">"Clone URL: "</span> +response[<span class="hljs-string">'repositoryMetadata'</span>][<span class="hljs-string">'cloneUrlHttp'</span>])
        <span class="hljs-keyword">return</span> response[<span class="hljs-string">'repositoryMetadata'</span>][<span class="hljs-string">'cloneUrlHttp'</span>]
    <span class="hljs-keyword">except</span> Exception <span class="hljs-keyword">as</span> e:
        print(e)
        print(<span class="hljs-string">'Error getting repository {}. Make sure it exists and that your repository is in the same region as this function.'</span>.format(repository))
        <span class="hljs-keyword">raise</span> e
</code></pre><p> <a target="_blank" href="https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-notify-lambda.html">Here is a link to the full article </a> </p>
<h4 id="heading-code-build">Code Build</h4>
<p>Fully Managed Build service which is alternative to build tools like Jenkins
Integration with KMS for encryption of build artifacts, IAM for build permission and VPC for network security, Cloud Trail for API calls logging </p>
<p>Points to remember - </p>
<p>1) Integration with source code from GitHub, Code Commit, S3 etc
2) Build instructions can be defined in buildspec.yml file
3) Logs can be sent to Cloudwatch or S3
4) Metrics to monitor Code Build statics
5) Cloud Watch events can detect failed builds and trigger notifications </p>
<p>Build spec.yml file - </p>
<p>This is a hear of Code Build, You can specify different phases of install, prebuild, build, post build, environment variable, parameter store, finally block. Here is an example of buildspec.yml file </p>
<pre><code><span class="hljs-attribute">version</span>: 0.2

<span class="yaml"><span class="hljs-attr">env:</span>
  <span class="hljs-attr">variables:</span>
    <span class="hljs-attr">JAVA_HOME:</span> <span class="hljs-string">"/usr/lib/jvm/java-8-openjdk-amd64"</span>
  <span class="hljs-attr">parameter-store:</span>
    <span class="hljs-attr">LOGIN_PASSWORD:</span> <span class="hljs-string">/CodeBuild/dockerLoginPassword</span>

<span class="hljs-attr">phases:</span>
  <span class="hljs-attr">install:</span>
    <span class="hljs-attr">commands:</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">echo</span> <span class="hljs-string">Entered</span> <span class="hljs-string">the</span> <span class="hljs-string">install</span> <span class="hljs-string">phase...</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">apt-get</span> <span class="hljs-string">update</span> <span class="hljs-string">-y</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">apt-get</span> <span class="hljs-string">install</span> <span class="hljs-string">-y</span> <span class="hljs-string">maven</span>
    <span class="hljs-attr">finally:</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">echo</span> <span class="hljs-string">This</span> <span class="hljs-string">always</span> <span class="hljs-string">runs</span> <span class="hljs-string">even</span> <span class="hljs-string">if</span> <span class="hljs-string">the</span> <span class="hljs-string">update</span> <span class="hljs-string">or</span> <span class="hljs-string">install</span> <span class="hljs-string">command</span> <span class="hljs-string">fails</span> 
  <span class="hljs-attr">pre_build:</span>
    <span class="hljs-attr">commands:</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">echo</span> <span class="hljs-string">Entered</span> <span class="hljs-string">the</span> <span class="hljs-string">pre_build</span> <span class="hljs-string">phase...</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">docker</span> <span class="hljs-string">login</span> <span class="hljs-string">-u</span> <span class="hljs-string">User</span> <span class="hljs-string">-p</span> <span class="hljs-string">$LOGIN_PASSWORD</span>
    <span class="hljs-attr">finally:</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">echo</span> <span class="hljs-string">This</span> <span class="hljs-string">always</span> <span class="hljs-string">runs</span> <span class="hljs-string">even</span> <span class="hljs-string">if</span> <span class="hljs-string">the</span> <span class="hljs-string">login</span> <span class="hljs-string">command</span> <span class="hljs-string">fails</span> 
  <span class="hljs-attr">build:</span>
    <span class="hljs-attr">commands:</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">echo</span> <span class="hljs-string">Entered</span> <span class="hljs-string">the</span> <span class="hljs-string">build</span> <span class="hljs-string">phase...</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">echo</span> <span class="hljs-string">Build</span> <span class="hljs-string">started</span> <span class="hljs-string">on</span> <span class="hljs-string">`date`</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">mvn</span> <span class="hljs-string">install</span>
    <span class="hljs-attr">finally:</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">echo</span> <span class="hljs-string">This</span> <span class="hljs-string">always</span> <span class="hljs-string">runs</span> <span class="hljs-string">even</span> <span class="hljs-string">if</span> <span class="hljs-string">the</span> <span class="hljs-string">install</span> <span class="hljs-string">command</span> <span class="hljs-string">fails</span>
  <span class="hljs-attr">post_build:</span>
    <span class="hljs-attr">commands:</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">echo</span> <span class="hljs-string">Entered</span> <span class="hljs-string">the</span> <span class="hljs-string">post_build</span> <span class="hljs-string">phase...</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">echo</span> <span class="hljs-string">Build</span> <span class="hljs-string">completed</span> <span class="hljs-string">on</span> <span class="hljs-string">`date`</span>

<span class="hljs-attr">reports:</span>
  <span class="hljs-attr">arn:aws:codebuild:your-region:your-aws-account-id:report-group/report-group-name-1:</span>
    <span class="hljs-attr">files:</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">"**/*"</span>
    <span class="hljs-attr">base-directory:</span> <span class="hljs-string">'target/tests/reports'</span>
    <span class="hljs-attr">discard-paths:</span> <span class="hljs-literal">no</span>
  <span class="hljs-attr">reportGroupCucumberJson:</span>
    <span class="hljs-attr">files:</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">'cucumber/target/cucumber-tests.xml'</span>
    <span class="hljs-attr">discard-paths:</span> <span class="hljs-literal">yes</span>
    <span class="hljs-attr">file-format:</span> <span class="hljs-string">CUCUMBERJSON</span> <span class="hljs-comment"># default is JUNITXML</span>
<span class="hljs-attr">artifacts:</span>
  <span class="hljs-attr">files:</span>
    <span class="hljs-bullet">-</span> <span class="hljs-string">target/messageUtil-1.0.jar</span>
  <span class="hljs-attr">discard-paths:</span> <span class="hljs-literal">yes</span>
  <span class="hljs-attr">secondary-artifacts:</span>
    <span class="hljs-attr">artifact1:</span>
      <span class="hljs-attr">files:</span>
        <span class="hljs-bullet">-</span> <span class="hljs-string">target/artifact-1.0.jar</span>
      <span class="hljs-attr">discard-paths:</span> <span class="hljs-literal">yes</span>
    <span class="hljs-attr">artifact2:</span>
      <span class="hljs-attr">files:</span>
        <span class="hljs-bullet">-</span> <span class="hljs-string">target/artifact-2.0.jar</span>
      <span class="hljs-attr">discard-paths:</span> <span class="hljs-literal">yes</span>
<span class="hljs-attr">cache:</span>
  <span class="hljs-attr">paths:</span>
    <span class="hljs-bullet">-</span> <span class="hljs-string">'/root/.m2/**/*'</span></span>
</code></pre><p><strong>Environment Variable and it's type : </strong></p>
<p>The type of environment variable. Valid values include:</p>
<p><em>PARAMETER_STORE:</em> An environment variable stored in Systems Manager Parameter Store. To learn how to specify a parameter store environment variable, see env/parameter-store in the AWS CodeBuild User Guide.</p>
<p><em>PLAINTEXT:</em> An environment variable in plain text format. This is the default value.</p>
<p><em>SECRETS_MANAGER:</em> An environment variable stored in AWS Secrets Manager. To learn how to specify a secrets manager environment variable, see env/secrets-manager in the AWS CodeBuild User Guide. </p>
<p><strong>Code Build Integration with cloud watch events</strong> - you can create a schedule in cloud watch event where you can set the target to code build 
Recommended Blog : https://aws.amazon.com/blogs/devops/validating-aws-codecommit-pull-requests-with-aws-codebuild-and-aws-lambda/</p>
<h3 id="heading-code-deploy">Code Deploy</h3>
<p>EC2 instances can be grouped by a deployment group (dev/test/prod)
Lots of flexibility to define any kind of deployments
Code Deploy can be chained with Code Pipeline and use artifacts from there. 
Code Deploy can re-use any existing setup tools, work on application, auto scaling
B/G only works for EC2 instances, not on premise
Support for AWS Lambda deployments, EC2</p>
<p><strong>AppSpec - </strong>
<em>BeforeInstall</em> – Use to run tasks before the replacement task set is created. One target group is associated with the original task set. If an optional test listener is specified, it is associated with the original task set. A rollback is not possible at this point.</p>
<p><em>AfterInstall</em> – Use to run tasks after the replacement task set is created and one of the target groups is associated with it. If an optional test listener is specified, it is associated with the original task set. The results of a hook function at this lifecycle event can trigger a rollback.</p>
<p><em>AfterAllowTestTraffic</em> – Use to run tasks after the test listener serves traffic to the replacement task set. The results of a hook function at this point can trigger a rollback.</p>
<p><em>BeforeAllowTraffic</em> – Use to run tasks after the second target group is associated with the replacement task set, but before traffic is shifted to the replacement task set. The results of a hook function at this lifecycle event can trigger a rollback.</p>
<p><em>AfterAllowTraffic</em> – Use to run tasks after the second target group serves traffic to the replacement task set. The results of a hook function at this lifecycle event can trigger a rollback.</p>
<p><strong>Code Deploy integration with Lambda</strong></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1646285601034/5guiHKUiC.png" alt="image.png" /></p>
<p><strong>Working with Code Deploy Configurations</strong></p>
<p><strong><em>Deployment configuration for different EC2/on-premise compute platform</em></strong></p>
<p>CodeDeployDefault.AllAtOnce:    In-place Deployments: Attempts to deploy an application revisions to as many instances possible at a time; For Blue/green deployments, Deployments will replace the environment</p>
<p>CodeDeployDefault.HalfAtATime: Deploys upto half of the instances at a time (with fractions rounded down) </p>
<p><strong><em>Deployment configuration on an AWS lambda compute platform</em></strong></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1646286354149/6Jmjs5JJX.png" alt="Screen Shot 2022-03-03 at 12.45.49 AM.png" /></p>
]]></content:encoded></item><item><title><![CDATA[Setting up on-premise ubuntu server with AWS Systems Manager]]></title><description><![CDATA[Introduction:
Systems Manager also helps you configure and maintain your managed instances. Supported machine types include Amazon Elastic Compute Cloud (Amazon EC2) instances, on-premises servers, and virtual machines (VMs), including VMs in other c...]]></description><link>https://hashnode.jayjoshi.live/setting-up-on-premise-ubuntu-server-with-aws-systems-manager</link><guid isPermaLink="true">https://hashnode.jayjoshi.live/setting-up-on-premise-ubuntu-server-with-aws-systems-manager</guid><category><![CDATA[AWS]]></category><category><![CDATA[Ubuntu]]></category><dc:creator><![CDATA[Jay Joshi]]></dc:creator><pubDate>Wed, 22 Sep 2021 19:47:22 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1632339897148/Cg2Adqk_X.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="introduction">Introduction:</h2>
<p>Systems Manager also helps you configure and maintain your managed instances. Supported machine types include Amazon Elastic Compute Cloud (Amazon EC2) instances, on-premises servers, and virtual machines (VMs), including VMs in other cloud environments. Supported operating system types include Windows Server, macOS, Raspberry Pi OS (formerly Raspbian), and multiple distributions of Linux.</p>
<p>In this short blog, we are going to cover registering an ubuntu on-prem instance to AWS Systems Manager</p>
<h2 id="installation-steps">Installation Steps:</h2>
<p>1) Go to AWS console and open SSM </p>
<p>2) Under "Node Management" click on "Hybrid Activations" &amp; then "Create an activation"</p>
<p>3) Fill out the required details, you can give it a name and setup an expiration time </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1632339304556/URKoFRq6F.png" alt="Screen Shot 2021-09-22 at 3.34.31 PM.png" /></p>
<p>4) Once you generate the activation, you will get activation-code and activation-id. This will be used for our on-prem instance</p>
<p>5) Login to your onprem instance and execute the following commands after you replace activation-code and activation-id -  </p>
<pre><code>mkdir /tmp/ssm
curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm
sudo yum <span class="hljs-keyword">install</span> -y /tmp/ssm/amazon-ssm-agent.rpm
sudo systemctl <span class="hljs-keyword">stop</span> amazon-ssm-<span class="hljs-keyword">agent</span>
<span class="hljs-comment"># edit the code, id and region in the command below</span>
sudo amazon-ssm-<span class="hljs-keyword">agent</span> -<span class="hljs-keyword">register</span> -code <span class="hljs-string">"activation-code"</span> -<span class="hljs-keyword">id</span> <span class="hljs-string">"activation-id"</span> -region <span class="hljs-string">"region"</span>
sudo systemctl <span class="hljs-keyword">start</span> amazon-ssm-<span class="hljs-keyword">agent</span>
</code></pre><p>6) Go to SSM dashboard and check your registered instance, since this is on-prem it should start with "mi-" </p>
]]></content:encoded></item><item><title><![CDATA[Sending AWS IoT Core Logs to S3 bucket using Kinesis Firehose]]></title><description><![CDATA[Abstract and Introduction:
With the boom of industry 4.0 and IoT, connectivity between edge IoT devices and Cloud is rapidly gaining importance. There are billions of devices out in the market and not all computation can be done at the edge. Talking ...]]></description><link>https://hashnode.jayjoshi.live/sending-aws-iot-core-logs-to-s3-bucket-using-kinesis-firehose</link><guid isPermaLink="true">https://hashnode.jayjoshi.live/sending-aws-iot-core-logs-to-s3-bucket-using-kinesis-firehose</guid><category><![CDATA[iot]]></category><category><![CDATA[AWS]]></category><category><![CDATA[Machine Learning]]></category><dc:creator><![CDATA[Jay Joshi]]></dc:creator><pubDate>Sun, 19 Sep 2021 19:45:47 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1632290486014/-BPBJc9gw.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="abstract-and-introduction">Abstract and Introduction:</h2>
<p>With the boom of industry 4.0 and IoT, connectivity between edge IoT devices and Cloud is rapidly gaining importance. There are billions of devices out in the market and not all computation can be done at the edge. Talking specifically about edge IoT devices, MQTT is a widely used protocol for communication and there are cloud solutions like GreenGrass that would send logs to IoT Core. Sending Data to IoT Core it's just the start, the data can be leveraged in endless possible ways like sending it to Athena, New Relic and many more. We are going to cover a very simple use case here which is sending it to S3 bucket. Let's get started with understanding of IoT core and kinesis firehose.  </p>
<h4 id="iot-core">IoT Core:</h4>
<p>AWS IoT Core lets you connect IoT devices to the AWS cloud without the need to provision or manage servers. AWS IoT Core can support billions of devices and trillions of messages, and can process and route those messages to AWS endpoints and to other devices reliably and securely. With AWS IoT Core, your applications can keep track of and communicate with all your devices, all the time, even when they aren’t connected.
%[https://aws.amazon.com/iot-core/][1]</p>
<h4 id="kinesis-firehose">Kinesis Firehose:</h4>
<p>Amazon Kinesis Data Firehose is the easiest way to reliably load streaming data into data lakes, data stores, and analytics services. It can capture, transform, and deliver streaming data to Amazon S3, Amazon Redshift, Amazon OpenSearch Service, generic HTTP endpoints, and service providers like Datadog, New Relic, MongoDB, and Splunk. It is a fully managed service that automatically scales to match the throughput of your data and requires no ongoing administration. It can also batch, compress, transform, and encrypt your data streams before loading, minimizing the amount of storage used and increasing security.</p>
<h2 id="implementation">Implementation</h2>
<h4 id="step-1"><strong>Step 1: </strong></h4>
<p>On your AWS console, navigate to AWS Core Services
When you are in IoT core, on the left hand side expand on "Act" and click on Rules. </p>
<h4 id="step-2">Step 2:</h4>
<p>Provide a rule name and a query attribute in the statement . In the below screenshot, my rule name is <code>Demo_Rule</code> and the MQTT topic I have subscribed is <code>iot/topic</code>. If you want to subscribe to all topics, your query should be <code>SELECT * FROM '#'</code></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1632079516190/sMemh2pex.png" alt="Screen Shot 2021-09-19 at 3.24.40 PM.png" /></p>
<h4 id="step-3">Step 3:</h4>
<p>Click on Add action, and select Send a message to an Amazon Kinesis Firehose Stream</p>
<h4 id="step-4">Step 4:</h4>
<p>Kinesis Firehose delivery Stream. 
You can select an existing Kinesis Firehose delivery stream or you can create a new one, in this blog I am creating a new one.</p>
<p><em>Source:</em> Direct PUT
<em>Destination:</em> S3
<em>Delivery Stream Name:</em> iot_demo_test (please customize as required)
<em>Destination Settings:</em> Provide details on the name of S3 bucket and prefix. (You can also adjust the buffer size as required) &amp; Click on Create delivery stream. </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1632079113914/37Pj24tQI.png" alt="Screen Shot 2021-09-19 at 3.11.02 PM.png" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1632079125540/Lq3VeVVnY.png" alt="Screen Shot 2021-09-19 at 3.11.13 PM.png" /></p>
<h4 id="step-5">Step 5:</h4>
<p>Assign Role to your IoT Rule and complete creation of IoT Rule 
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1632079425158/xNUElCqYz.png" alt="Screen Shot 2021-09-19 at 3.23.33 PM.png" /></p>
<h4 id="testing">Testing :</h4>
<p>Under Test with demo data, choose Start sending demo data to generate sample stock ticker data.
Follow the onscreen instructions to verify that data is being delivered to your S3 bucket. Note that it might take a few minutes for new objects to appear in your bucket, based on the buffering configuration of your bucket.
When the test is complete, choose Stop sending demo data to stop incurring usage charges.</p>
]]></content:encoded></item></channel></rss>