To start with, I just want to say great article and example code so I want to give some feedback for others that will try it out. I noticed that the link in the article https://devopstar.com/2020/03/14/easy-aws-iot-with-esp-idf for AWS IoT documentation page is pointing to the github repo and not to the aws docs.
Another thing I bumped into was when building, it looks like its not possible to build due to the headers / lib it tries to fetch. Attaching the output from the build bellow
> Executing task: platformio run --environment esp32dev <
Processing esp32dev (platform: espressif32; framework: espidf; board: esp32dev)
------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32dev.html
PLATFORM: Espressif 32 (1.12.4) > Espressif ESP32 Dev Module
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (esp-prog) External (esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:
- framework-espidf 3.40001.200521 (4.0.1)
- tool-cmake 3.16.4
- tool-esptoolpy 1.20600.0 (2.6.0)
- tool-ninja 1.7.1
- toolchain-esp32ulp 1.22851.191205 (2.28.51)
- toolchain-xtensa32 2.80200.200827 (8.2.0)
Warning! Starting with ESP-IDF v4.0, new project structure is required:
https://docs.platformio.org/en/latest/frameworks/espidf.html#project-structure
Reading CMake configuration...
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 0 compatible libraries
Scanning dependencies...
No dependencies
Building in release mode
Compiling .pio/build/esp32dev/esp-idf/src/subscribe_publish_sample.c.o
Generating partitions .pio/build/esp32dev/partitions.bin
Archiving .pio/build/esp32dev/esp-idf/app_trace/libapp_trace.a
Indexing .pio/build/esp32dev/esp-idf/app_trace/libapp_trace.a
Archiving .pio/build/esp32dev/esp-idf/app_update/libapp_update.a
Indexing .pio/build/esp32dev/esp-idf/app_update/libapp_update.a
src/subscribe_publish_sample.c:46:10: fatal error: aws_iot_config.h: No such file or directory
************************************************************************
* Looking for aws_iot_config.h dependency? Check our library registry!
*
* CLI > platformio lib search "header:aws_iot_config.h"
* Web > https://platformio.org/lib/search?query=header:aws_iot_config.h
*
************************************************************************
#include "aws_iot_config.h"
^~~~~~~~~~~~~~~~~~
compilation terminated.
Archiving .pio/build/esp32dev/esp-idf/asio/libasio.a
Indexing .pio/build/esp32dev/esp-idf/asio/libasio.a
Compiling .pio/build/esp32dev/esp-idf/bootloader_support/src/bootloader_clock.c.o
Compiling .pio/build/esp32dev/esp-idf/bootloader_support/src/bootloader_common.c.o
Compiling .pio/build/esp32dev/esp-idf/bootloader_support/src/bootloader_flash.c.o
*** [.pio/build/esp32dev/esp-idf/src/subscribe_publish_sample.c.o] Error 1
============================================== [FAILED] Took 2.10 seconds ==============================================
The terminal process "platformio 'run', '--environment', 'esp32dev'" terminated with exit code: 1.
Terminal will be reused by tasks, press any key to close it.