작업 준비 AWS IoT - AWS IoT Core

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

작업 준비 AWS IoT

AWS IoT Device Management Software Package Catalog는 대체 매개변수, AWS IoT 플릿 인덱싱, 동적 사물 그룹 및 예약된 명명된 섀도우와의 통합을 통해 AWS IoT 작업을 확장합니다. AWS IoT

참고

Software Package Catalog에서 제공하는 모든 기능을 사용하려면 패키지 버전을 배포하기 위한AWS IoT 작업 권한 및 예약된 명명된 섀도우를 업데이트하기 위한AWS IoT 작업 권한과 같은 AWS Identity and Access Management (IAM) 역할 및 정책을 만들어야 합니다. 자세한 내용은 보안 준비를 참조하세요.

작업 대체 매개 변수 AWS IoT

대체 매개변수를 작업 문서 내에서 자리 표시자로 사용할 수 있습니다. AWS IoT 작업 서비스는 대체 파라미터를 발견하면 작업이 해당 파라미터 값에 대한 명명된 소프트웨어 버전의 속성을 가리키도록 합니다. 이 프로세스를 사용하여 단일 작업 문서를 만들고 범용 속성을 통해 메타데이터를 작업에 전달할 수 있습니다. 예를 들어, 패키지 버전 속성을 통해 Amazon 심플 스토리지 서비스 (Amazon S3)URL, 소프트웨어 패키지 Amazon 리소스 이름 (ARN) 또는 서명을 작업 문서에 전달할 수 있습니다.

작업 문서에서 대체 파라미터의 형식을 다음과 같이 지정해야 합니다.

${aws:iot:package:<packageName>:version:<versionName>:attributes:<anyAttributeName>}

이 예tl에는 이름이 samplePackage인 소프트웨어 패키지가 있고 이 패키지에는 이름이 2.1.5이고 속성이 다음과 같은 패키지 버전이 있습니다.

  • 이름: s3URL, 값: https://EXAMPIEBUCKET.s3.us-west-2.amazonaws.com/exampleCodeFile

    • 이 속성은 Amazon S3에 저장된 코드 파일의 위치를 식별합니다.

  • 이름: signature, 값: aaaaabbbbbcccccdddddeeeeefffffggggghhhhhiiiiijjjj

    • 이 속성은 디바이스에 보안 조치로 필요한 코드 서명 값을 제공합니다. 자세한 내용은 작업용 코드 서명을 참조하세요. 참고: 이 속성은 예시이며 소프트웨어 패키지 카탈로그 또는 작업에 필요하지 않습니다.

downloads의 경우, 작업 문서 파라미터는 다음과 같이 작성됩니다.

{ "samplePackage": "${aws:iot:package:samplePackage1:version:2.1.5:attributes:s3URL}" }

signature의 경우, 작업 문서 파라미터는 다음과 같이 작성됩니다.

{ "samplePackage": "${aws:iot:package:samplePackage1:version:2.1.5:attributes:signature}" }

전체 작업 문서는 다음과 같이 작성됩니다.

{ ... "Steps": { "uninstall": ["samplePackage"], "download": [ { "samplePackage": "${aws:iot:package:samplePackage1:version:2.1.5:attributes:s3URL}" }, ], "signature": [ "samplePackage" : "${aws:iot:package:samplePackage1:version:2.1.5:attributes:signature}" ] } }

대체가 이루어지면 다음 작업 문서가 디바이스에 배포됩니다.

{ ... "Steps": { "uninstall": ["samplePackage"], "download": [ { "samplePackage": "https://EXAMPIEBUCKET.s3.us-west-2.amazonaws.com/exampleCodeFile" }, ], "signature": [ "samplePackage" : "aaaaabbbbbcccccdddddeeeeefffffggggghhhhhiiiiijjjj" ] } }

AWS IoT 작업, 작업 문서 생성 및 작업 배포에 대한 자세한 내용은 작업을 참조하십시오.

배포를 위한 작업 문서 및 패키지 버전 준비

패키지 버전이 생성되면 배포 준비 중임을 나타내는 draft 상태가 됩니다. 패키지 버전 배포를 준비하려면 작업 문서를 생성하고, 작업이 액세스할 수 있는 위치 (예: Amazon S3) 에 문서를 저장하고, 패키지 버전에 작업 문서에서 사용할 속성 값이 있는지 확인해야 합니다. (참고: 패키지 버전이 draft 상태에 있을 때만 패키지 버전의 속성을 업데이트할 수 있습니다.)

패키지 버전에 만족하면 AWS IoT 콘솔의 소프트웨어 패키지 세부 정보 페이지를 통해 또는 UpdatePackageVersionAPI작업을 실행하여 게시하십시오. 그러면 AWS IoT 콘솔을 통해 또는 작업을 실행하여 작업을 생성할 때 패키지 버전을 참조할 수 있습니다. CreateJobAPI

배포 시 패키지 및 버전 이름 지정

작업을 배포할 때는 AWS IoT 작업 배포 (destinationPackageVersions) 의 작업 문서에 이름이 지정된 것과 동일한 소프트웨어 패키지 및 패키지 버전의 이름을 지정해야 합니다. 이렇게 하지 않으면 패키지 버전이 누락되었다는 오류 메시지가 나타납니다.

작업 문서에 포함되지 않은 추가 소프트웨어 패키지 및 패키지 버전을 포함할 수 있습니다. 이렇게 하면 작업에서 해당 파일을 사용하여 수행할 작업에 대한 지침을 디바이스에 제공하지 않으므로 디바이스가 수행할 작업을 알고 있어야 합니다. 예를 들어, 디바이스에 참조할 수 있는 데이터가 들어 있는 경우 추가 파일을 디바이스에 보낼 수 있습니다.

AWS IoT 동적 사물 그룹을 통한 작업 타겟팅

소프트웨어 패키지 카탈로그는 플릿 인덱싱, AWS IoT 작업AWS IoT 동적 사물 그룹과 함께 작동하여 플릿 내의 디바이스를 필터링하고 타게팅하여 디바이스에 배포할 패키지 버전을 선택합니다. 디바이스의 현재 패키지 정보를 기반으로 플릿 인덱싱 쿼리를 실행하고 해당 항목을 AWS IoT 작업 대상으로 지정할 수 있습니다. 소프트웨어 업데이트를 릴리스할 수도 있지만 적합한 대상 디바이스에만 릴리스할 수 있습니다. 예를 들어, 현재 iot-device-client 1.5.09를 실행하는 디바이스에만 구성을 배포하도록 지정할 수 있습니다. 자세한 내용은 동적 사물 그룹 생성을 참조하세요.

명명된 예약 섀도우 및 패키지 버전

구성된 경우 AWS IoT 작업이 성공적으로 완료되면 작업이 예약된 shadow ($package) 라는 이름을 가진 사물을 업데이트할 수 있습니다. 이렇게 하면 패키지 버전을 사물의 명명된 예약 섀도우에 수동으로 연결할 필요가 없습니다.

다음과 같은 상황에서는 패키지 버전을 사물의 명명된 예약 섀도우에 수동으로 연결하거나 업데이트하도록 선택할 수 있습니다.

  • 설치된 패키지 버전을 AWS IoT Core 연결하지 않고도 사물을 등록할 수 있습니다.

  • AWS IoT 작업이 예약된 이름의 섀도우를 업데이트하도록 구성되어 있지 않습니다.

  • 사내 프로세스를 사용하여 플릿에 패키지 버전을 발송하는데, 이 프로세스는 완료 후에도 AWS IoT Core 업데이트되지 않습니다.

참고

AWS IoT Jobs를 사용하여 예약된 이름이 지정된 shadow () $package 의 패키지 버전을 업데이트하는 것이 좋습니다. $package섀도우를 업데이트하도록 AWS IoT Jobs가 구성된 상태에서 다른 프로세스 (예: 수동 또는 프로그래밍 API 호출) 를 통해 섀도우의 버전 매개 변수를 업데이트하면 디바이스에 있는 실제 버전과 예약된 명명된 섀도우에 보고된 버전 간에 불일치가 발생할 수 있습니다.

콘솔 또는 작업을 통해 패키지 버전을 예약된 Shadow ($package) 라는 이름의 사물에 추가하거나 업데이트할 수 있습니다. UpdateThingShadowAPI 자세한 내용은 패키지 버전을 사물에 연결하기를 참조하십시오 AWS IoT .

참고

패키지 버전을 사물에 연결해도 기기 소프트웨어가 직접 업데이트되지는 않습니다. AWS IoT 디바이스 소프트웨어를 업데이트하려면 패키지 버전을 디바이스에 배포해야 합니다.

소프트웨어 패키지 및 패키지 버전 제거

$null장치의 예약된 명명된 섀도우에서 기존 소프트웨어 패키지 및 패키지 버전을 제거하라는 메시지를 AWS IoT Jobs 서비스에 표시하는 예약된 자리 표시자입니다. $package 자세한 내용은 명명된 예약 섀도우를 참조하세요.

이 기능을 사용하려면 destinationPackageVersionAmazon 리소스 이름 (ARN) 끝에 있는 버전 이름을 로 바꾸십시오$null. 그런 다음 디바이스에서 소프트웨어를 제거하도록 서비스에 지시합니다.

승인된 ARN 사람은 다음 형식을 사용합니다.

arn:aws:iot:<regionCode>:111122223333:package/<packageName>/version/$null

예:

$ aws iot create-job \ ... \ --destinationPackageVersions ["arn:aws:iot:us-east-1:111122223333:package/samplePackage/version/$null"]