<?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>Forem: Mohammed Ismaeel</title>
    <description>The latest articles on Forem by Mohammed Ismaeel (@mohammedismaeel).</description>
    <link>https://forem.com/mohammedismaeel</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%2F686914%2F7cbf481f-daaf-45f2-9c82-cea9683f0f51.jpg</url>
      <title>Forem: Mohammed Ismaeel</title>
      <link>https://forem.com/mohammedismaeel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/mohammedismaeel"/>
    <language>en</language>
    <item>
      <title>Running an AGV Order Manager on Serverless — A Dream I Once Had</title>
      <dc:creator>Mohammed Ismaeel</dc:creator>
      <pubDate>Wed, 03 Sep 2025 14:21:32 +0000</pubDate>
      <link>https://forem.com/mohammedismaeel/running-an-agv-order-manager-on-serverless-a-dream-i-once-had-1ecc</link>
      <guid>https://forem.com/mohammedismaeel/running-an-agv-order-manager-on-serverless-a-dream-i-once-had-1ecc</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0g9wjrbylzp8oi0gh61o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0g9wjrbylzp8oi0gh61o.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;A few years ago, I worked at company, back then, I often thought about how much better things could be if we reimagined the way Automated Guided Vehicle (AGV) order management systems were delivered. This article isn’t about what that company (or anyone else) is doing today — it’s simply an idea I had at the time. A dream, if you will. Technology moves fast, so I can’t guarantee how things are done nowadays. But I still believe the core thought is worth sharing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Background — How It’s Usually Done&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In most warehouses today, if you want to run an AGV order manager, you typically:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Allocate a dedicated server on the customer site.&lt;/li&gt;
&lt;li&gt;Perform a manual installation of the AGV management software.&lt;/li&gt;
&lt;li&gt;Configure the system to talk with the Warehouse Management System (WMS) and the AGV fleet.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This comes with its own headaches:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hardware compatibility issues.&lt;/li&gt;
&lt;li&gt;Complex upgrades (every site needs to be patched manually).&lt;/li&gt;
&lt;li&gt;Limited scalability (you size hardware upfront and hope it’s enough).&lt;/li&gt;
&lt;li&gt;High dependency on the customer’s IT environment.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The Dream — What If It Were Serverless?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What if, instead of on-premise servers, the AGV Order Manager (OM) lived as a serverless service in the cloud? Imagine an architecture where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;WMS systems call a simple API (e.g., /orders) to create or update orders.&lt;/li&gt;
&lt;li&gt;The Order Manager validates, persists, and schedules these tasks.&lt;/li&gt;
&lt;li&gt;AGVs receive assignments via a managed queue or IoT messaging channel.&lt;/li&gt;
&lt;li&gt;AGVs report back their status through lightweight callbacks (/agv/status).&lt;/li&gt;
&lt;li&gt;The system automatically scales with demand — no servers to patch, no hardware sizing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this world, observability, resilience, and security are built-in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Orders and statuses flow through event-driven pipelines.&lt;/li&gt;
&lt;li&gt;Dead-letter queues and retries make the system self-healing.&lt;/li&gt;
&lt;li&gt;Metrics and alerts provide real-time operational insight.&lt;/li&gt;
&lt;li&gt;Security is managed via IAM, encryption, and signed requests.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why It Matters&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The value of this approach is not in the technical novelty, but in what it unlocks for operations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Faster deployments — rolling out a new site is about configuration, not hardware.&lt;/li&gt;
&lt;li&gt;Continuous improvements — features can be shipped centrally without manual upgrades.&lt;/li&gt;
&lt;li&gt;Global scalability — from one small warehouse to a massive distribution hub.&lt;/li&gt;
&lt;li&gt;Lower cost of ownership — no more maintaining on-prem servers for every customer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The Realities&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Of course, reality is more nuanced. Many sites still require local installations due to network constraints, safety requirements, or vendor lock-in. Latency expectations, certification processes, and customer IT policies all play a role. But the dream was always about reducing friction and making AGV systems easier to run and evolve.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Closing Thoughts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Back when I was working with AGVs, this was just a dream: an AGV Order Manager powered by serverless technologies. I don’t know how things are done today, but I still think this vision has merit. The warehouse floor doesn’t care if the order manager is running on a rack-mounted server or in a Lambda function — what matters is reliability, safety, and speed. And serverless offers an exciting path toward that future.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Would you build an AGV OM system this way? Or do you think on-prem will always be the safer bet for mission-critical warehouse automation?&lt;/em&gt;&lt;/p&gt;

</description>
      <category>serverless</category>
      <category>agv</category>
      <category>aws</category>
    </item>
    <item>
      <title>How to Migrate from Serverless Framework to AWS SAM</title>
      <dc:creator>Mohammed Ismaeel</dc:creator>
      <pubDate>Sun, 10 Nov 2024 23:52:40 +0000</pubDate>
      <link>https://forem.com/aws-builders/how-to-migrate-from-serverless-framework-to-aws-sam-1pnn</link>
      <guid>https://forem.com/aws-builders/how-to-migrate-from-serverless-framework-to-aws-sam-1pnn</guid>
      <description>&lt;p&gt;Abstract: Migrating from the Serverless Framework to AWS Serverless Application Model (SAM) can streamline your deployment processes by leveraging AWS-native tooling. This article provides a comprehensive guide on how to transition your serverless applications, highlighting the key differences between the two frameworks and offering step-by-step instructions to ensure a smooth migration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;The Serverless Framework is a popular tool that allows developers to build and deploy serverless applications across multiple cloud providers. AWS Serverless Application Model (SAM) is an AWS-native framework specifically designed to simplify the development and deployment of serverless applications on AWS.&lt;/p&gt;

&lt;p&gt;While the Serverless Framework offers multi-cloud capabilities, some organisations may prefer to migrate to AWS SAM to take advantage of deeper AWS service integrations, improved local testing capabilities, and streamlined deployment processes.&lt;/p&gt;

&lt;p&gt;This article aims to guide you through the migration process from the Serverless Framework to AWS SAM, ensuring that your serverless applications continue to function after the transition.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding Serverless Framework and AWS SAM
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Serverless Framework&lt;/strong&gt;&lt;br&gt;
The Serverless Framework is a CLI tool that facilitates the development and deployment of serverless applications. It supports multiple cloud providers, including AWS, Azure, Google Cloud, and more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multi-cloud support&lt;/li&gt;
&lt;li&gt;Plugin ecosystem for extended functionality&lt;/li&gt;
&lt;li&gt;YAML-based configuration (serverless.yml)&lt;/li&gt;
&lt;li&gt;Simplifies packaging and deployment processes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;AWS SAM&lt;/strong&gt;&lt;br&gt;
AWS SAM is an open-source framework that extends AWS CloudFormation to provide a simplified way of defining and deploying serverless applications on AWS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS-specific optimisations&lt;/li&gt;
&lt;li&gt;YAML or JSON templates (template.yaml or template.yml)&lt;/li&gt;
&lt;li&gt;Local debugging and testing with SAM CLI&lt;/li&gt;
&lt;li&gt;Integration with AWS services and CI/CD pipelines&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Reasons to Migrate to AWS SAM
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;AWS Native Tooling: Deep integration with AWS services and features.&lt;/li&gt;
&lt;li&gt;Local Testing: Enhanced local testing capabilities using the SAM CLI.&lt;/li&gt;
&lt;li&gt;Simplified Permissions: Easier management of IAM roles and policies.&lt;/li&gt;
&lt;li&gt;Resource Connectors: Simplify resource permission configurations between serverless functions and other AWS resources.&lt;/li&gt;
&lt;li&gt;Cost Efficiency: Potentially lower overhead by eliminating the need for third-party plugins.
Active Development: Continuous updates and support from AWS.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Pre-Migration Considerations
&lt;/h2&gt;

&lt;p&gt;Before starting the migration process:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Backup Your Codebase: Ensure that your existing code and configuration files are backed up.&lt;/li&gt;
&lt;li&gt; Understand Feature Parity: Some features in the Serverless Framework may not have direct equivalents in AWS SAM.&lt;/li&gt;
&lt;li&gt; Review Dependencies: Identify any plugins or custom resources that need to be addressed.&lt;/li&gt;
&lt;li&gt;Update AWS CLI and SAM CLI: Ensure you have the latest versions installed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Step-by-Step Migration Guide
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. Install AWS SAM CLI
&lt;/h3&gt;

&lt;p&gt;Ensure that the AWS SAM CLI is installed and configured on your machine.&lt;/p&gt;

&lt;p&gt;Installation Instructions:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html" rel="noopener noreferrer"&gt;Visit the AWS SAM CLI Installation Guide for platform-specific instructions&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Analyze Your Serverless Framework Configuration
&lt;/h3&gt;

&lt;p&gt;Review your serverless.yml file to understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Functions and their triggers&lt;/li&gt;
&lt;li&gt;Resources (e.g., DynamoDB tables, S3 buckets)&lt;/li&gt;
&lt;li&gt;Environment variables&lt;/li&gt;
&lt;li&gt;IAM roles and permissions&lt;/li&gt;
&lt;li&gt;Plugins and custom settings&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  3. Create an AWS SAM Template
&lt;/h3&gt;

&lt;p&gt;Create a new template.yaml file in the root directory of your project.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;yaml&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;AWSTemplateFormatVersion&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;2010-09-09'&lt;/span&gt;
&lt;span class="na"&gt;Transform&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;AWS::Serverless-2016-10-31&lt;/span&gt;
&lt;span class="na"&gt;Description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;&amp;gt;-&lt;/span&gt;
  &lt;span class="s"&gt;Your Serverless Application migrated to AWS SAM&lt;/span&gt;

&lt;span class="na"&gt;Globals&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;Function&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;Runtime&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;nodejs14.x&lt;/span&gt;
    &lt;span class="na"&gt;Timeout&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10&lt;/span&gt;
    &lt;span class="na"&gt;MemorySize&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;128&lt;/span&gt;

&lt;span class="na"&gt;Resources&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="c1"&gt;# Resources will be defined here&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. Refactor Function Definitions
&lt;/h3&gt;

&lt;p&gt;Map each function from serverless.yml to AWS SAM format.&lt;/p&gt;

&lt;p&gt;Serverless Framework Example:&lt;br&gt;
&lt;code&gt;yaml&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;Resources&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;HelloWorldFunction&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;Type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;AWS::Serverless::Function&lt;/span&gt;
    &lt;span class="na"&gt;Properties&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;Handler&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;src/handlers/helloWorld.handler&lt;/span&gt;
      &lt;span class="na"&gt;Runtime&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;nodejs14.x&lt;/span&gt;
      &lt;span class="na"&gt;Events&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;HelloWorldApi&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;Type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Api&lt;/span&gt;
          &lt;span class="na"&gt;Properties&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
            &lt;span class="na"&gt;Path&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;/hello&lt;/span&gt;
            &lt;span class="na"&gt;Method&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;get&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  5. Update Resource Definitions
&lt;/h3&gt;

&lt;p&gt;Translate custom resources defined in serverless.yml to AWS SAM.&lt;/p&gt;

&lt;p&gt;Serverless Framework Example:&lt;br&gt;
&lt;code&gt;yaml&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;resources&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;Resources&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;MyTable&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;Type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;AWS::DynamoDB::Table&lt;/span&gt;
      &lt;span class="na"&gt;Properties&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;TableName&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;my-table&lt;/span&gt;
        &lt;span class="na"&gt;AttributeDefinitions&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;AttributeName&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;id&lt;/span&gt;
            &lt;span class="na"&gt;AttributeType&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;S&lt;/span&gt;
        &lt;span class="na"&gt;KeySchema&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;AttributeName&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;id&lt;/span&gt;
            &lt;span class="na"&gt;KeyType&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;HASH&lt;/span&gt;
        &lt;span class="na"&gt;BillingMode&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;PAY_PER_REQUEST&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;AWS SAM Equivalent:&lt;br&gt;
&lt;code&gt;yaml&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;Resources&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;MyTable&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;Type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;AWS::DynamoDB::Table&lt;/span&gt;
    &lt;span class="na"&gt;Properties&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;TableName&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;my-table&lt;/span&gt;
      &lt;span class="na"&gt;AttributeDefinitions&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;AttributeName&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;id&lt;/span&gt;
          &lt;span class="na"&gt;AttributeType&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;S&lt;/span&gt;
      &lt;span class="na"&gt;KeySchema&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;AttributeName&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;id&lt;/span&gt;
          &lt;span class="na"&gt;KeyType&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;HASH&lt;/span&gt;
      &lt;span class="na"&gt;BillingMode&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;PAY_PER_REQUEST&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  6. Simplify Connections with Resource Connectors
&lt;/h3&gt;

&lt;p&gt;Use AWS SAM resource connectors to define the permissions and environment variables needed for your Lambda functions to access other resources.&lt;/p&gt;

&lt;p&gt;Connecting a Lambda Function to a DynamoDB Table:&lt;/p&gt;

&lt;p&gt;Instead of manually specifying IAM policies and environment variables, you can use the &lt;code&gt;Connectors&lt;/code&gt; property.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;yaml&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;Resources&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;MyTable&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;Type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;AWS::DynamoDB::Table&lt;/span&gt;
    &lt;span class="na"&gt;Properties&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;TableName&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;my-table&lt;/span&gt;
      &lt;span class="na"&gt;AttributeDefinitions&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;AttributeName&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;id&lt;/span&gt;
          &lt;span class="na"&gt;AttributeType&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;S&lt;/span&gt;
      &lt;span class="na"&gt;KeySchema&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;AttributeName&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;id&lt;/span&gt;
          &lt;span class="na"&gt;KeyType&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;HASH&lt;/span&gt;
      &lt;span class="na"&gt;BillingMode&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;PAY_PER_REQUEST&lt;/span&gt;

  &lt;span class="na"&gt;GetItemFunction&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;Type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;AWS::Serverless::Function&lt;/span&gt;
    &lt;span class="na"&gt;Properties&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;Handler&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;src/handlers/getItem.handler&lt;/span&gt;
      &lt;span class="na"&gt;Runtime&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;nodejs14.x&lt;/span&gt;
      &lt;span class="na"&gt;Connectors&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;MyConn&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;Properties&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
            &lt;span class="na"&gt;Destination&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
              &lt;span class="na"&gt;Id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;MyTable&lt;/span&gt;
            &lt;span class="na"&gt;Permissions&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
              &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;Read&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Explanation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Connectors property automatically sets up the necessary IAM policies and environment variables (TABLE_NAME) for the GetItemFunction to interact with MyTable.&lt;/li&gt;
&lt;li&gt;This reduces manual configuration and potential errors.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  7. Modify Environment Variables and IAM Roles
&lt;/h3&gt;

&lt;p&gt;Define environment variables and IAM roles within your function properties.&lt;/p&gt;

&lt;p&gt;Environment Variables:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;Properties&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;Environment&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;Variables&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;TABLE_NAME&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;my-table&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;IAM Roles:&lt;/p&gt;

&lt;p&gt;AWS SAM can automatically generate roles, or you can define them explicitly.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;Properties&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;Policies&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;DynamoDBReadPolicy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;TableName&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;my-table&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  8. Test Locally with SAM CLI
&lt;/h3&gt;

&lt;p&gt;AWS SAM allows local testing of Lambda functions and API Gateway.&lt;/p&gt;

&lt;p&gt;Start the API Locally:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;
sam &lt;span class="nb"&gt;local &lt;/span&gt;start-api
sam &lt;span class="nb"&gt;local &lt;/span&gt;invoke HelloWorldFunction

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  9. Deploy Your Application
&lt;/h3&gt;

&lt;p&gt;Use the sam deploy command to package and deploy your application.&lt;/p&gt;

&lt;p&gt;Guided Deployment:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Copy code
sam deploy &lt;span class="nt"&gt;--guided&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Specify Parameters: Provide stack name, AWS region, and permissions preferences.&lt;/p&gt;

&lt;h3&gt;
  
  
  10. Validate the Migration
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Test Endpoints: Ensure all APIs and functions are working as expected.&lt;/li&gt;
&lt;li&gt;Check Resources: Verify that all resources have been created properly.&lt;/li&gt;
&lt;li&gt;Monitor Logs: Use AWS CloudWatch to monitor function logs for errors.&lt;/li&gt;
&lt;li&gt;Best Practices&lt;/li&gt;
&lt;li&gt;Use Parameters and Mappings: Make your templates reusable across environments.&lt;/li&gt;
&lt;li&gt;Organize Templates: Break down large templates into nested stacks if necessary.&lt;/li&gt;
&lt;li&gt;Version Control: Keep your SAM templates under version control.&lt;/li&gt;
&lt;li&gt;Automate Deployments: Integrate SAM deployment commands into your CI/CD pipeline.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Common Pitfalls and How to Avoid Them
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Unsupported Plugins: Serverless Framework plugins may not have direct equivalents in AWS SAM. Identify critical plugins and find AWS-native solutions.&lt;/li&gt;
&lt;li&gt;Naming Conflicts: Be cautious of resource naming to avoid conflicts during deployment.&lt;/li&gt;
&lt;li&gt;Environment Differences: Ensure that environment variables and configurations match between the two frameworks.&lt;/li&gt;
&lt;li&gt;IAM Permissions: Double-check IAM policies to ensure functions have the necessary permissions.&lt;/li&gt;
&lt;li&gt;Resource Connector Limitations: Be aware that resource connectors support specific resource types. Consult the AWS SAM documentation for supported connections.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Migrating from the Serverless Framework to AWS SAM allows you to leverage AWS's native tooling and services more effectively. While the migration requires careful planning and refactoring of your configuration files, the benefits of improved integration, testing capabilities, and streamlined deployments can significantly enhance your serverless application's performance and maintainability.&lt;/p&gt;

&lt;p&gt;References&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html" rel="noopener noreferrer"&gt;AWS Serverless Application Model (SAM) Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/aws/serverless-application-model" rel="noopener noreferrer"&gt;AWS SAM GitHub Repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.serverless.com/" rel="noopener noreferrer"&gt;Serverless Framework Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.serverless.direct/post/serverless-framework-vs-aws-sam-a-detailed-comparison" rel="noopener noreferrer"&gt;Migrating to AWS SAM from the Serverless Framework&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-connector.html" rel="noopener noreferrer"&gt;AWS Serverless Connector&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>aws</category>
      <category>serverless</category>
      <category>cloudnative</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>AWS Lambda Function with Bedrock, Javascript SDK, Serverless framework Part one</title>
      <dc:creator>Mohammed Ismaeel</dc:creator>
      <pubDate>Sat, 07 Oct 2023 15:38:20 +0000</pubDate>
      <link>https://forem.com/aws-builders/aws-lambda-function-with-bedrock-javascript-cdk-serverless-framework-5d0c</link>
      <guid>https://forem.com/aws-builders/aws-lambda-function-with-bedrock-javascript-cdk-serverless-framework-5d0c</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Like many others passionate about the advancements in Generative AI, I've always amazed about  the incredible possibilities it holds. However, the complexities of training and creating AI models often deter individuals, including myself, due to the time and expertise required. That's why when AWS introduced Bedrock's general availability, it felt like a game-changer. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ٍ_ٍSo what is Amazon Bedrock? _&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Amazon Bedrock&lt;/strong&gt; is a fully managed service that makes FMs from leading AI startups and Amazon available via an API, so you can choose from a wide range of FMs to find the model that is best suited for your use case. With Bedrock’s serverless experience, you can get started quickly, privately customize FMs with your own data, and easily integrate and deploy them into your applications using the AWS tools without having to manage any infrastructure.&lt;/p&gt;

&lt;p&gt;In this article, we will explore the synergy between AWS Lambda and the Bedrock using AWS javascript SDK, demonstrating how this integration empowers developers to seamlessly incorporate machine learning models into their applications. AWS Bedrock opens doors to a world of innovative possibilities, enabling developers to leverage the power of Generative AI effortlessly. I will not talk about the cost in this article lets wait with for now. &lt;/p&gt;
&lt;h2&gt;
  
  
  Understanding the Code
&lt;/h2&gt;

&lt;p&gt;The provided code snippet showcases an AWS Lambda function written in JavaScript. It utilizes the Bedrock Runtime Client, a part of the AWS SDK, to interact with machine learning models. Let's break down the key components of the code:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Setting Up the Client: The code initializes the Bedrock Runtime Client by specifying the AWS region as "us-west-2".
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const { BedrockRuntimeClient, InvokeModelCommand } = require("@aws-sdk/client-bedrock-runtime");

const client = new BedrockRuntimeClient({ region: "us-west-2" });
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;Preparing Input Data: The input object is constructed, containing parameters required to invoke a machine learning model. Notably, the body property is a JSON string representing the input data for the model.
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const input = {
    "modelId": "ai21.j2-mid-v1",
    "contentType": "application/json",
    "accept": "*/*",
    "body": JSON.stringify({
      "prompt": prompt,
      "maxTokens": 200,
      "temperature": 0.7,
      "topP": 1,
      "stopSequences": [],
      "countPenalty": { "scale": 0 },
      "presencePenalty": { "scale": 0 },
      "frequencyPenalty": { "scale": 0 }
    })
  };
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;Invoking the Model: The InvokeModelCommand is used to send a request to the machine learning model, passing the prepared input.
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;try {
    const data = await client.send(new InvokeModelCommand(input));
    const jsonString = Buffer.from(data.body).toString('utf8');
    const parsedData = JSON.parse(jsonString);
    const text = parsedData.completions[0].data.text;
    console.log('text', text);
    return text
  } catch (error) {
    console.error(error);
  }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;Handling the Response: The response from the model is parsed from a buffer to a JSON string. The parsed data is then accessed to extract the generated text, which is logged to the console.
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;try {
    const data = await client.send(new InvokeModelCommand(input));
    const jsonString = Buffer.from(data.body).toString('utf8');
    const parsedData = JSON.parse(jsonString);
    const text = parsedData.completions[0].data.text;
    console.log('text', text);
    return text
  } catch (error) {
    console.error(error);
  }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;I have created a simple Serverless application using Serverless framework and javascript as a template for simplicity and here is the all code for the handler and serverless.yml file
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const { BedrockRuntimeClient, InvokeModelCommand } = require("@aws-sdk/client-bedrock-runtime");

const client = new BedrockRuntimeClient({ region: "us-west-2" });

module.exports.bedrock = async (event) =&amp;gt; {
  const prompt = event.body.prompt;
  console.log('prompt', prompt);
  const input = {
    "modelId": "ai21.j2-mid-v1",
    "contentType": "application/json",
    "accept": "*/*",
    "body": JSON.stringify({
      "prompt": prompt,
      "maxTokens": 200,
      "temperature": 0.7,
      "topP": 1,
      "stopSequences": [],
      "countPenalty": { "scale": 0 },
      "presencePenalty": { "scale": 0 },
      "frequencyPenalty": { "scale": 0 }
    })
  };

  try {
    const data = await client.send(new InvokeModelCommand(input));
    const jsonString = Buffer.from(data.body).toString('utf8');
    const parsedData = JSON.parse(jsonString);
    const text = parsedData.completions[0].data.text;
    console.log('text', text);
    return text
  } catch (error) {
    console.error(error);
  }
};

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;serverless.yml&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;service: bedrock
# app and org for use with dashboard.serverless.com

frameworkVersion: "3"

provider:
  name: aws
  runtime: nodejs18.x
  region: us-west-2


functions:
  bedrock:
    handler: handler.bedrock

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And at the end you can see the response of the lambda in the Aws console &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzwnqd4q5v8d76rqtv1vz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzwnqd4q5v8d76rqtv1vz.png" alt="Image description" width="800" height="119"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Part Two&lt;/strong&gt;&lt;br&gt;
In part tow I will add an API gateway and create a simple react app that takes the prompt as an input and presents the generated text by the model.&lt;/p&gt;

</description>
      <category>serverless</category>
      <category>aws</category>
      <category>ai</category>
      <category>chatgpt</category>
    </item>
    <item>
      <title>How To Became Aws Community Builder Arabic Version</title>
      <dc:creator>Mohammed Ismaeel</dc:creator>
      <pubDate>Wed, 05 Jan 2022 17:34:41 +0000</pubDate>
      <link>https://forem.com/aws-builders/kyf-sbh-aws-community-builder-4111</link>
      <guid>https://forem.com/aws-builders/kyf-sbh-aws-community-builder-4111</guid>
      <description>&lt;h2&gt;
  
  
  ؟؟ AWS Community Builders كيف اصبحت
&lt;/h2&gt;

&lt;p&gt;كثيرا ما يطرح علي هذا السؤال وعن ماذا يعني ان تكون جزئا من هذه المنظومة ؟؟&lt;br&gt;
...... سوف أحاول في هذا المقال ان اجيب عن هذه التسأولات &lt;br&gt;
أولا وقبل كل شي يجب ان تكون شخص طموح ولكن متواضع ولديك رغبة في  التعلم. أنت تحب ان تشارك المعلومات المتعلقة بالحوسبة السحابية مع العالم ومقابلة الاشخاص الآخرين الذين يشاركونك نفس الاهتمامات  &lt;/p&gt;

&lt;p&gt;لا تخف ان احسست بانك غير ملائم للتقديم في هذه المرحلة او من اين قد ابدأ لاكون مؤهل للدخول الى هذه البرنامج الاجابة الخبر السار ان اعضاء الكوميونتي منتشرون حول العالم وسوف يكونون سعيدين بالمساعدة &lt;/p&gt;

&lt;h2&gt;
  
  
  ما هي الفائدة من البرنامج
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;يعتبر اضافة جيدة الى السيرة الذاتية &lt;/li&gt;
&lt;li&gt; فاوتشر مجاني للشهادة الي تود تمتحن فيها قد تصل قيمته ل $300 &lt;/li&gt;
&lt;li&gt;AWS خمسمئة دولار في حسابك تساعدك في تطبيق واستخدام خدمات &lt;/li&gt;
&lt;li&gt;التعرف على اشخاص اخرين وتكوين نيتورك تشاركك نفس الاهتمامات&lt;/li&gt;
&lt;li&gt;AWSلديك افضلية الحصول على اخر التطورات والخدمات التي تقدمها
&lt;/li&gt;
&lt;li&gt;بعض الهدايا الخاصة باعضاء البرنامج &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa6346k6zixsrhz9jowu4.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa6346k6zixsrhz9jowu4.jpg" alt="Image description" width="499" height="540"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  كيف اقوم بالتقديم
&lt;/h2&gt;

&lt;p&gt;تُفتح الطلبات مرتين سنويًا ويمكنك التقديم من خلال رابط التقديم ادناه &lt;br&gt;
&lt;a href="https://aws.amazon.com/developer/community/community-builders/" rel="noopener noreferrer"&gt;AWS Community Builder&lt;/a&gt;&lt;br&gt;
ستجد اخر التحديثات في الصفحة وعند التقديم سيطلب التطبيق معلومات .AWS عنك وعن مشاركتك في مجتمع &lt;/p&gt;

&lt;p&gt;الاشخاص القادمون من خلفيات غير تقنية مرحب بهم ايضا في البرنامج &lt;br&gt;
 تشجع الجميع على ان يكونوا جزئا من هذه العائلة AWS &lt;br&gt;
  فان الدخول في AWS Hero بما انه لا يوجد مسار رسمي للتقديم على &lt;br&gt;
 هو بداية جيدة ومكان جيد للبدءAWS community builder عائلة ال &lt;/p&gt;

&lt;h2&gt;
  
  
  AWS  عن من تبحث
&lt;/h2&gt;

&lt;p&gt;الامر ليس سرا وتجدونه في صفحة التقديم وهذه هي الترجمة الحرفية &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;عشاق الحوسبة السحابية وقادة الفكر الناشئين المتحمسين لمشاركة المعرفة والتواصل مع المجتمع التقني &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;لم يتم وضع معايير محددة ، لذلك لا داعي للقلق بشأن الحاجة إلى نشر عشر منشورات مدونة ، أو تصوير خمسة مقاطع فيديو على يوتيوب، &lt;br&gt;
أو انك تحتاج ثلاث سنوات من الخبرة في المجال&lt;br&gt;&lt;br&gt;
بل على العكس لا يعني انك اذا قد كنت تمتلك الخبرة التقنية وانك &lt;br&gt;
 انك فد ضمنت مكانا في البرنامج AWS حاصل على شهادات من&lt;br&gt;&lt;br&gt;
المفتاح هو أنهم يريدون من الأشخاص الذين يتوقون إلى مشاركت &lt;br&gt;
 AWS حماسهم وشغفهم تجاه كل ما يتعلق بـ  &lt;/p&gt;

&lt;h2&gt;
  
  
  ماذا علي أن أفعل للمشاركة؟
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1.  &lt;a href="https://aws.amazon.com/developer/community/usergroups/" rel="noopener noreferrer"&gt;AWS user groups&lt;/a&gt;ألتطوع في
&lt;/h3&gt;

&lt;h3&gt;
  
  
  2. أللقاء المحاضرات
&lt;/h3&gt;

&lt;h3&gt;
  
  
  3. المقالات
&lt;/h3&gt;

&lt;h3&gt;
  
  
  4. التجمعات التقنية
&lt;/h3&gt;

&lt;h3&gt;
  
  
  5. التواصل الاجتماعي
&lt;/h3&gt;

&lt;h3&gt;
  
  
  6. Podcast
&lt;/h3&gt;

&lt;h3&gt;
  
  
  7. التطبيق العملي
&lt;/h3&gt;

&lt;h2&gt;
  
  
  ممن يمكنني طلب النصيحة؟
&lt;/h2&gt;

&lt;p&gt;افضل طريقة هي التواصل مع احد اعضاء البرنامج والسؤال عن كيفية التقديم والقبول وهم كثر ولابد انك على علم باحدهم اذا لم تكن على &lt;br&gt;
AWS  او في تجمعات linkedin  اتصال باحدهم قم بالبحث في &lt;/p&gt;

&lt;h2&gt;
  
  
  ماذا يحصل ان لم اقبل في البرنامج
&lt;/h2&gt;

&lt;p&gt;البرنامج تنافسي ، ولن يتم قبول الجميع في طلبهم الأول. وهذا جيد&lt;/p&gt;

&lt;p&gt;يتم إعادة فتح جولات الطلبات مرتين في السنة ، لذلك سيكون هناك المزيد من الفرص. باستخدام بعض النصائح من المقالة والنصائح من بناة المجتمع الآخرين ، يمكنك أيضًا تعزيز تطبيقك في المرة القادمة. فرصتك في النجاح تتحسن فقط&lt;/p&gt;

&lt;p&gt;في الاخير لا تردد في سؤالي اذا كان لديك اي استفسار&lt;/p&gt;

</description>
      <category>aws</category>
      <category>career</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Serverless مقدمة عن</title>
      <dc:creator>Mohammed Ismaeel</dc:creator>
      <pubDate>Tue, 07 Dec 2021 13:03:07 +0000</pubDate>
      <link>https://forem.com/awsmenacommunity/serverless-mqdm-n-2bjb</link>
      <guid>https://forem.com/awsmenacommunity/serverless-mqdm-n-2bjb</guid>
      <description>&lt;h2&gt;
  
  
  Serverless ما هو ال
&lt;/h2&gt;

&lt;p&gt;مجموعة من الخدمات السحابية التي  تتيحُ لك                                     بناء وتشغيل التطبيقات والخدمات دون الحاجة إلى التفكير بالسيرفير&lt;br&gt;&lt;br&gt;
&lt;br&gt;                                  الحوسبة بدون خوادم او سيرفرات تتيح للمطور بناء وتشغيل التطبيقات والخدمات دون الحاجة الى التفكير بالخوادم. ان خدمات السيرفيرلس لا تتطلب منك تجهيز او ادارة او توسيع البنية التحتية. &lt;br&gt;
&lt;br&gt;&lt;br&gt;
يمكن استخدام خدمات السيرفيرلس تقريبا في جميع المجالات كاتطوير المواقع او تطوير تطبيقات الموبايل او في الذكاء الصناعي &lt;br&gt;
&lt;br&gt;                              تعتبر خدمات السيرفرلس اقتصاديه جدا فانت كمظور لا تدفع للخدمه اذا كانت في الوضع الخامل انت تدفع فقط في حالة استعمال الخدمة وهذا شي رائع بالنسبة للشركات الصغيرة او الناشئة او في حال كنت تريد ان تجرب شي جديد&lt;br&gt;&lt;br&gt;
&lt;br&gt;                          من الجدير بالذكر ان جميع التحديثات الامنية وتوفر الخدمة على مدار الساعة هي مسؤولية مزود الخدمة. ان تطوير او بناء خدمات بتقنية السيرفرلس تساعد الموطورين على التركيز على المنتج النهائي وهذا يؤدي الى سرعة الوصول الى السوق والمستخدم  &lt;/p&gt;

&lt;h2&gt;
  
  
  Serverless services ما هي
&lt;/h2&gt;

&lt;p&gt;تنقسم الى ثلاثة اقسام كما مبين ادناه&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Compute
&lt;/h3&gt;

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

&lt;h3&gt;
  
  
  2. Integration
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;EventBridge&lt;/li&gt;
&lt;li&gt;Step Function&lt;/li&gt;
&lt;li&gt;SQS&lt;/li&gt;
&lt;li&gt;SNS&lt;/li&gt;
&lt;li&gt;API Gateway&lt;/li&gt;
&lt;li&gt;AppSync&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Data Store
&lt;/h3&gt;

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

&lt;h2&gt;
  
  
  Serverless ما هي افضل استخدمات ال
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;معالجة الملفات&lt;/li&gt;
&lt;li&gt;معالجة البيانات&lt;/li&gt;
&lt;li&gt;ألشبكات&lt;/li&gt;
&lt;li&gt;انترنت الاشياء&lt;/li&gt;
&lt;li&gt;تطبيقات الويب والمحمول&lt;/li&gt;
&lt;li&gt;تطبيقات قائمة على الأحداث Event Driven Application&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  فيديو تعليمي
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=c2jS5HOEz7U&amp;amp;list=PLOoZRfEtk6kVk4xHNFi_4cukuzsL-BNz3" rel="noopener noreferrer"&gt;youtube 1&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=OpcLz3BHO34&amp;amp;list=PLOoZRfEtk6kVk4xHNFi_4cukuzsL-BNz3&amp;amp;index=3" rel="noopener noreferrer"&gt;youtube 2&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  روابط ذات صلة
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://serverlessland.com/" rel="noopener noreferrer"&gt;Serverless Land&lt;/a&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/serverless/" rel="noopener noreferrer"&gt;AWS Serverless Services&lt;/a&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/event-driven-architecture/" rel="noopener noreferrer"&gt;Event-Driven Architecture&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.serverless.com/" rel="noopener noreferrer"&gt;Serverless Framework&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>serverless</category>
      <category>career</category>
      <category>cloud</category>
    </item>
    <item>
      <title>AWS الحوسبة السحابية مع</title>
      <dc:creator>Mohammed Ismaeel</dc:creator>
      <pubDate>Mon, 08 Nov 2021 22:54:28 +0000</pubDate>
      <link>https://forem.com/aws-builders/aws-lhwsb-lshby-m-1i27</link>
      <guid>https://forem.com/aws-builders/aws-lhwsb-lshby-m-1i27</guid>
      <description>&lt;h4&gt;
  
  
  Note: this article is in Arabic and for special target group!
&lt;/h4&gt;

&lt;h4&gt;
  
  
  ملاحظة:الهدف من هذا المقال هو الطلبة والمهتمين في مجال
&lt;/h4&gt;

&lt;h4&gt;
  
  
  الحوسبة السحابية من دون سابق خبرة
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fattlb0safjuzifhvseji.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fattlb0safjuzifhvseji.jpg" alt="Image description" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ما هي الحوسبة السحابية؟
&lt;/h2&gt;

&lt;p&gt;إن الحوسبة السحابية تعني توفير موارد تقنية المعلومات حسب الطلب عبر الإنترنت مع تسعير التكلفة حسب الاستخدام. فبدلاً من شراء مراكز البيانات الفعلية وامتلاكها والاحتفاظ بها، يمكنك الاستفادة من الخدمات التكنولوجية، مثل إمكانيات الحوسبة، والتخزين، وقواعد البيانات، بأسلوب يعتمد على الاحتياجات لديك، وذلك من خلال جهة موفرة للخدمات السحابية مثل Amazon Web Services (AWS).&lt;/p&gt;

&lt;h2&gt;
  
  
  مزايا الحوسبة السحابية
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;السرعة والمقصود هنا بسرعة التحول من الفكرة الى التطبيق لان كل ما تحتاجه للبدء بمشروعك موجود&lt;/li&gt;
&lt;li&gt;المرونة نقصد بها انك لن تحتاج الى التفكير بعدد المستهلكين فالموارد السحابية قابلة للتوسع والتقلص حسب ظروف العمل&lt;/li&gt;
&lt;li&gt;التوفير انت تدفع لما تستخدم فقط لا غير &lt;/li&gt;
&lt;li&gt;الانتشار عالميا بسرعة لان الخدمات السحابية منتشرة على مدى جغرافي واسع فان الوصول الى المستخدمين صار اسهل&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  أبرز المزودين للخدمات السحابية
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Amazon AWS: هو المتصدر عالميا في هذا المجال لكثرة الخدمات وعدد المتعاقدين والتوسع والانتشار الجغرافي &lt;/li&gt;
&lt;li&gt;MS Azure : يحتل المركز الثاني ويوفر تقريبا نفس الخدمات مع اختلاف في الاسعار واماكن الانتشار الجغرافي&lt;/li&gt;
&lt;li&gt;Google Cloud: الثالث عالميا ولكن لديهم استثمارات قوية في هذا المجال &lt;/li&gt;
&lt;li&gt; هناك شركات اخرى موجودة ولكن ليست بنفس الحجم والانتشار مثل IBM Oracle وشركات اخرى&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fptjbuidamzkzhjxlu5me.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fptjbuidamzkzhjxlu5me.jpeg" alt="Image description" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  أنواع الحوسبة السحابية
&lt;/h2&gt;

&lt;p&gt;1.البنية التحتية كخدمة (IaaS)&lt;br&gt;
2.النظام الأساسي كخدمة (PaaS)&lt;br&gt;
3.البرامج كخدمة (SaaS)&lt;/p&gt;

&lt;h2&gt;
  
  
  مجالات الاستخدام
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;خدمات الحوسبة&lt;/li&gt;
&lt;li&gt;التخزين&lt;/li&gt;
&lt;li&gt;وقواعد البيانات&lt;/li&gt;
&lt;li&gt;الشبكات&lt;/li&gt;
&lt;li&gt;تحليل البيانات&lt;/li&gt;
&lt;li&gt;تقنية تعلم الآلة&lt;/li&gt;
&lt;li&gt;الذكاء الاصطناعي&lt;/li&gt;
&lt;li&gt;إنترنت الأشياء (IoT)&lt;/li&gt;
&lt;li&gt;الأمان&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  أرجو التركيز على الجزء القادم من المقال
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiewxqs2g5tlef7i7k6ai.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiewxqs2g5tlef7i7k6ai.jpg" alt="Image description" width="609" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  أولا هل يجب علي ان اتعلم الحوسبة السحابية؟
&lt;/h2&gt;

&lt;p&gt;الحواب نعم يجب ان تتعلم لان نحن في عصر الحوسبة السحابية وكل الشركات كبيرة او صغيرة تحولت او في طور التحول&lt;br&gt;
اذا كنت صاحب فكرة فان من السهل جدا ان تبدأ في التطبيق وبكلفة قليلة جدا&lt;/p&gt;

&lt;h2&gt;
  
  
  كيف اثبت اني قادر على العمل في هذا المجال
&lt;/h2&gt;

&lt;p&gt;AWS:&lt;br&gt;
توفر شهادات خبرة معترف بها عالميا ولها سمعة قوية في سوق العمل فاذا كنت من حاملين هذه الشهادات فان فرص العمل تكون جيدة جدا &lt;/p&gt;

&lt;h2&gt;
  
  
  AWS ما هي الشهادات الي توفرها
&lt;/h2&gt;

&lt;p&gt;تنقسم الشهادات الى ثلاث اقسام &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Associate level وينقسم الى ثلاث اختبارات &lt;/li&gt;
&lt;li&gt;Professional level ويحتوي على اختبارين وهما الاصعب &lt;/li&gt;
&lt;li&gt;Specialty level يحتوي على ستة اختبارات في اختصاصات معينة &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxmztid7lvwhkt8aco1yk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxmztid7lvwhkt8aco1yk.png" alt="Image description" width="800" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  من اين ابدأ
&lt;/h2&gt;

&lt;p&gt;أذا كنت تفضل اللغة العربية فانصحك الدورة المجانية المقدمة من قبل المهندس عيسى ابو شريف تعتبر مدخل جيد ويمكنك عن طريقها تخطي شهادة associate solution architect &lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=E3nLSHQtLes&amp;amp;list=PLOoZRfEtk6kWSM_l9xMjDh-_MJXl03-pf" rel="noopener noreferrer"&gt;الرابط&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Free Code Camp الكورس المجاني من&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=Ia-UEYYR44s" rel="noopener noreferrer"&gt;AWS Certified Solutions Architect - Associate 2020 (PASS THE EXAM!)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://explore.skillbuilder.aws/learn" rel="noopener noreferrer"&gt;AWS skill builder&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;كما يمكنك الانضمام الى قنواتنا على التلكرام او الفيسبوك في الروابط التالية &lt;br&gt;
&lt;a href="https://www.facebook.com/groups/iraqcloud" rel="noopener noreferrer"&gt;AWS Iraq user group&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foo9dar5zfm6v3noubvli.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foo9dar5zfm6v3noubvli.png" alt="Image description" width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.facebook.com/groups/300699310518354" rel="noopener noreferrer"&gt;AWS بالعربي&lt;/a&gt; &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6gxq8rumn2u4rfrkp1ic.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6gxq8rumn2u4rfrkp1ic.jpg" alt="Image description" width="640" height="640"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://t.me/awsbelaraby" rel="noopener noreferrer"&gt;AWS بالعربي تليكرام&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;في النهاية اذا كان لديك اي سؤال او استفسار ارجو مراسلتي على الروابط ادناها&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/mohammed-ismaeel-1a748417/" rel="noopener noreferrer"&gt;Linkedin&lt;/a&gt;&lt;br&gt;
&lt;a href="https://twitter.com/The_Al_Sanad" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>aws</category>
      <category>career</category>
    </item>
    <item>
      <title>Continuous integration and delivery (CI/CD) using AWS CDK Pipelines with Bitbucket</title>
      <dc:creator>Mohammed Ismaeel</dc:creator>
      <pubDate>Tue, 12 Oct 2021 13:40:07 +0000</pubDate>
      <link>https://forem.com/aws-builders/continuous-integration-and-delivery-ci-cd-using-aws-cdk-pipelines-with-bitbucket-4hc3</link>
      <guid>https://forem.com/aws-builders/continuous-integration-and-delivery-ci-cd-using-aws-cdk-pipelines-with-bitbucket-4hc3</guid>
      <description>&lt;p&gt;When starting a new project the first problem we face is planning our infrastructure. In this post I'm giving a simple example of how we can create an automated pipeline using AWS CDK and Bitbucket repository. Before diving into Prerequisites and Steps.&lt;br&gt;
let me first unravel the title of this post: “Continuous integration and delivery with AWS CDK Pipelines”&lt;/p&gt;

&lt;h2&gt;
  
  
  Continuous Delivery
&lt;/h2&gt;

&lt;p&gt;I will assume you already have heard about the term Continuous Delivery and there is many definitions out there but the simplest is CD is a set of tools and processes that helps DevOps teams to ship higher quality software, faster.&lt;/p&gt;

&lt;h2&gt;
  
  
  AWS CDK vs the world
&lt;/h2&gt;

&lt;p&gt;The official definition for AWS CDK is an open source software development framework to define your cloud application resources (Infrastructure) using familiar programming languages (&lt;code&gt;TypeScript, JavaScript, Python, Java and C#&lt;/code&gt;).&lt;/p&gt;

&lt;h4&gt;
  
  
  Why CDk vs the world?
&lt;/h4&gt;

&lt;p&gt;Basically we can compare the CDK with Serverless framework, AWS SAM, and Terraform. All these frameworks are used to develop, test and deploy your project, I will not go in all details and differences between them! &lt;br&gt;
The main benefits of using AWS CDK are: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Easy to use, because we will use the same programing language we use in our project, CDK can be integrated in your IDE, and you don't need to learn Yml or Terraform. &lt;/li&gt;
&lt;li&gt;Component reusability and sharing, just like any other software library&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For more details check this &lt;a href="https://dev.to/tastefulelk/serverless-framework-vs-sam-vs-aws-cdk-1g9g"&gt;post&lt;/a&gt; by my friend &lt;a href="https://dev.to/tastefulelk"&gt;Sebastian Bille&lt;/a&gt;&lt;br&gt;
And another good &lt;a href="https://acloudguru.com/blog/engineering/cloudformation-terraform-or-cdk-guide-to-iac-on-aws" rel="noopener noreferrer"&gt;post&lt;/a&gt; from &lt;a href="https://acloudguru.com/" rel="noopener noreferrer"&gt;A Cloud Guru&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  AWS CodeBuild vs Bitbucket Pipelines
&lt;/h2&gt;

&lt;p&gt;I had a job interview recently, and as a part of the interview process I had to do some code test. They asked to create a pipeline using AWS CodeBuild with Bitbucket? My first reaction was why you want to use CodeBuild instead of Bitbucket Pipelines? &lt;br&gt;
The answer I got wasn't satisficing, The main differences I found after some search are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Integration with AWS services&lt;/li&gt;
&lt;li&gt;Price, Bitbucket Pipelines offer product package options than AWS offers pay-as-you-go&lt;/li&gt;
&lt;li&gt;Authentication with AWS, CodeBuild has IAM Role integration which gives temporary AWS credentials&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you want to find out more about this topic please check the following articles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://medium.com/@rokaso/ci-tools-comparison-codebuild-vs-bitbucket-pipelines-vs-jenkins-47f3d25ff984" rel="noopener noreferrer"&gt;CI Tools comparison: CodeBuild vs Bitbucket Pipelines vs Jenkins&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://knapsackpro.com/ci_comparisons/aws-codebuild/vs/bitbucket-pipelines" rel="noopener noreferrer"&gt;AWS CodeBuild vs Bitbucket Pipelines&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Getting started
&lt;/h1&gt;

&lt;p&gt;The focus of this post will be on creating pipelines-as-code, so for demonstration purposes we will create and deploy a simple react-app&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;NodeJS install latest Nodejs version &lt;/li&gt;
&lt;li&gt;npm or yarn should be installed globally &lt;/li&gt;
&lt;li&gt;AWS CDK install with &lt;code&gt;npm install -g aws-cdk&lt;/code&gt; or &lt;code&gt;yarn global add aws-cdk&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;AWS CLI&lt;/li&gt;
&lt;li&gt;AWS Account&lt;/li&gt;
&lt;li&gt;Bitbucket Account&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Steps
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Create Bitbucket repo
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Create a public or private repository in &lt;a href="https://bitbucket.org/repo/create" rel="noopener noreferrer"&gt;Bitbucket&lt;/a&gt; and name it myapp&lt;/li&gt;
&lt;li&gt;Clone Bitbucket repo to your machine&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Creating react-app
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Create a simple react-app in the same directory of your 
Bitbucket repository
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx create-react-app my-app
&lt;span class="nb"&gt;cd &lt;/span&gt;my-app
yarn start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Commit react-app code to Bitbucket &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Configure AWS CLI
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Generate an &lt;code&gt;Access Key&lt;/code&gt; and &lt;code&gt;Secret Access Key&lt;/code&gt; for your AWS account.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;AWS_ACCESS_KEY_ID&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"…"&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;AWS_SECRET_ACCESS_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"…"&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;AWS_SESSION_TOKEN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"…"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. Create infrastructure folder
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Create a new folder outside the &lt;code&gt;src&lt;/code&gt; folder and name it infra&lt;/li&gt;
&lt;li&gt;Navigate to the infra folder&lt;/li&gt;
&lt;li&gt;Init the CDK project
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  cdk init myApp &lt;span class="nt"&gt;--language&lt;/span&gt; typescript
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  5. Deploy infrastructure
&lt;/h4&gt;

&lt;p&gt;Before the deployment we need to update &lt;code&gt;infr.ts&lt;/code&gt; under  &lt;code&gt;/lib&lt;/code&gt; start by: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add the following dependencies
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;CDK&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@aws-cdk/core&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;CodeBuild&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@aws-cdk/aws-codebuild&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;CodePipeline&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@aws-cdk/aws-codepipeline&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;CodePipelineAction&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@aws-cdk/aws-codepipeline-actions&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;S3&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@aws-cdk/aws-s3&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Create pipeline and pipeline artifacts
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;
    &lt;span class="c1"&gt;// AWS CodeBuild artifacts&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;outputSources&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;CodePipeline&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Artifact&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;outputWebsite&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;CodePipeline&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Artifact&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="c1"&gt;// AWS CodePipeline pipeline&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;pipeline&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;CodePipeline&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Pipeline&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Pipeline&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;pipelineName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;MyWebsite&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;restartExecutionOnUpdate&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Add checkout stage in this stage we will clone sources from bitbucket repository
we will need to create a &lt;code&gt;connectionArn&lt;/code&gt; in this step please follow the documentation in &lt;a href="https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-bitbucket.html" rel="noopener noreferrer"&gt;Create a connection to Bitbucket&lt;/a&gt; to get your &lt;code&gt;connectionArn&lt;/code&gt;.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// AWS CodePipeline stage to clone sources from bitbucket repository&lt;/span&gt;
    &lt;span class="nx"&gt;pipeline&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addStage&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
      &lt;span class="na"&gt;stageName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Source&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;actions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;CodePipelineAction&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;CodeStarConnectionsSourceAction&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
          &lt;span class="na"&gt;actionName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Checkout&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="na"&gt;owner&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;repository owner name&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="na"&gt;repo&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;repository name&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="na"&gt;output&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;outputSources&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="na"&gt;branch&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;master&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="c1"&gt;// the branch you deploy from&lt;/span&gt;
          &lt;span class="na"&gt;connectionArn&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                  &lt;span class="c1"&gt;//Paste the generated `connectionArn` here &lt;/span&gt;

        &lt;span class="p"&gt;}),&lt;/span&gt;
      &lt;span class="p"&gt;],&lt;/span&gt;

    &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Add Build stage to build our website, we will add a simple &lt;code&gt;./infra/lib/pipeline.yml&lt;/code&gt; file to run CodeBuild project
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;version: 0.2

phases:
  &lt;span class="nb"&gt;install&lt;/span&gt;:
    runtime-versions:
      nodejs: 12
    commands:
      - yarn &lt;span class="nb"&gt;install
  &lt;/span&gt;build:
    commands:
      - yarn build

artifacts:
  base-directory: ./build
  files:
    - &lt;span class="s1"&gt;'**/*'&lt;/span&gt;

cache:
  paths:
    - &lt;span class="s1"&gt;'./node_modules/**/*'&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt; &lt;span class="c1"&gt;// AWS CodePipeline stage to build website and CDK resources&lt;/span&gt;
    &lt;span class="nx"&gt;pipeline&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addStage&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
      &lt;span class="na"&gt;stageName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Build&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;actions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="c1"&gt;// AWS CodePipeline action to run CodeBuild project&lt;/span&gt;
        &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;CodePipelineAction&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;CodeBuildAction&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
          &lt;span class="na"&gt;actionName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Website&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="na"&gt;project&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;CodeBuild&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;PipelineProject&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;BuildWebsite&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="na"&gt;projectName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;MyWebsite&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;buildSpec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;CodeBuild&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;BuildSpec&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fromSourceFilename&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
              &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./infra/lib/build.yml&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
            &lt;span class="p"&gt;),&lt;/span&gt;
          &lt;span class="p"&gt;}),&lt;/span&gt;
          &lt;span class="na"&gt;input&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;outputSources&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="na"&gt;outputs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;outputWebsite&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="p"&gt;}),&lt;/span&gt;
      &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;The last stage will be adding deployment stage, we want to deploy the react-app to S3 bucket, and every time we make a new changes it will be deployed the S3 bucket
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt; &lt;span class="c1"&gt;// Amazon S3 bucket to store website&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;bucketWebsite&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;S3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Bucket&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Files&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;websiteIndexDocument&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;index.html&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;websiteErrorDocument&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;error.html&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;publicReadAccess&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;

    &lt;span class="c1"&gt;// AWS CodePipeline stage to deploy website and CDK resources&lt;/span&gt;
    &lt;span class="nx"&gt;pipeline&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addStage&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
      &lt;span class="na"&gt;stageName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Deploy&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;actions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="c1"&gt;// AWS CodePipeline action to deploy website to S3&lt;/span&gt;
        &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;CodePipelineAction&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;S3DeployAction&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
          &lt;span class="na"&gt;actionName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Website&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="na"&gt;input&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;outputWebsite&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="na"&gt;bucket&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;bucketWebsite&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;}),&lt;/span&gt;
      &lt;span class="p"&gt;],&lt;/span&gt;

    &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Resources:
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://aws.amazon.com/cdk/" rel="noopener noreferrer"&gt;AWS Cloud Development Kit&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.dasithsblog.com/blog/easily_deploying_cloud_infrastructure_via_CDK/" rel="noopener noreferrer"&gt;Easily deploying infrastructure as code via AWS CDK&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Wrapping Up
&lt;/h1&gt;

&lt;p&gt;You can do almost the same thing using GitHub actions, you will need create a new connection check this &lt;a href="https://docs.aws.amazon.com/dtconsole/latest/userguide/connection&amp;lt;br&amp;gt;%0As-create-github.html" rel="noopener noreferrer"&gt;Create a connection to GitHub&lt;/a&gt;&lt;br&gt;
We can create deferent pipelines for deferent stages like Dev, QA, Prod &lt;br&gt;
The link to my Bitbucket repository is &lt;a href="https://bitbucket.org/mohammmedismaeel/aws-cdk-pipeline/src/master/" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Please let me know in the comments if this post was helpful and what I can do better next time!&lt;/p&gt;

&lt;p&gt;Please follow me on Twitter at &lt;a href="https://twitter.com/The_Al_Sanad" rel="noopener noreferrer"&gt;@The_Al_Sanad&lt;/a&gt; where I Will frequently write about serverless, devOps!&lt;/p&gt;

</description>
      <category>aws</category>
      <category>react</category>
      <category>devops</category>
      <category>typescript</category>
    </item>
  </channel>
</rss>
