Introduction to AWS Internet of Things (IoT)

Brought by: AWS Skill Builder

Overview

Languages Available: Español (Latinoamérica) | Français | Bahasa Indonesia | Italiano | 日本語 | 한국어 | Português (Brasil) | 中文(简体)

In this lab, you will run a simple IoT device simulator on Amazon Elastic Compute Cloud (Amazon EC2) that will send sensor data (temperature) to the AWS IoT device gateway. You will then build a simple rule, using SQL-like syntax, that will publish a notification to an Amazon Simple Notification Service (Amazon SNS) topic when the temperature of the device is within a defined threshold. By connecting your email address with the Amazon SNS topic, you will receive an email notification when the threshold is met. Finally, you will update the device shadow, instructing the device to "turn on the air conditioning," resulting in lowering temperatures.


Level

Fundamental


Duration

1 Hours 30 Minutes


Course Objectives

In this course, you will learn how to:

  • Create AWS IoT certificates and keys
  • Run the simulator app and publish data to AWS IoT
  • Subscribe to the topic with the MQTT client in the AWS Management Console and watch the data stream in
  • Create an AWS IoT rule that will look for records with a temperature above a defined threshold
  • Associate a Simple Notification Service action with the rule
  • Publish a state change to the device shadow, instructing the simulator app to reduce temperature by "turning on the air conditioning"


Intended Audience

This course is intended for:

  • Architects
  • Developers


Prerequisites

We recommend that attendees of this course have the following prerequisites:

  • Familiar with the **Amazon EC2** service
  • Know how to connect to a **Linux-based EC2 instance**
  • Familiar with Amazon SNS, in particular, how to create an Amazon SNS topic and subscribe an email address to the topic.


Course Outline

  • Task 1: Connect to the Amazon EC2 instance
  • Task 2: Generate the AWS IoT X.509 certificates
  • Task 3: Create a Thing type
  • Task 4: Create a Thing
  • Task 5: Attach the policy and Thing to the certificate
  • Task 6: Create an IoT rule to send a notification
  • Task 7: Run the simulator application
  • Task 8: Create a subscription topic for your Thing and publish it
  • Task 9: Change device state with the device shadow
Introduction to AWS Internet of Things (IoT)
Go to course

Introduction to AWS Internet of Things (IoT)

Brought by: AWS Skill Builder

  • AWS Skill Builder
  • Paid
  • English
  • Certificate Not Available
  • Available at any time
  • All
  • N/A
8.1.2PHP Version344msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (214ms)
    • Application (129ms)
    • 1 x Booting (62.37%)
      214.41ms
      1 x Application (37.38%)
      128.52ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET en/courses/{slug}
      middleware
      web, localize:en
      controller
      App\Http\Controllers\CourseController@show
      as
      en.courses.show
      namespace
      prefix
      /en
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed7.01ms
      • select * from `courses` where `slug_en` = 'introduction-to-aws-internet-of-things-(iot)' limit 1
        5.72ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. introduction-to-aws-internet-of-things-(iot)
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-02-22 14:20:05' where `id` = 2980
        310μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-02-22 14:20:05
        • 1. 2980
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (13)
        220μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        160μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (100) and `institutions`.`deleted_at` is null
        190μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (12) and `providers`.`deleted_at` is null
        180μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 2971 limit 1
        230μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 2971
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        dGjOOqs42Vov4sXMGyYsggA6DseFjADTaMxfZ8vg
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/introduction-to-aws-internet-of-things-%2...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/introduction-to-aws-internet-of-things-%28iot%29
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "priority" => array:1 [ 0 => "u=0, i" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "cf-connecting-ip" => array:1 [ 0 => "3.147.195.139" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cf-ipcountry" => array:1 [ 0 => "US" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "x-forwarded-for" => array:1 [ 0 => "3.147.195.139" ] "cf-ray" => array:1 [ 0 => "915f9d634a9486da-ORD" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_PRIORITY" => "u=0, i" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_CF_CONNECTING_IP" => "3.147.195.139" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_X_FORWARDED_FOR" => "3.147.195.139" "HTTP_CF_RAY" => "915f9d634a9486da-ORD" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "38454" "REMOTE_ADDR" => "172.70.130.231" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/en/courses/introduction-to-aws-internet-of-things-%28iot%29" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1740234005.2617 "REQUEST_TIME" => 1740234005 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Sat, 22 Feb 2025 14:20:05 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Ik9yTnhCTjc5NFFqTFpMVlFaUGg3blE9PSIsInZhbHVlIjoiVDRld0NHUk1qaU14bGFJVWpJeUpEaHRkU2VJd1ZrVlZPWW52SjFTeUx5T1FuZlpPY0ZPL1BTVGozUzgwYWlEWW50eGtmUlpwSXNsL2Q0SWhaamp1ZkZRa2JOSEJnN1hUaENjaXNLSG9wbk9zdkFUSVBNQjl3Q2pFQldIWmJjOEoiLCJtYWMiOiJhYmI3YmYwMzdjYzQ0OTdmMGVhZjQxNjE2YzQxMWNjN2YzY2Y5MzczMDYyY2FjYTI2NDAzMzUwOWIyNjRhNGQ2IiwidGFnIjoiIn0%3D; expires=Sat, 22 Feb 2025 16:20:05 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6Ik9yTnhCTjc5NFFqTFpMVlFaUGg3blE9PSIsInZhbHVlIjoiVDRld0NHUk1qaU14bGFJVWpJeUpEaHRkU2VJd1ZrVlZPWW52SjFTeUx5T1FuZlpPY0ZPL1BTVGozUzgwYWlEWW50eGtmU" 1 => "laravel_session=eyJpdiI6IjR6RVdsUjh5REJuMFc5TThVUktUeVE9PSIsInZhbHVlIjoiMnJWVVYxaUJoTXRCM1Y2aVFZQzN3a1lIZmpzbVhxZzlJZXpZK0RRWC9tdWFlaG40czBjVkI2Z0h0UUxXT2pJWVhoSTRIbmFHVUZtSjhPM0JOcGo4WmxHdnhlK3dKS3RhWGJmVlZEY0lmcnhaYWkxMHFtNzBZRGhqeW1ESUVtZWQiLCJtYWMiOiI3NzNhYzMwNzM5MWIyYzZiZTNkMjg3MDBmYmQ2NDYyZjdmOTA0MDE5NWFkZWFhNjM2YzA5YmRlNTllNGEwYWMxIiwidGFnIjoiIn0%3D; expires=Sat, 22 Feb 2025 16:20:05 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IjR6RVdsUjh5REJuMFc5TThVUktUeVE9PSIsInZhbHVlIjoiMnJWVVYxaUJoTXRCM1Y2aVFZQzN3a1lIZmpzbVhxZzlJZXpZK0RRWC9tdWFlaG40czBjVkI2Z0h0UUxXT2pJWVho" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Ik9yTnhCTjc5NFFqTFpMVlFaUGg3blE9PSIsInZhbHVlIjoiVDRld0NHUk1qaU14bGFJVWpJeUpEaHRkU2VJd1ZrVlZPWW52SjFTeUx5T1FuZlpPY0ZPL1BTVGozUzgwYWlEWW50eGtmUlpwSXNsL2Q0SWhaamp1ZkZRa2JOSEJnN1hUaENjaXNLSG9wbk9zdkFUSVBNQjl3Q2pFQldIWmJjOEoiLCJtYWMiOiJhYmI3YmYwMzdjYzQ0OTdmMGVhZjQxNjE2YzQxMWNjN2YzY2Y5MzczMDYyY2FjYTI2NDAzMzUwOWIyNjRhNGQ2IiwidGFnIjoiIn0%3D; expires=Sat, 22-Feb-2025 16:20:05 GMT; path=/XSRF-TOKEN=eyJpdiI6Ik9yTnhCTjc5NFFqTFpMVlFaUGg3blE9PSIsInZhbHVlIjoiVDRld0NHUk1qaU14bGFJVWpJeUpEaHRkU2VJd1ZrVlZPWW52SjFTeUx5T1FuZlpPY0ZPL1BTVGozUzgwYWlEWW50eGtmU" 1 => "laravel_session=eyJpdiI6IjR6RVdsUjh5REJuMFc5TThVUktUeVE9PSIsInZhbHVlIjoiMnJWVVYxaUJoTXRCM1Y2aVFZQzN3a1lIZmpzbVhxZzlJZXpZK0RRWC9tdWFlaG40czBjVkI2Z0h0UUxXT2pJWVhoSTRIbmFHVUZtSjhPM0JOcGo4WmxHdnhlK3dKS3RhWGJmVlZEY0lmcnhaYWkxMHFtNzBZRGhqeW1ESUVtZWQiLCJtYWMiOiI3NzNhYzMwNzM5MWIyYzZiZTNkMjg3MDBmYmQ2NDYyZjdmOTA0MDE5NWFkZWFhNjM2YzA5YmRlNTllNGEwYWMxIiwidGFnIjoiIn0%3D; expires=Sat, 22-Feb-2025 16:20:05 GMT; path=/; httponlylaravel_session=eyJpdiI6IjR6RVdsUjh5REJuMFc5TThVUktUeVE9PSIsInZhbHVlIjoiMnJWVVYxaUJoTXRCM1Y2aVFZQzN3a1lIZmpzbVhxZzlJZXpZK0RRWC9tdWFlaG40czBjVkI2Z0h0UUxXT2pJWVho" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "dGjOOqs42Vov4sXMGyYsggA6DseFjADTaMxfZ8vg" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/introduction-to-aws-internet-of-things-%28iot%29" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]