준비 중 AWS IoT 작업 - AWS IoT Core

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

준비 중 AWS IoT 작업

AWS IoT Device Management 소프트웨어 패키지 카탈로그 확장 AWS IoT 대체 매개변수 및 통합을 통한 작업 AWS IoT 플릿 인덱싱, 동적 사물 그룹 및 AWS IoT 섀도우라는 이름이 붙은 것은 예약되어 있습니다.

참고

소프트웨어 패키지 카탈로그에서 제공하는 모든 기능을 사용하려면 다음을 만들어야 합니다. AWS Identity and Access Management (IAM) 역할 및 정책: AWS IoT 패키지 버전 배포에 대한 작업 권한 AWS IoT 예약된 네임드 섀도우를 업데이트할 수 있는 작업 권한 자세한 내용은 보안 준비를 참조하세요.

대체 매개 변수: AWS IoT jobs

대체 매개변수를 내 자리 표시자로 사용할 수 있습니다. 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 예약된 이름의 shadow ($package) 에서 패키지 버전을 업데이트하려면 작업을 수행하십시오. 다음과 같은 경우 다른 프로세스 (예: 수동 또는 프로그래밍 API 호출) 를 통해 $package 섀도우의 버전 매개 변수를 업데이트하는 경우 AWS IoT 또한 작업이 섀도우를 업데이트하도록 구성되어 있기 때문에 디바이스에 있는 실제 버전과 예약된 명명된 섀도우에 보고된 버전 간에 불일치가 발생할 수 있습니다.

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

참고

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

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

$null라는 메시지를 표시하는 예약 플레이스홀더입니다. AWS IoT 작업 서비스를 통해 디바이스의 예약된 명명된 섀도우에서 기존 소프트웨어 패키지 및 패키지 버전을 제거합니다. $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"]