• 沒有找到結果。

AWS IoT Greengrass

N/A
N/A
Protected

Academic year: 2022

Share "AWS IoT Greengrass"

Copied!
1011
0
0

加載中.... (立即查看全文)

全文

(1)

AWS IoT Greengrass

Developer Guide, Version 2

(2)

AWS IoT Greengrass: Developer Guide, Version 2

Copyright © Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any manner that is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored by Amazon.

(3)

Table of Contents

What is AWS IoT Greengrass? ... 1

For first-time users ... 1

For existing users ... 1

How AWS IoT Greengrass works ... 2

Key concepts ... 2

Features of AWS IoT Greengrass ... 4

Greengrass feature compatibility by operating system ... 5

Move from Version 1 ... 8

Differences between V1 and V2 ... 8

Run V1 applications on V2 ... 10

What's new in Version 2 ... 12

AWS IoT Greengrass Core v2.5.3 software update ... 13

AWS IoT Greengrass Core v2.5.2 software update ... 14

AWS IoT Greengrass Core v2.5.1 software update ... 15

AWS IoT Greengrass Core v2.5.0 software update ... 16

AWS IoT Greengrass Core v2.4.0 software update ... 19

AWS IoT Greengrass Core v2.3.0 software update ... 21

AWS IoT Greengrass Core v2.2.0 software update ... 22

AWS IoT Greengrass Core v2.1.0 software update ... 24

AWS IoT Greengrass Core v2.0.5 software update ... 29

AWS IoT Greengrass Core v2.0.4 software update ... 30

Getting started tutorial ... 32

Prerequisites ... 32

Step 1: Set up an AWS account ... 33

Step 2: Set up your environment ... 34

Step 3: Install the AWS IoT Greengrass Core software ... 37

(Optional) Run the Greengrass software (Linux) ... 42

Verify the Greengrass CLI installation on the device ... 43

Step 4: Develop and test a component on your device ... 44

Step 5: Create your component in the AWS IoT Greengrass service ... 52

Step 6: Deploy your component ... 60

Next steps ... 62

Setting up Greengrass core devices ... 64

Supported platforms and requirements ... 64

Supported platforms ... 64

Device requirements ... 65

Lambda function requirements ... 66

Feature considerations for Windows devices ... 67

Set up an AWS account ... 68

Install the AWS IoT Greengrass Core software ... 69

Install with automatic provisioning ... 71

Install with manual provisioning ... 78

Install with fleet provisioning ... 100

Install with custom provisioning ... 127

Installer arguments ... 136

Run the AWS IoT Greengrass Core software ... 138

Check if the AWS IoT Greengrass Core software runs as a system service ... 139

Run the AWS IoT Greengrass Core software as a system service ... 140

Run the AWS IoT Greengrass Core software without a system service ... 140

Run AWS IoT Greengrass in Docker ... 141

Supported platforms and requirements ... 141

Software downloads ... 142

Choose how to provision AWS resources ... 143

Build the AWS IoT Greengrass image from a Dockerfile ... 143

(4)

Run AWS IoT Greengrass in Docker with automatic provisioning ... 147

Run AWS IoT Greengrass in Docker with manual provisioning ... 152

Troubleshooting AWS IoT Greengrass in a Docker container ... 163

Configure the AWS IoT Greengrass Core software ... 165

Deploy the Greengrass nucleus component ... 165

Configure the Greengrass nucleus as a system service ... 165

Control memory allocation with JVM options ... 168

Configure the user that runs components ... 169

Configure system resource limits ... 172

Connect on port 443 or through a network proxy ... 173

Configure MQTT timeouts and cache settings ... 177

Update the AWS IoT Greengrass Core software (OTA) ... 178

Requirements ... 178

Considerations for core devices ... 178

Greengrass nucleus update behavior ... 179

Perform an OTA update ... 180

Uninstall the AWS IoT Greengrass Core software ... 180

AWS-provided components ... 183

Greengrass nucleus ... 189

Versions ... 190

Operating system ... 190

Requirements ... 190

Dependencies ... 190

Download and installation ... 190

Configuration ... 191

Local log file ... 198

Changelog ... 198

Client device auth ... 203

Versions ... 204

Type ... 204

Operating system ... 204

Requirements ... 204

Dependencies ... 205

Configuration ... 206

Local log file ... 209

Changelog ... 210

CloudWatch metrics ... 210

Versions ... 211

Type ... 211

Operating system ... 211

Requirements ... 212

Dependencies ... 214

Configuration ... 216

Input data ... 220

Output data ... 222

Licenses ... 223

Local log file ... 223

Changelog ... 224

See also ... 224

Docker application manager ... 225

Versions ... 225

Type ... 225

Operating system ... 225

Requirements ... 225

Dependencies ... 227

Configuration ... 228

Local log file ... 228

(5)

Changelog ... 229

See also ... 229

Edge connector for Kinesis Video Streams ... 229

Versions ... 230

Type ... 231

Operating system ... 231

Requirements ... 231

Dependencies ... 233

Configuration ... 233

Licenses ... 233

Usage ... 234

Local log file ... 234

Changelog ... 234

See also ... 234

Greengrass CLI ... 234

Versions ... 235

Type ... 236

Operating system ... 236

Requirements ... 236

Dependencies ... 236

Configuration ... 237

Local log file ... 238

Changelog ... 239

AWS IoT Device Defender ... 240

Versions ... 240

Type ... 241

Operating system ... 241

Requirements ... 241

Dependencies ... 242

Configuration ... 244

Input data ... 247

Output data ... 247

Local log file ... 248

Licenses ... 249

Changelog ... 249

IP detector ... 249

Versions ... 250

Type ... 250

Operating system ... 250

Requirements ... 250

Dependencies ... 251

Configuration ... 252

Local log file ... 252

Changelog ... 253

Kinesis Data Firehose ... 253

Versions ... 254

Type ... 254

Operating system ... 254

Requirements ... 254

Dependencies ... 256

Configuration ... 258

Input data ... 260

Output data ... 261

Local log file ... 261

Licenses ... 262

Changelog ... 262

See also ... 262

(6)

Lambda launcher ... 262

Versions ... 263

Type ... 263

Operating system ... 263

Requirements ... 263

Dependencies ... 263

Configuration ... 264

Local log file ... 264

Changelog ... 264

Lambda manager ... 265

Versions ... 265

Operating system ... 265

Type ... 265

Requirements ... 266

Dependencies ... 266

Configuration ... 267

Local log file ... 267

Changelog ... 268

Lambda runtimes ... 268

Versions ... 269

Type ... 269

Operating system ... 269

Requirements ... 269

Dependencies ... 269

Configuration ... 269

Local log file ... 269

Changelog ... 269

Legacy subscription router ... 270

Versions ... 270

Type ... 270

Operating system ... 271

Dependencies ... 271

Configuration ... 272

Local log file ... 275

Changelog ... 275

Local debug console ... 275

Versions ... 276

Type ... 276

Operating system ... 276

Requirements ... 276

Dependencies ... 276

Configuration ... 278

Usage ... 279

Local log file ... 282

Changelog ... 283

Log manager ... 283

Versions ... 284

Type ... 284

Operating system ... 285

Requirements ... 285

Dependencies ... 286

Configuration ... 287

Usage ... 297

Local log file ... 298

Changelog ... 298

Machine learning components ... 299

Lookout for Vision Edge Agent ... 304

(7)

SageMaker Edge Manager ... 307

DLR image classification ... 314

DLR object detection ... 320

DLR image classification model store ... 327

DLR object detection model store ... 330

DLR installer ... 333

TensorFlow Lite image classification ... 338

TensorFlow Lite object detection ... 344

TensorFlow Lite image classification model store ... 349

TensorFlow Lite object detection model store ... 352

TensorFlow Lite installer ... 354

Modbus-RTU protocol adapter ... 359

Versions ... 360

Type ... 360

Operating system ... 360

Requirements ... 360

Dependencies ... 361

Configuration ... 363

Input data ... 365

Output data ... 366

Modbus RTU requests and responses ... 368

Local log file ... 374

Licenses ... 374

Changelog ... 375

MQTT bridge ... 375

Versions ... 376

Type ... 376

Operating system ... 376

Requirements ... 376

Dependencies ... 376

Configuration ... 377

Local log file ... 379

Changelog ... 380

MQTT broker (Moquette) ... 380

Versions ... 381

Type ... 381

Operating system ... 381

Requirements ... 381

Dependencies ... 381

Configuration ... 382

Local log file ... 383

Changelog ... 383

Nucleus telemetry emitter ... 383

Versions ... 384

Type ... 384

Operating system ... 384

Dependencies ... 384

Configuration ... 385

Output data ... 386

Usage ... 389

Local log file ... 389

Changelog ... 390

PKCS#11 provider ... 390

Versions ... 390

Type ... 390

Operating system ... 391

Requirements ... 391

(8)

Dependencies ... 392

Configuration ... 392

Local log file ... 393

Changelog ... 393

Secret manager ... 393

Versions ... 394

Type ... 394

Operating system ... 394

Requirements ... 394

Dependencies ... 395

Configuration ... 396

Local log file ... 397

Changelog ... 398

Secure tunneling ... 398

Versions ... 399

Type ... 399

Operating system ... 399

Requirements ... 399

Dependencies ... 399

Configuration ... 401

Local log file ... 402

Licenses ... 402

See also ... 402

Changelog ... 402

Shadow manager ... 403

Versions ... 403

Type ... 403

Operating system ... 404

Requirements ... 404

Dependencies ... 404

Configuration ... 405

Local log file ... 410

Changelog ... 410

Amazon SNS ... 411

Versions ... 411

Type ... 412

Operating system ... 412

Requirements ... 412

Dependencies ... 413

Configuration ... 415

Input data ... 417

Output data ... 418

Local log file ... 419

Licenses ... 419

Changelog ... 419

Stream manager ... 420

Versions ... 420

Type ... 420

Operating system ... 420

Requirements ... 421

Dependencies ... 421

Configuration ... 423

Local log file ... 425

Changelog ... 425

Systems Manager Agent ... 426

Versions ... 426

Type ... 426

(9)

Operating system ... 426

Requirements ... 426

Dependencies ... 428

Configuration ... 428

Local log file ... 429

See also ... 430

Changelog ... 430

Token exchange service ... 430

Versions ... 431

Type ... 431

Operating system ... 431

Dependencies ... 431

Configuration ... 431

Local log file ... 431

Changelog ... 432

IoT SiteWise OPC-UA collector ... 432

Versions ... 432

Type ... 432

Operating system ... 433

Requirements ... 433

Dependencies ... 433

Configuration ... 433

Output data ... 433

Local log file ... 434

Licenses ... 434

Changelog ... 434

See also ... 434

IoT SiteWise publisher ... 434

Versions ... 435

Type ... 435

Operating system ... 435

Requirements ... 435

Dependencies ... 436

Configuration ... 436

Input data ... 436

Local log file ... 436

Licenses ... 437

Changelog ... 437

See also ... 437

IoT SiteWise processor ... 437

Versions ... 438

Type ... 438

Operating system ... 438

Requirements ... 438

Dependencies ... 440

Configuration ... 440

Local log file ... 440

Licenses ... 440

Changelog ... 441

See also ... 441

Community components ... 442

Greengrass development tools ... 443

Greengrass Development Kit CLI ... 443

Prerequisites ... 444

Changelog ... 444

Install or update the Greengrass Development Kit CLI ... 445

GDK CLI commands ... 446

(10)

GDK CLI configuration file ... 451

Greengrass Command Line Interface ... 455

Install the Greengrass CLI ... 455

Greengrass CLI commands ... 457

Develop components ... 467

Component lifecycle ... 468

Component types ... 468

Create components ... 469

Create a component (GDK CLI) ... 470

Create a component (shell commands) ... 475

Test components with local deployments ... 477

Publish components to deploy ... 479

Publish a component (GDK CLI) ... 479

Publish a component (shell commands) ... 480

Interact with AWS services ... 482

Run a Docker container ... 485

Requirements ... 485

Run a Docker container from a public image in Amazon ECR or Docker Hub ... 488

Run a Docker container from a private image in Amazon ECR ... 490

Run a Docker container from an image in Amazon S3 ... 491

Use interprocess communication in Docker container components ... 494

Use AWS credentials in Docker container components (Linux) ... 496

Use stream manager in Docker container components (Linux) ... 498

Recipe reference ... 500

Recipe format ... 501

Recipe variables ... 512

Recipe examples ... 514

Environment variables ... 518

Deploy components to devices ... 519

Create deployments ... 522

Update component configurations ... 528

Revise deployments ... 534

Cancel deployments ... 535

Check deployment status ... 536

Check deployment status ... 536

Check device deployment status ... 536

Logging and monitoring ... 538

Monitoring tools ... 538

Monitor Greengrass logs ... 538

Access file system logs ... 539

Access CloudWatch Logs ... 541

Access system service logs ... 542

Enable logging to CloudWatch Logs ... 542

Configure logging for AWS IoT Greengrass ... 543

AWS CloudTrail logs ... 544

Log API calls with CloudTrail ... 545

AWS IoT Greengrass V2 information in CloudTrail ... 545

Understanding AWS IoT Greengrass V2 log file entries ... 546

Gather system health telemetry data ... 547

Telemetry metrics ... 548

Configure telemetry agent settings ... 549

Subscribe to telemetry data in EventBridge ... 549

Check core device status ... 553

Check health of a core device ... 553

Check health of a core device group ... 554

Check core device component status ... 554

Run Lambda functions ... 555

(11)

Requirements ... 555

Configure Lambda function lifecycle ... 556

Configure Lambda function containerization ... 556

Import a Lambda function as a component (console) ... 558

Step 1: Choose a Lambda function to import ... 558

Step 2: Configure Lambda function parameters ... 559

Step 3: (Optional) Specify supported platforms for the Lambda function ... 560

Step 4: (Optional) Specify component dependencies for the Lambda function ... 560

Step 5: (Optional) Run the Lambda function in a container ... 561

Step 6: Create the Lambda function component ... 562

Import a Lambda function (CLI) ... 562

Step 1: Define the Lambda function configuration ... 562

Step 2: Create the Lambda function component ... 575

Communicate with the Greengrass nucleus, other components, and AWS IoT Core ... 577

Supported SDKs ... 577

Connect to the AWS IoT Greengrass Core IPC service ... 578

Authorize components to perform IPC operations ... 584

Subscribe to IPC event streams ... 586

Define subscription handlers ... 586

Best practices for subscription handlers ... 587

Example subscription handlers ... 588

Publish/subscribe local messages ... 593

Minimum SDK versions ... 593

Authorization ... 593

PublishToTopic ... 594

SubscribeToTopic ... 598

Examples ... 603

Publish/subscribe AWS IoT Core MQTT messages ... 618

Minimum SDK versions ... 619

Authorization ... 619

PublishToIoTCore ... 620

SubscribeToIoTCore ... 623

Examples ... 629

Interact with component lifecycle ... 634

Minimum SDK versions ... 635

Authorization ... 635

UpdateState ... 636

SubscribeToComponentUpdates ... 636

DeferComponentUpdate ... 637

PauseComponent ... 638

ResumeComponent ... 638

Interact with component configuration ... 639

Minimum SDK versions ... 640

GetConfiguration ... 640

UpdateConfiguration ... 641

SubscribeToConfigurationUpdate ... 641

SubscribeToValidateConfigurationUpdates ... 642

SendConfigurationValidityReport ... 643

Retrieve secret values ... 644

Minimum SDK versions ... 644

Authorization ... 644

GetSecretValue ... 645

Examples ... 648

Interact with local shadows ... 652

Minimum SDK versions ... 652

Authorization ... 652

GetThingShadow ... 655

(12)

UpdateThingShadow ... 659

DeleteThingShadow ... 663

ListNamedShadowsForThing ... 666

Interact with local IoT devices ... 671

Tutorial: Connect and test client devices ... 671

Prerequisites ... 672

Review and update the core device AWS IoT policy ... 672

Enable client device support ... 673

Connect client devices ... 676

Develop a component that interacts with client devices ... 678

Client device components ... 683

Connect client devices to core devices ... 676

Requirements ... 684

Greengrass components for client device support ... 691

Configure cloud discovery (console) ... 692

Configure cloud discovery (AWS CLI) ... 692

Associate client devices ... 692

Manage core device endpoints ... 694

Test communications ... 698

Greengrass discovery RESTful API ... 705

Relay MQTT messages between client devices and AWS IoT Core ... 710

Configure and deploy the MQTT bridge component ... 710

Relay MQTT messages ... 711

Interact with client devices in components ... 711

Configure and deploy the MQTT bridge component ... 712

Receive MQTT messages from client devices ... 713

Send MQTT messages to client devices ... 713

Troubleshooting ... 713

Greengrass discovery issues ... 713

Interact with device shadows ... 719

Interact with shadows in components ... 719

Retrieve and modify shadow states ... 719

React to shadow state changes ... 720

Sync local device shadows with AWS IoT Core ... 721

Prerequisites ... 722

Configure the shadow manager component ... 722

Sync local shadows ... 723

Manage data streams ... 724

Stream management workflow ... 724

Requirements ... 725

Data security ... 725

Local data security ... 725

Client authentication ... 726

See also ... 726

Create custom components that use stream manager ... 726

Define component recipes that use stream manager ... 727

Connect to stream manager in application code ... 735

Use StreamManagerClient to work with streams ... 737

Create message stream ... 737

Append message ... 740

Read messages ... 744

List streams ... 746

Describe message stream ... 747

Update message stream ... 748

Delete message stream ... 751

See also ... 752

Export configurations for supported cloud destinations ... 752

(13)

Configure stream manager ... 762

Stream manager parameters ... 763

See also ... 764

Perform machine learning inference ... 765

How AWS IoT Greengrass ML inference works ... 765

What's different in AWS IoT Greengrass Version 2? ... 766

Requirements ... 766

Supported model sources ... 766

Supported runtimes ... 767

Machine learning components ... 767

Perform sample image classification inference ... 772

Prerequisites ... 772

Step 1: Subscribe to the default notifications topic ... 773

Step 2: Deploy the TensorFlow Lite image classification component ... 773

Step 3: View inference results ... 774

Next steps ... 776

Perform sample image classification inference on images from a camera ... 776

Prerequisites ... 776

Step 1: Configure the camera module on your device ... 777

Step 2: Verify your subscription to the default notifications topic ... 779

Step 3: Modify the TensorFlow Lite image classification component configuration and deploy it . 779 Step 4: View inference results ... 781

Next steps ... 781

Use SageMaker Edge Manager ... 781

How it works ... 782

Requirements ... 782

Get started with SageMaker Edge Manager ... 783

Use Lookout for Vision ... 789

Customize your machine learning components ... 790

Modify the configuration of a public inference component ... 791

Use a custom model with the sample inference component ... 792

Create custom machine learning components ... 794

Create a custom inference component ... 796

Troubleshooting ... 801

Failed to fetch library ... 802

Cannot open shared object file ... 802

<library> not found ... 802

No CUDA-capable device is detected ... 802

No such file or directory ... 802

Memory errors ... 803

Disk space errors ... 803

Timeout errors ... 803

Manage core devices with AWS Systems Manager ... 804

Install the Systems Manager Agent ... 804

Step 1: Complete general Systems Manager setup steps ... 805

Step 2: Create an IAM service role for Systems Manager ... 805

Step 3: Add permissions to the token exchange role ... 805

Step 4: Deploy the Systems Manager Agent component ... 808

Step 5: Verify core device registration with Systems Manager ... 810

Uninstall the Systems Manager Agent ... 811

Step 1: Deregister the core device from Systems Manager ... 811

Step 2: Uninstall the Systems Manager Agent component ... 811

Step 3: Uninstall the Systems Manager Agent software ... 812

Security ... 813

Data protection ... 813

Data encryption ... 814

Hardware security integration ... 815

(14)

Device authentication and authorization ... 823

X.509 certificates ... 824

AWS IoT policies ... 825

Update a core device's AWS IoT policy ... 828

Minimal AWS IoT policy ... 830

Minimal AWS IoT policy to support client devices ... 832

Minimal AWS IoT policy for client devices ... 833

Identity and access management ... 835

Audience ... 835

Authenticating with identities ... 835

Managing access using policies ... 837

See also ... 839

How AWS IoT Greengrass works with IAM ... 839

Identity-based policy examples ... 842

Authorize core devices to interact with AWS services ... 843

Minimal IAM policy for installer to provision resources ... 847

Greengrass service role ... 849

AWS managed policies ... 855

Cross-service confused deputy prevention ... 858

Troubleshooting identity and access issues ... 859

Allow device traffic through a proxy or firewall ... 860

Endpoints for basic operation ... 861

Endpoints for installation with automatic provisioning ... 862

Endpoints for AWS-provided components ... 863

Compliance validation ... 863

Resilience ... 864

Infrastructure security ... 864

Configuration and vulnerability analysis ... 865

Code integrity ... 865

VPC endpoints (AWS PrivateLink) ... 866

Considerations for AWS IoT Greengrass VPC endpoints ... 867

Create an interface VPC endpoint for AWS IoT Greengrass control plane operations ... 867

Creating a VPC endpoint policy for AWS IoT Greengrass ... 867

Security best practices ... 868

Grant minimum possible permissions ... 868

Don't hardcode credentials in Greengrass components ... 868

Don't log sensitive information ... 868

Keep your device clock in sync ... 869

See also ... 869

Using AWS IoT Device Tester for AWS IoT Greengrass V2 ... 870

AWS IoT Greengrass qualification suite ... 870

Custom test suites ... 871

Supported versions of AWS IoT Device Tester for AWS IoT Greengrass V2 ... 871

Latest IDT version for AWS IoT Greengrass V2 ... 871

Unsupported versions of AWS IoT Device Tester for AWS IoT Greengrass V2 ... 872

Use IDT to run the AWS IoT Greengrass qualification suite ... 874

Test suite versions ... 874

Test group descriptions ... 874

Prerequisites ... 876

Configure your device to run IDT tests ... 884

Configure IDT settings ... 890

Run the AWS IoT Greengrass qualification suite ... 896

Understanding results and logs ... 899

Use IDT to develop and run your own test suites ... 901

Download the latest version of IDT for AWS IoT Greengrass ... 876

Test suite creation workflow ... 902

Tutorial: Build and run the sample IDT test suite ... 902

(15)

Tutorial: Develop a simple IDT test suite ... 906

Create IDT test suite configuration files ... 912

Configure the IDT test orchestrator ... 917

Configure the IDT state machine ... 922

Create IDT test case executables ... 938

Use the IDT context ... 943

Configure settings for test runners ... 946

Debug and run custom test suites ... 953

Review IDT test results and logs ... 955

IDT usage metrics ... 959

Troubleshooting IDT for AWS IoT Greengrass V2 ... 964

Where to look for errors ... 964

Resolving IDT for AWS IoT Greengrass V2 errors ... 964

Support policy for AWS IoT Device Tester for AWS IoT Greengrass ... 969

Troubleshooting ... 970

View AWS IoT Greengrass Core software and component logs ... 970

AWS IoT Greengrass Core software issues ... 970

Unable to set up core device ... 971

Unable to set up nucleus as a system service ... 971

Unable to connect to AWS IoT Core ... 971

Out of memory error ... 971

Unable to install Greengrass CLI ... 971

User root is not allowed to execute ... 972

Failed to map segment from shared object: operation not permitted ... 972

software.amazon.awssdk.services.iam.model.IamException: The security token included in the request is invalid ... 972

Error: com.aws.greengrass.security.provider.pkcs11.PKCS11CryptoKeyService: Private key or certificate with label <label> does not exist ... 973

AWS IoT Greengrass cloud issues ... 973

An error occurred (AccessDeniedException) when calling the CreateComponentVersion operation: User: arn:aws:iam::123456789012:user/<username> is not authorized to perform: null ... 973

Core device deployment issues ... 974

Error: com.aws.greengrass.componentmanager.exceptions.PackageDownloadException: Failed to download artifact ... 974

Error: com.aws.greengrass.componentmanager.exceptions.ArtifactChecksumMismatchException: Integrity check for downloaded artifact failed. Probably due to file corruption. ... 975

Error: com.aws.greengrass.componentmanager.exceptions.NoAvailableComponentVersionException: Failed to negotiate component <name> version with cloud and no local applicable version satisfying requirement <requirements> ... 975

software.amazon.awssdk.services.secretsmanager.model.SecretsManagerException: User: <user> is not authorized to perform: secretsmanager:GetSecretValue on resource: <arn> ... 976

Info: com.aws.greengrass.deployment.exceptions.RetryableDeploymentDocumentDownloadException: Greengrass Cloud Service returned an error when getting full deployment configuration ... 976

Warn: com.aws.greengrass.deployment.DeploymentService: Failed to get thing group hierarchy 977 Info: com.aws.greengrass.deployment.DeploymentDocumentDownloader: Calling Greengrass cloud to get full deployment configuration ... 977

Core device component issues ... 977

Instant exceeds minimum or maximum instant ... 977

Warn: '<command>' is not recognized as an internal or external command ... 978

Python script doesn't log messages ... 978

com.aws.greengrass.componentmanager.plugins.docker.exceptions.DockerLoginException: Error logging into the registry using credentials - 'The stub received bad data.' ... 979

AWS CLI issues ... 979

(16)

Error: Invalid choice: 'greengrassv2' ... 979

Tag your resources ... 981

Using tags in AWS IoT Greengrass V2 ... 981

Tag with the AWS Management Console ... 981

Tag with the AWS IoT Greengrass V2 API ... 981

Using tags with IAM policies ... 982

Open source software ... 983

Document history ... 984

AWS glossary ... 995

(17)

For first-time users

What is AWS IoT Greengrass?

AWS IoT Greengrass is an open source Internet of Things (IoT) edge runtime and cloud service that helps you build, deploy and manage IoT applications on your devices. You can use AWS IoT Greengrass to build software that enables your devices to act locally on the data that they generate, run predictions based on machine learning models, and filter and aggregate device data. AWS IoT Greengrass enables your devices to collect and analyze data closer to where that data is generated, react autonomously to local events, and communicate securely with other devices on the local network. Greengrass devices can also communicate securely with AWS IoT Core and export IoT data to the AWS Cloud. You can use AWS IoT Greengrass to build edge applications using pre-built software modules, called components, that can connect your edge devices to AWS services or third-party services. You can also use AWS IoT Greengrass to package and run your software using Lambda functions, Docker containers, native operating system processes, or custom runtimes of your choice.

The following example shows how an AWS IoT Greengrass device interacts with the AWS Cloud.

For first-time users of AWS IoT Greengrass

If you're new to AWS IoT Greengrass, we recommend that you review the following section:

• How AWS IoT Greengrass works (p. 2)

Next, follow the getting started tutorial (p. 32) to try out the basic features of AWS IoT Greengrass.

In this tutorial, you install the AWS IoT Greengrass Core software on a device, develop a Hello World component, and package that component for deployment.

For existing users of AWS IoT Greengrass

For current users of AWS IoT Greengrass, we recommend the following topics to help you understand the new features in AWS IoT Greengrass Version 2, and learn how to move from version 1 to version 2:

• What's new in AWS IoT Greengrass Version 2 (p. 12)

• Move from AWS IoT Greengrass Version 1 (p. 8)

(18)

How AWS IoT Greengrass works

How AWS IoT Greengrass works

The AWS IoT Greengrass client software, also called AWS IoT Greengrass Core software, runs on Windows and Linux-based distributions, such as Ubuntu or Raspberry Pi OS, for devices with ARM or x86 architectures. With AWS IoT Greengrass, you can program devices to act locally on the data they generate, run predictions based on machine learning models, and filter and aggregate device data.

AWS IoT Greengrass enables local execution of AWS Lambda functions, Docker containers, native OS processes, or custom runtimes of your choice.

AWS IoT Greengrass provides pre-built software modules called components that let you easily extend edge device functionality. AWS IoT Greengrass components enable you to connect to AWS services and third-party applications at the edge. After you develop your IoT applications, AWS IoT Greengrass enables you to remotely deploy, configure, and manage those applications on your fleet of devices in the field.

The following example shows how an AWS IoT Greengrass device interacts with the AWS IoT Greengrass cloud service and other AWS services in the AWS Cloud.

Key concepts for AWS IoT Greengrass

The following are essential concepts for understanding and using AWS IoT Greengrass:

Greengrass core device

A device that runs the AWS IoT Greengrass Core software. A Greengrass core device is an AWS IoT thing. You can add multiple core devices to AWS IoT thing groups to create and manage groups of Greengrass core devices. For more information, see Setting up AWS IoT Greengrass core devices (p. 64).

Greengrass client device

A device that connects to and communicates with a Greengrass core device over MQTT. A Greengrass client device is an AWS IoT thing. The core device can process, filter, and aggregate data from client

(19)

Key concepts

devices that connect to it. You can configure the core device to relay MQTT messages between client devices, the AWS IoT Core cloud service, and Greengrass components. For more information, see Interact with local IoT devices (p. 671).

Client devices can run FreeRTOS or use the AWS IoT Device SDK or Greengrass discovery API (p. 705) to get information about core devices to which they can connect.

Greengrass component

A software module that is deployed to and runs on a Greengrass core device. All software that is developed and deployed with AWS IoT Greengrass is modeled as a component. AWS IoT Greengrass provides pre-built public components that provide features and functionality that you can use in your applications. You can also develop your own custom components, on your local device or in the cloud. After you develop a custom component, you can use the AWS IoT Greengrass cloud service to deploy it to single or multiple core devices. You can create a custom component and deploy that component to a core device. When you do, the core device downloads the following resources to run the component:

Recipe: A JSON or YAML file that describes the software module by defining component details, configuration, and parameters.

Artifact: The source code, binaries, or scripts that define the software that will run on your device.

You can create artifacts from scratch, or you can create a component using a Lambda function, a Docker container, or a custom runtime.

Dependency: The relationship between components that enables you to enforce automatic updates or restarts of dependent components. For example, you can have a secure message processing component dependent on an encryption component. This ensures that any updates to the encryption component automatically update and restart the message processing component.

For more information, see AWS-provided components (p. 183) and Develop AWS IoT Greengrass components (p. 467).

Deployment

The process to send components and apply the desired component configuration to a destination target device, which can be a single Greengrass core device or a group of Greengrass core devices.

Deployments automatically apply any updated component configurations to the target and include any other components that are defined as dependencies. You can also clone an existing deployment to create a new deployment that uses the same components but is deployed to a different target.

Deployments are continuous, which means that any updates you make to the components or the component configuration of a deployment automatically get sent to all destination targets. For more information, see Deploy AWS IoT Greengrass components to devices (p. 519).

AWS IoT Greengrass Core software

The set of all AWS IoT Greengrass software that you install on a core device. AWS IoT Greengrass Core software comprises the following:

Nucleus: This required component provides the minimum functionality of the AWS IoT Greengrass Core software. The nucleus manages deployments, orchestration, and lifecycle management of other components. It also facilitates communication between AWS IoT Greengrass components locally on an individual device. For more information, see Greengrass nucleus (p. 189).

Optional components: These configurable components are provided by AWS IoT Greengrass and enable additional features on your edge devices. Depending on your requirements, you can choose the optional components that you want to deploy to your device, such as data streaming, local machine learning inference, or a local command line interface. For more information, see AWS- provided components (p. 183).

You can upgrade your AWS IoT Greengrass Core software by deploying new versions of your components to your device.

(20)

Features of AWS IoT Greengrass

Features of AWS IoT Greengrass

AWS IoT Greengrass Version 2 consists of the following elements:

Software distributions

• The Greengrass nucleus component, which is the minimum installation of the AWS IoT Greengrass Core software. This component manages deployments, orchestration, and lifecycle management of Greengrass components.

• Additional optional components provided by AWS that integrate with services, protocols, and software.

• The AWS IoT Device SDK, which contains the interprocess communication (IPC) SDK and the Greengrass discovery SDK for client devices.

• The Stream Manager SDK.

Cloud service

• AWS IoT Greengrass V2 API

• AWS IoT Greengrass V2 console

AWS IoT Greengrass Core software

You can use the AWS IoT Greengrass Core software that runs on your edge devices to do the following:

• Process data streams on the local device with automatic exports to the AWS Cloud. For more information, see Manage data streams on the AWS IoT Greengrass Core (p. 724).

• Support MQTT messaging between AWS IoT and components. For more information, see Publish/

subscribe AWS IoT Core MQTT messages (p. 618).

• Interact with local devices that connect and communicate over MQTT. For more information, see Interact with local IoT devices (p. 671).

• Support local publish and subscribe messaging between components. For more information, see Publish/subscribe local messages (p. 593).

• Deploy and invoke components and Lambda functions. For more information, see Deploy AWS IoT Greengrass components to devices (p. 519).

• Manage component lifecycles, such as with support for install and run scripts. For more information, see AWS IoT Greengrass component recipe reference (p. 500).

• Perform secure, over-the-air (OTA) software updates of the AWS IoT Greengrass Core software and custom components. For more information, see Update the AWS IoT Greengrass Core software (OTA) (p. 178) and Deploy AWS IoT Greengrass components to devices (p. 519).

• Provide secure, encrypted storage of local secrets and controlled access by components. For more information, see Secret manager (p. 393).

• Secure connections between devices and the AWS Cloud with device authentication and authorization.

For more information, see Device authentication and authorization for AWS IoT Greengrass (p. 823).

You configure and manage Greengrass core devices through AWS IoT Greengrass APIs where you create continuous software deployments. For more information, see Deploy AWS IoT Greengrass components to devices (p. 519).

Some features are supported on only certain platforms. For more information, see Greengrass feature compatibility by operating system (p. 5).

For more information about supported platforms, requirements, and downloads, see Setting up AWS IoT Greengrass core devices (p. 64).

By downloading this software, you agree to the Greengrass Core Software License Agreement.

(21)

Greengrass feature compatibility by operating system

Greengrass feature compatibility by operating system

AWS IoT Greengrass supports devices that run various operating systems. Some features are supported on only certain operating systems. Use the following tables to learn which features are available for each supported operating system. For more information about supported operating systems, requirements, and how to set up Greengrass core devices, see Setting up AWS IoT Greengrass core devices (p. 64).

Messaging

Feature Linux Windows

Exchange MQTT messages between AWS IoT and

components Yes Yes

Exchange local publish/

subscribe messages between

components Yes Yes

Interact with local IoT devices

over MQTT Yes Yes

Interact with local Modbus-RTU devices using the Modbus-RTU

component Yes No

Security

Feature Linux Windows

Secure connections with device

authentication and authorization Yes Yes

Deploy and access secure, encrypted secrets from AWS

Secrets Manager Yes Yes

Use a hardware security module (HSM) to securely store the device's private key and certificate

Yes No

Audit core devices with AWS IoT

Device Defender Yes Yes

Use AWS credentials to interact

with AWS services Yes Yes

Installation

Feature Linux Windows

Install AWS IoT Greengrass with

automatic provisioning Yes Yes

(22)

Greengrass feature compatibility by operating system

Feature Linux Windows

Install AWS IoT Greengrass with

manual provisioning Yes Yes

Install AWS IoT Greengrass with

AWS IoT fleet provisioning Yes Yes

Install AWS IoT Greengrass with

custom provisioning plugins Yes Yes

Run AWS IoT Greengrass in a Docker container using a

prebuilt Docker image Yes No

Remote maintenance and updates

Feature Linux Windows

Perform secure, over-the-air

(OTA) software updates Yes Yes

Manage core devices with AWS

Systems Manager Yes No

Connect to core devices with

AWS IoT secure tunneling Yes No

Machine learning

Feature Linux Windows

Perform machine learning inference using Amazon

SageMaker Edge Manager Yes Yes

Perform machine learning inference using Amazon Lookout

for Vision Yes No

Perform machine learning

inference using DLR Yes Yes

Perform machine learning

inference using TensorFlow Yes Yes

Component features

Feature Linux Windows

Deploy and invoke Lambda

functions Yes No

Run Docker containers in

components Yes Yes

(23)

Greengrass feature compatibility by operating system

Feature Linux Windows

Process and export high-volume data streams using stream

manager Yes Yes

Manage component lifecycles

with lifecycle scripts Yes Yes

Interact with device shadows Yes Yes

Upload logs to Amazon

CloudWatch Logs Yes Yes

Upload data to Amazon CloudWatch metrics using the

CloudWatch metrics component Yes Yes

Publish messages to Amazon Simple Notification Service using

the Amazon SNS component Yes No

Publish data to Amazon Kinesis Data Firehose delivery streams

using stream manager Yes Yes

Publish data to Amazon Kinesis Data Firehose delivery streams using the Kinesis Data Firehose component

Yes No

Gather and act on real-time

system telemetry metrics Yes Yes

Configure system resource limits

for component processes Yes No

Pause and resume component

processes Yes No

Integrate with AWS IoT SiteWise using the AWS IoT SiteWise

components Yes No

Publish video streams to Amazon Kinesis Video Streams using the edge connector for Kinesis Video Streams component

Yes No

Component development

Feature Linux Windows

Develop components locally on

core devices Yes Yes

(24)

Move from Version 1

Feature Linux Windows

Interact with a core device using

the AWS IoT Greengrass CLI Yes Yes

Interact with a core device using

the local debug console Yes Yes

Use the AWS IoT Device SDK for

Python in custom components Yes Yes

Use the AWS IoT Device SDK for

C++ in custom components Yes Yes

Use the AWS IoT Device SDK for

Java in custom components Yes Yes

Device certification

Feature Linux Windows

Use AWS IoT Device Tester for AWS IoT Greengrass V2 to

validate IoT devices Yes Yes

Move from AWS IoT Greengrass Version 1

AWS IoT Greengrass Version 2 is a new major version release of the AWS IoT Greengrass Core software, APIs, and console. You can't use the AWS IoT Greengrass Core software v1.x with the V2 APIs. Likewise, you can't use the AWS IoT Greengrass Core software v2.0 with the V1 APIs. However, by using some modifications, you can run your V1 applications on AWS IoT Greengrass V2.

Topics

• Differences between V1 and V2 (p. 8)

• Run AWS IoT Greengrass V1 applications on AWS IoT Greengrass V2 (p. 10)

Differences between V1 and V2

AWS IoT Greengrass V2 introduces new fundamental concepts for devices, fleets, and deployable software. This section describes the V1 concepts that are different in V2.

AWS IoT Greengrass groups and deployments

In AWS IoT Greengrass V1, a group defines a core device, the settings and software for that core device, and the list of AWS IoT things that connect to that core device.

In AWS IoT Greengrass V2, you use deployments to define the software components and configurations that run on core devices. Each deployment targets a single core device or an AWS IoT thing group that can contain multiple core devices. Deployments to thing groups are continuous, so when you add a core device to a thing group, it receives the software configuration for that fleet. For more information, see Deploy AWS IoT Greengrass components to devices (p. 519).

You can also create local deployments to develop and test custom software components. For more information, see Create AWS IoT Greengrass components (p. 469).

(25)

Differences between V1 and V2

AWS IoT Greengrass Core software and connectors

In AWS IoT Greengrass V1, the AWS IoT Greengrass Core software is a single package that contains the software and all of its features. AWS IoT Greengrass connectors are modules that you deploy to AWS IoT Greengrass V1 core devices.

In AWS IoT Greengrass V2, the AWS IoT Greengrass Core software is modular, so that you can choose what to install to control the memory footprint. The Greengrass nucleus component (p. 189) is the minimum required installation of the AWS IoT Greengrass Core software that handles deployments, orchestration, and lifecycle management of other components. Features such as stream manager, secret manager, and log manager are components that you deploy only when you need those features.

AWS IoT Greengrass V2 also provides some AWS IoT Greengrass V1 connectors as components. For more information, see AWS-provided components (p. 183).

AWS Lambda functions

In AWS IoT Greengrass V1, Lambda functions define the software that runs on core devices. In each Greengrass group, you define subscriptions and local resources that the function uses. You also define the container parameters for functions that the AWS IoT Greengrass Core software runs in a containerized Lambda runtime environment.

In AWS IoT Greengrass V2, components are the software that run on core devices. Components can consist of any software applications, and each component has a recipe that defines the component's metadata, parameters, dependencies, and scripts to run at each step in the component lifecycle. The recipe also defines the component's artifacts, which are binary files such as scripts, compiled code, and static resources. When you deploy a component to a core device, the core device downloads the component recipe and artifacts to run the component. For more information, see Develop AWS IoT Greengrass components (p. 467).

You can import Lambda functions as components that run in a Lambda runtime environment in AWS IoT Greengrass V2. When you import the Lambda function, you specify the subscriptions, local resources, and container parameters for the function. For more information, see Run AWS IoT Greengrass V1 applications on AWS IoT Greengrass V2 (p. 10)..

Subscriptions

In AWS IoT Greengrass V1, subscriptions specify where Lambda functions receive event messages to consume as function payloads. Functions subscribe to local publish/subscribe messages and AWS IoT Core MQTT messages.

In AWS IoT Greengrass V2, components manage their own subscriptions to local publish/subscribe and AWS IoT Core MQTT messages. In the component recipe, you define authorization policies to specify which topics the component can use to communicate. In component code, you can use interprocess communication (IPC) for local publish/subscribe messaging and AWS IoT Core MQTT messaging. For more information, see Use the AWS IoT Device SDK to communicate with the Greengrass nucleus, other components, and AWS IoT Core (p. 577).

Local resources

In AWS IoT Greengrass V1, Lambda functions run in containers that you configure to access volumes and devices on the core device's file system.

In AWS IoT Greengrass V2, components run outside containers, so you don't need to specify which local resources the component can access. You can develop components that work directly with local resources on core devices. You can also develop components that run Docker containers. For more information, see Run a Docker container (p. 485).

NoteWhen you import a containerized Lambda function as a component, you specify the local resources that the function uses.

Greengrass devices (connected devices)

(26)

Run V1 applications on V2

In AWS IoT Greengrass V1, Greengrass devices are AWS IoT things that you add to a Greengrass group to connect to the core device in that group and communicate over MQTT. You must deploy that group each time that you add or remove a connected device. You use subscriptions to relay messages between connected devices, AWS IoT Core, and applications on the core device.

In AWS IoT Greengrass V2, connected devices are called Greengrass client devices, and you associate client devices to core devices to connect them and communicate over MQTT. You can define authorization policies that apply to groups of client devices, so you don't need to create a deployment to add or remove a client device. To relay messages between client devices, AWS IoT Core, and Greengrass components, you can configure an optional MQTT bridge component. For more information, see Interact with local IoT devices (p. 671).

In both AWS IoT Greengrass V1 and AWS IoT Greengrass V2, devices can run FreeRTOS or use the AWS IoT Device SDK or Greengrass discovery API (p. 705) to get information about core devices to which they can connect.

Local shadow service

In AWS IoT Greengrass V1, the local shadow service is enabled by default, and supports only unnamed classic shadows. You use the Greengrass Core SDK in your Lambda functions to interact with shadows on your devices.

In AWS IoT Greengrass V2, you enable the local shadow service by deploying the shadow manager component. You can then use the AWS IoT Device SDK V2 in Lambda functions, or in custom components, to interact with shadows on your devices.

In both AWS IoT Greengrass V1 and AWS IoT Greengrass V2, you can sync local shadow states with cloud shadows in AWS IoT Core. For more information, see Interact with device shadows (p. 719).

Run AWS IoT Greengrass V1 applications on AWS IoT Greengrass V2

You can run most AWS IoT Greengrass V1 applications on AWS IoT Greengrass V2. You can use AWS- provided components that offer the same functionality as AWS IoT Greengrass connectors, and you can import Lambda functions as components that run on AWS IoT Greengrass V2.

Topics

• Can I run my Greengrass v1.x applications on Greengrass v2.0? (p. 10)

• Run V1 Lambda functions (p. 11)

• Run AWS IoT Greengrass connectors (p. 12)

• Run machine learning inference (p. 12)

• Connect V1 Greengrass devices (p. 12)

Can I run my Greengrass v1.x applications on Greengrass v2.0?

AWS IoT Greengrass provides features that you can use to run your AWS IoT Greengrass Core software v1.x applications on the AWS IoT Greengrass Core software v2.0. However, if your v1.x applications use any of the following listed features, you won't be able to run them on the v2.0 software yet.

• Stream manager telemetry metrics

• The C and C++ Lambda function runtimes.

(27)

Run V1 applications on V2

You can develop custom components (p. 467) to build any feature or runtime to run on Greengrass core devices.

Run V1 Lambda functions

You can import Lambda functions as AWS IoT Greengrass V2 components. If your components use features such as stream manager or local secrets, you must define dependencies on the AWS-provided components that package these features' functionality. When you deploy a component, the deployment includes the component dependencies that you specify. You configure these dependent features when you deploy your Lambda function component.

If your Lambda function uses features such as stream manager or local secrets, you must define dependencies on the AWS-provided components that package these features. When you deploy the Lambda function component, the deployment also includes the component for each feature that you define as a dependency. In the deployment, you can configure parameters such as which secrets to deploy to the core device. Not all V1 features require a component dependency for your Lambda function on V2. The following list describes how to use V1 features on V2 in your Lambda function component.

Stream manager

If your Lambda function uses stream manager, specify aws.greengrass.StreamManager as a component dependency when you import the function. When you deploy the stream manager component, specify the stream manager parameters to set for the target core devices. For more information, see Stream manager (p. 420).

Local secrets

If your Lambda function uses local secrets, specify aws.greengrass.SecretManager as a component dependency when you import the function. When you deploy the secret manager component, specify the secret resources to deploy to the target core devices. The core device's role alias must point to an IAM role that allows the core device to retrieve the secret resources to deploy.

For more information, see Secret manager (p. 393).

Subscriptions

If your Lambda function publishes messages to the local publish/subscribe broker or to AWS IoT Core, specify aws.greengrass.LegacySubscriptionRouter as a component dependency when you import the function. When you deploy the legacy subscription router component, specify the subscriptions that the Lambda function uses. For more information, see Legacy subscription router (p. 270).

Note

This component is required only if your Lambda function uses the publish() function in the AWS IoT Greengrass Core SDK. If you update your Lambda function code to use the interprocess communication (IPC)s interface in the V2 AWS IoT Device SDK, you don't need to deploy the legacy subscription router component. For more information, see the following interprocess communication (p. 577) services:

• Publish/subscribe local messages (p. 593)

• Publish/subscribe AWS IoT Core MQTT messages (p. 618)

Local volumes and devices

If your containerized Lambda function accesses local volumes or devices, specify those volumes and devices when you import the Lambda function. This feature doesn't require a component dependency.

Local shadows

(28)

What's new in Version 2

If your Lambda function interacts with local shadows, you must update the Lambda function code to use the AWS IoT Device SDK V2. You must also specify aws.greengrass.ShadowManager as a component dependency when you import the function.

Access other AWS services

If your Lambda function uses AWS credentials to make requests to other AWS services, specify aws.greengrass.TokenExchangeService as a component dependency when you import the function. The core device's role alias must point to an IAM role that allows the core device to perform the AWS operations that the Lambda function uses. For more information, see Token exchange service (p. 430) and Authorize core devices to interact with AWS services (p. 843).

For more information, see Run AWS Lambda functions (p. 555).

Run AWS IoT Greengrass connectors

You can deploy AWS-provided components that offer the same functionality of AWS IoT Greengrass connectors. When you create the deployment, you can configure the connectors' parameters. For more information, see the following AWS IoT Greengrass V2 components that provide Greengrass connectors:

• CloudWatch metrics component (p. 210)

• AWS IoT Device Defender component (p. 240)

• Kinesis Data Firehose component (p. 253)

• Modbus-RTU protocol adapter component (p. 359)

• Amazon SNS component (p. 411)

AWS IoT Greengrass V2 doesn't provide a component to replace the Docker application deployment connector, but you can create components that run Docker containers from images. For more information, see Run a Docker container (p. 485).

Run machine learning inference

AWS IoT Greengrass V2 provides sample Amazon SageMaker Neo DLR machine learning components and models. You can use these features for image classification and object detection. To use other machine learning frameworks, such as MXNet and TensorFlow, you can develop your own custom components that use these frameworks.

Connect V1 Greengrass devices

In AWS IoT Greengrass V2, Greengrass devices (or connected devices) are called client devices. AWS IoT Greengrass V2 support for client devices is backward-compatible with AWS IoT Greengrass V1, so you can connect V1 core devices to V2 core devices without changing their application code. To enable client devices to connect a V2 core device, deploy Greengrass components that enable client device support, and associate the client devices to the core device. To relay messages between client devices, the AWS IoT Core cloud service, and Greengrass components (including Lambda functions), deploy and configure the MQTT bridge component (p. 375). You can deploy the IP detector component (p. 249) to automatically detect connectivity information, or you can manually manage endpoints. For more information, see Interact with local IoT devices (p. 671).

What's new in AWS IoT Greengrass Version 2

AWS IoT Greengrass Version 2 is a new major version release of AWS IoT Greengrass that introduces the following features:

(29)

AWS IoT Greengrass Core v2.5.3 software update

Open source edge runtime—The edge runtime is now open source and distributed under the Apache 2.0 license and available on GitHub. You can now view the AWS IoT Greengrass edge runtime code, which allows you to troubleshoot interactions with your application and helps you build more reliable and performant applications running on AWS IoT Greengrass. You can also customize and extend the AWS IoT Greengrass edge runtime to meet your specific hardware and software needs. For more information, see Open source AWS IoT Greengrass Core software (p. 983).

Improved modularity—You can add or remove pre-built software components based on your use cases, and your device CPU and memory resources. For example, you can choose to include only pre- built AWS IoT Greengrass components, such as stream manager, when you need to process data streams with your application. Or, you can include only machine learning components when you want to perform machine learning inference locally on your devices. For more information, see Develop AWS IoT Greengrass components (p. 467) and AWS-provided components (p. 183).

New local development tools—AWS IoT Greengrass includes a new command line interface (CLI) that enables you to locally develop and debug applications on your device. In addition, the new local debug console helps you visually debug applications on your device. With these new capabilities, you can develop and debug code on a test device before using the cloud to deploy to your production devices.

For more information, see Greengrass CLI (p. 234) and Local debug console (p. 275).

Improved fleet deployment features—AWS IoT Greengrass is now integrated with AWS IoT thing groups. This enables you to organize your devices in groups and manage application deployments across your devices with features that control rollout rates, timeouts, and rollbacks. For more information, see Deploy AWS IoT Greengrass components to devices (p. 519).

AWS IoT Greengrass release notes provide details about AWS IoT Greengrass releases—new features, updates and improvements, and general fixes. AWS IoT Greengrass has the following types of releases:

• New feature releases for AWS IoT Greengrass

• AWS IoT Greengrass Core software updates

This section contains all of the AWS IoT Greengrass V2 release notes, latest first, and includes major feature changes and significant bug fixes. For information about additional minor fixes, see the aws- greengrass organization on GitHub.

Release notes

• Release: AWS IoT Greengrass Core v2.5.3 software update on January 6, 2022 (p. 13)

• Release: AWS IoT Greengrass Core v2.5.2 software update on December 3, 2021 (p. 14)

• Release: AWS IoT Greengrass Core v2.5.1 software update on November 23, 2021 (p. 15)

• Release: AWS IoT Greengrass Core v2.5.0 software update on November 12, 2021 (p. 16)

• Release: AWS IoT Greengrass Core v2.4.0 software update on August 3, 2021 (p. 19)

• Release: AWS IoT Greengrass Core v2.3.0 software update on June 29, 2021 (p. 21)

• Release: AWS IoT Greengrass Core v2.2.0 software update on June 18, 2021 (p. 22)

• Release: AWS IoT Greengrass Core v2.1.0 software update on April 26, 2021 (p. 24)

• Release: AWS IoT Greengrass Core v2.0.5 software update on March 09, 2021 (p. 29)

• Release: AWS IoT Greengrass Core v2.0.4 software update on February 04, 2021 (p. 30)

Release: AWS IoT Greengrass Core v2.5.3 software update on January 6, 2022

This release provides version 2.5.3 of the Greengrass nucleus component and the new PKCS#11 provider component.

(30)

AWS IoT Greengrass Core v2.5.2 software update

Release date: January 6, 2022 Release highlights

Hardware security integration—You can now configure the AWS IoT Greengrass Core software to use a private key and certificate that you securely store in a hardware security module (HSM). For more information, see Hardware security integration (p. 815).

Release details

• Public component updates (p. 14)

Public component updates

The following table lists AWS-provided components that include new and updated features.

Important

When you deploy a component, AWS IoT Greengrass installs the latest supported versions of all component dependencies for that component. Because of this, new patch versions of AWS- provided public components might be automatically deployed to your core devices if you add new devices to a thing group, or you update the deployment that targets those devices. Some automatic updates, such as a nucleus update, can cause your devices to restart unexpectedly.

To prevent unintended updates for a component that is running on your device, we recommend that you directly include your preferred version of that component when you create a

deployment (p. 522). For more information about update behavior for AWS IoT Greengrass Core software, see Update the AWS IoT Greengrass Core software (OTA) (p. 178).

Component Details Greengrass

nucleus Version 2.5.3 of the Greengrass nucleus (p. 189) is available.

New features

• Adds support for hardware security integration. You can use a hardware security module (HSM) to securely store the device's private key and certificate. For more information, see Hardware security integration (p. 815).

Bug fixes and improvements

• Fixes an issue with runtime exceptions while the nucleus establishes MQTT connections with AWS IoT Core.

PKCS#11 provider Version 2.0.0 of the PKCS#11 provider component (p. 390) is available.

New features

• Adds support for hardware security integration. You can use a hardware security module (HSM) to securely store the device's private key and certificate. For more information, see Hardware security integration (p. 815).

Release: AWS IoT Greengrass Core v2.5.2 software update on December 3, 2021

This release provides version 2.5.2 of the Greengrass nucleus component.

Release date: December 3, 2021

(31)

AWS IoT Greengrass Core v2.5.1 software update

Release details

• Public component updates (p. 15)

Public component updates

The following table lists AWS-provided components that include new and updated features.

Important

When you deploy a component, AWS IoT Greengrass installs the latest supported versions of all component dependencies for that component. Because of this, new patch versions of AWS- provided public components might be automatically deployed to your core devices if you add new devices to a thing group, or you update the deployment that targets those devices. Some automatic updates, such as a nucleus update, can cause your devices to restart unexpectedly.

To prevent unintended updates for a component that is running on your device, we recommend that you directly include your preferred version of that component when you create a

deployment (p. 522). For more information about update behavior for AWS IoT Greengrass Core software, see Update the AWS IoT Greengrass Core software (OTA) (p. 178).

Component Details Greengrass

nucleus Version 2.5.2 of the Greengrass nucleus (p. 189) is available.

Bug fixes and improvements

• Fixes an issue where after the Greengrass nucleus updates, the Windows service fails to start again after you stop it or reboot the device.

AWS IoT Device

Defender Version 3.0.1 of the AWS IoT Device Defender (p. 240) component is available.

This version of the AWS IoT Device Defender component expects different configuration parameters than version 2.x. If you use a non-default configuration for version 2.x, and you want to upgrade from v2.x to v3.x, you must update the component's configuration. For more information, see AWS IoT Device Defender component configuration (p. 244).

New features

• Adds support for core devices that run Windows.

• Changes the component type from Lambda component to generic component. This component now no longer depends on the legacy subscription router component to create subscriptions.

• Adds the new UseInstaller configuration parameter that lets you optionally disable the installation script that installs component dependencies.

Release: AWS IoT Greengrass Core v2.5.1 software update on November 23, 2021

This release provides version 2.5.1 of the Greengrass nucleus component.

Release date: November 23, 2021 Release details

• Public component updates (p. 16)

(32)

AWS IoT Greengrass Core v2.5.0 software update

Public component updates

The following table lists AWS-provided components that include new and updated features.

Important

When you deploy a component, AWS IoT Greengrass installs the latest supported versions of all component dependencies for that component. Because of this, new patch versions of AWS- provided public components might be automatically deployed to your core devices if you add new devices to a thing group, or you update the deployment that targets those devices. Some automatic updates, such as a nucleus update, can cause your devices to restart unexpectedly.

To prevent unintended updates for a component that is running on your device, we recommend that you directly include your preferred version of that component when you create a

deployment (p. 522). For more information about update behavior for AWS IoT Greengrass Core software, see Update the AWS IoT Greengrass Core software (OTA) (p. 178).

Component Details Greengrass

nucleus Version 2.5.1 of the Greengrass nucleus (p. 189) is available.

Bug fixes and improvements

• Adds support for 32-bit versions of the Java Runtime Environment (JRE) on Windows.

• Changes thing group removal behavior for core devices whose AWS IoT policy doesn't grant the

greengrass:ListThingGroupsForCoreDevice permission. With this version, the deployment continues, logs a warning, and doesn't remove components when you remove the core device from a thing group.

For more information, see Deploy AWS IoT Greengrass components to devices (p. 519).

• Fixes an issue with system environment variables that the Greengrass nucleus makes available to Greengrass component processes. You can now restart a component for it to use the latest system environment variables.

Release: AWS IoT Greengrass Core v2.5.0 software update on November 12, 2021

This release provides version 2.5.0 of the Greengrass nucleus component, new AWS-provided components, and updates to AWS-provided components.

Release date: November 12, 2021 Release highlights

Windows device support—You can now run the AWS IoT Greengrass Core software on devices running Windows operating systems. For more information, see Supported platforms and requirements (p. 64) and Greengrass feature compatibility by operating system (p. 5).

New thing group removal behavior—You can now remove a core device from a thing group to remove that thing group's components in the next deployment to that device.

Important

As a result of this change, a core device's AWS IoT policy must have the

greengrass:ListThingGroupsForCoreDevice permission. If you used the AWS IoT Greengrass Core software installer to provision resources (p. 71), the default AWS IoT policy allows greengrass:*, which includes this permission. For more information, see Device authentication and authorization for AWS IoT Greengrass (p. 823).

參考文獻

相關文件

• To the right of the Draw mode buttons you find push buttons through which you can access all the functions that you need to define and solve the PDE problem: define

As students have to sketch and compare graphs of various types of functions including trigonometric functions in Learning Objective 9.1 of the Compulsory Part, it is natural to

 Promote project learning, mathematical modeling, and problem-based learning to strengthen the ability to integrate and apply knowledge and skills, and make. calculated

vs Functional grammar (i.e. organising grammar items according to the communicative functions) at the discourse level2. “…a bridge between

220V 50 Hz single phase A.C., variable stroke control, electrical components and cabling conformed to the latest B.S.S., earthing through 3 core supply cable.. and 2,300 r.p.m.,

Establishing the connection between the exact master equation and the non -equilibrium Green functions provides a general approach to explore the non-Markovian

• SIPv6 Analyzer provides several functions (e.g., SIP Viewer and RTP Spy) for the users who attempt to debug the SIP VoIP network or the SIP devices. • SIPv6 Analyzer can

* School Survey 2017.. 1) Separate examination papers for the compulsory part of the two strands, with common questions set in Papers 1A &amp; 1B for the common topics in