AWS 관리형 템플릿을 사용하여 일반적인 원격 작업 배포
AWS 관리형 템플릿은 AWS에서 제공하는 작업 템플릿입니다. 재부팅, 파일 다운로드, 디바이스에 애플리케이션 설치와 같이 자주 수행되는 원격 작업에 사용됩니다. 이러한 템플릿에는 각 원격 작업에 대해 미리 정의된 작업 문서가 있으므로 고유한 작업 문서를 생성할 필요가 없습니다.
미리 정의된 구성 집합에서 선택하고 추가 코드를 작성하지 않고도 이러한 템플릿을 사용하여 작업을 생성할 수 있습니다. 관리형 템플릿을 사용하여 플릿에 배포된 작업 문서를 볼 수 있습니다. 이러한 템플릿으로 작업을 생성하고 원격 작업에 다시 사용할 수 있는 사용자 정의 작업 템플릿을 생성할 수 있습니다.
관리형 템플릿에는 무엇이 포함되어 있나요?
각 AWS 관리형 템플릿에는 다음이 포함되어 있습니다.
-
작업 문서에서 명령을 실행할 환경.
-
작업 이름과 해당 파라미터를 지정하는 작업 문서입니다. 예를 들어 파일 다운로드(Download file) 템플릿을 사용하는 경우 작업 이름은 파일 다운로드(Download file)이고 파라미터는 다음과 같을 수 있습니다.
-
디바이스에 다운로드하려는 파일의 URL입니다. 이 URL은 인터넷 리소스이거나 퍼블릭 또는 사전 서명된 Amazon Simple Storage Service(S3) URL일 수 있습니다.
-
다운로드한 파일을 저장할 디바이스의 로컬 파일 경로입니다.
작업 문서와 해당 파라미터에 대한 자세한 내용은 관리형 템플릿 원격 작업 및 작업 문서 섹션을 참조하세요.
-
사전 조건
디바이스에서 관리형 템플릿 작업 문서에 지정된 원격 작업을 디바이스에서 실행하려면 다음을 수행해야 합니다.
-
디바이스에 특정 소프트웨어 설치
자체 디바이스 소프트웨어 및 작업 핸들러 또는 AWS IoT Device Client를 사용합니다. 비즈니스 사례에 따라 서로 다른 기능을 수행하도록 둘 다 실행할 수도 있습니다.
-
자체 디바이스 소프트웨어 및 작업 핸들러 사용
AWS IoT Device SDK와 원격 작업을 지원하는 핸들러 라이브러리를 사용하여 디바이스에 대한 고유한 코드를 작성할 수 있습니다. 작업을 배포하고 실행하려면 디바이스 에이전트 라이브러리가 올바르게 설치되었고 이러한 디바이스에서 실행 중인지 확인합니다.
원격 작업을 지원하는 자체 핸들러를 사용하도록 선택할 수도 있습니다. 자세한 내용은 AWS IoT Device Client GitHub 리포지토리의 샘플 작업 핸들러
를 참조하세요. -
AWS IoT Device Client 사용
또는, AWS IoT Device Client는 기본적으로 콘솔에서 직접 모든 관리형 템플릿 사용을 지원하므로 디바이스에 Device Client를 설치하고 실행할 수 있습니다.
Device Client는 임베디드 Linux 기반 IoT 디바이스에 컴파일하고 설치할 수 있는 C++로 작성된 오픈 소스 소프트웨어입니다. Device Client에는 기본 클라이언트와 개별 클라이언트 측 기능이 있습니다. 기본 클라이언트는 MQTT 프로토콜을 통해 AWS IoT와 연결을 설정하고 다양한 클라이언트 측 기능과 연결할 수 있습니다.
디바이스에서 원격 작업을 수행하려면 Device Client의 클라이언트 측 작업 기능을 사용합니다. 이 기능에는 작업 문서를 수신하는 파서와 작업 문서에 지정된 원격 작업을 구현하는 작업 핸들러가 포함되어 있습니다. Device Client와 해당 기능에 대한 자세한 내용은 AWS IoT Device Client
를 참조하세요. 디바이스에서 실행할 때 Device Client는 작업 문서를 수신하고 문서에서 명령을 실행하는 데 사용하는 플랫폼별 구현을 갖습니다. Device Client 설정 및 작업 기능에 대한 자세한 내용은 AWS IoT 자습서를 참조하세요.
-
-
지원되는 환경 사용
각 관리형 템플릿에 대해 원격 작업을 실행하는 데 사용할 수 있는 환경에 대한 정보를 찾을 수 있습니다. 템플릿에 지정된 대로 지원되는 Linux 환경에서 템플릿을 사용하는 것이 좋습니다. AWS IoT Device Client는 Debian 및 Ubuntu와 같은 일반적인 마이크로프로세서 및 Linux 환경을 지원하므로 이를 사용하여 관리형 템플릿 원격 작업을 실행합니다.
관리형 템플릿 원격 작업 및 작업 문서
다음 섹션에는 AWS IoT 작업에 대한 다양한 AWS 관리형 템플릿이 나열되어 있고 디바이스에서 수행할 수 있는 원격 작업에 대한 설명이 나와 있습니다. 아래 섹션에는 작업 문서에 대한 정보와 각 원격 작업의 작업 문서 파라미터에 대한 정보가 있습니다. 디바이스 측 소프트웨어는 템플릿 이름과 파라미터를 사용하여 원격 작업을 수행합니다.
AWS 관리형 템플릿은 템플릿을 사용하여 작업을 생성할 때 값을 지정하는 입력 파라미터를 수락합니다. 모든 관리형 템플릿에는 runAsUser
및 pathToHandler
의 두 가지 선택적 파라미터가 공통적으로 있습니다. AWS-Reboot
템플릿을 제외한 나머지 템플릿을 사용하려면 템플릿을 사용하여 작업을 생성할 때 값을 지정해야 하는 추가 입력 파라미터가 필요합니다. 이 필수 입력 파라미터는 사용자가 선택하는 템플릿에 따라 달라집니다. 예를 들어, AWS-Download-File
템플릿을 선택하는 경우 설치할 패키지 목록 및 파일을 다운로드할 URL을 지정해야 합니다.
관리형 템플릿을 사용하여 작업을 생성하려면 AWS IoT 콘솔 또는 AWS Command Line Interface(AWS CLI)를 사용할 때 이러한 파라미터의 값을 지정합니다. CLI를 사용할 때는 document-parameters
객체를 사용하여 이러한 값을 제공합니다. 자세한 내용은 documentParameters를 참조하세요.
참고
AWS 관리형 템플릿에서 작업을 생성할 때만 document-parameters
를 사용합니다. 이 파라미터는 사용자 지정 작업 템플릿과 함께 사용하거나 이러한 템플릿에서 작업을 생성하는 데 사용할 수 없습니다.
다음은 일반적인 선택적 입력 파라미터에 대한 설명을 보여줍니다. 다음 섹션에서 각 관리형 템플릿에 필요한 다른 입력 파라미터에 대한 설명을 확인할 수 있습니다.
runAsUser
-
이 파라미터는 작업 핸들러를 다른 사용자로 실행할지 여부를 지정합니다. 작업 생성 중 지정하지 않으면 작업 핸들러는 Device Client와 동일한 사용자로 실행됩니다. 작업 핸들러를 다른 사용자로 실행할 때 256자 이하의 문자열 값을 지정합니다.
pathToHandler
-
디바이스에서 실행 중인 작업 핸들러의 경로입니다. 작업 생성 중 지정하지 않으면 Device Client는 현재 작업 디렉터리를 사용합니다.
다음은 다양한 원격 작업, 작업 문서 및 수락하는 파라미터를 보여줍니다. 이러한 모든 템플릿은 디바이스에서 원격 작업을 실행하기 위한 Linux 환경을 지원합니다.
템플릿 이름
AWS–Download–File
템플릿 설명
파일 다운로드를 위해 AWS에서 제공하는 관리형 템플릿입니다.
입력 파라미터
이 템플릿에는 다음과 같은 필수 파라미터가 있습니다. 선택적 파라미터 runAsUser
및 pathToHandler
를 지정할 수도 있습니다.
downloadUrl
-
파일을 다운로드할 URL입니다. 이 URL은 인터넷 리소스, 공개적으로 액세스할 수 있는 Amazon S3의 객체 또는 미리 서명된 URL을 사용하여 디바이스에서만 액세스할 수 있는 Amazon S3의 객체일 수 있습니다. 미리 서명된 URL 사용 및 권한 부여에 대한 자세한 내용은 미리 서명된 URL 섹션을 참조하세요.
filePath
-
다운로드한 파일을 저장할 디바이스의 위치를 보여주는 로컬 파일 경로입니다.
디바이스 동작
디바이스는 지정된 위치에서 파일을 다운로드하고 다운로드가 완료되었는지 확인한 후 로컬에 저장합니다.
작업 문서
다음은 작업 문서와 최신 버전을 보여줍니다. 템플릿은 작업 핸들러에 대한 경로와 작업 핸들러가 파일을 다운로드하기 위해 실행해야 하는 셸 스크립트(download-file.sh
)를 보여줍니다. 또한 필수 파라미터 downloadUrl
및 filePath
를 보여줍니다.
{ "version": "1.0", "steps": [ { "action": { "name": "Download-File", "type": "runHandler", "input": { "handler": "download-file.sh", "args": [ "${aws:iot:parameter:downloadUrl}", "${aws:iot:parameter:filePath}" ], "path": "${aws:iot:parameter:pathToHandler}" }, "runAsUser": "${aws:iot:parameter:runAsUser}" } } ] }
템플릿 이름
AWS–Install–Application
템플릿 설명
하나 이상의 애플리케이션을 설치하기 위해 AWS에서 제공하는 관리형 템플릿입니다.
입력 파라미터
이 템플릿에는 다음과 같은 필수 파라미터 packages
가 있습니다. 선택적 파라미터 runAsUser
및 pathToHandler
를 지정할 수도 있습니다.
packages
설치할 하나 이상의 애플리케이션의 목록(공백으로 구분)입니다.
디바이스 동작
디바이스가 작업 문서에 지정된 대로 애플리케이션을 설치합니다.
작업 문서
다음은 작업 문서와 최신 버전을 보여줍니다. 템플릿은 작업 핸들러에 대한 경로와 작업 핸들러가 파일을 다운로드하기 위해 실행해야 하는 셸 스크립트(install-packages.sh
)를 보여줍니다. 또한 필수 파라미터 packages
를 보여줍니다.
{ "version": "1.0", "steps": [ { "action": { "name": "Install-Application", "type": "runHandler", "input": { "handler": "install-packages.sh", "args": [ "${aws:iot:parameter:packages}" ], "path": "${aws:iot:parameter:pathToHandler}" }, "runAsUser": "${aws:iot:parameter:runAsUser}" } } ] }
템플릿 이름
AWS–Reboot
템플릿 설명
기기 재부팅을 위해 AWS에서 제공하는 관리형 템플릿입니다.
입력 파라미터
이 템플릿에는 필수 파라미터가 없습니다. 선택적 파라미터 runAsUser
및 pathToHandler
를 지정할 수 있습니다.
디바이스 동작
디바이스가 성공적으로 재부팅됩니다.
작업 문서
다음은 작업 문서와 최신 버전을 보여줍니다. 템플릿은 작업 핸들러에 대한 경로와 작업 핸들러가 디바이스를 재부팅하기 위해 실행해야 하는 셸 스크립트(reboot.sh
)를 보여줍니다.
{ "version": "1.0", "steps": [ { "action": { "name": "Reboot", "type": "runHandler", "input": { "handler": "reboot.sh", "path": "${aws:iot:parameter:pathToHandler}" }, "runAsUser": "${aws:iot:parameter:runAsUser}" } } ] }
템플릿 이름
AWS–Remove–Application
템플릿 설명
하나 이상의 애플리케이션을 제거하기 위해 AWS에서 제공하는 관리형 템플릿입니다.
입력 파라미터
이 템플릿에는 다음과 같은 필수 파라미터 packages
가 있습니다. 선택적 파라미터 runAsUser
및 pathToHandler
를 지정할 수도 있습니다.
packages
제거할 하나 이상의 애플리케이션의 목록(공백으로 구분)입니다.
디바이스 동작
디바이스가 작업 문서에 지정된 대로 애플리케이션을 제거합니다.
작업 문서
다음은 작업 문서와 최신 버전을 보여줍니다. 템플릿은 작업 핸들러에 대한 경로와 작업 핸들러가 파일을 다운로드하기 위해 실행해야 하는 셸 스크립트(remove-packages.sh
)를 보여줍니다. 또한 필수 파라미터 packages
를 보여줍니다.
{ "version": "1.0", "steps": [ { "action": { "name": "Remove-Application", "type": "runHandler", "input": { "handler": "remove-packages.sh", "args": [ "${aws:iot:parameter:packages}" ], "path": "${aws:iot:parameter:pathToHandler}" }, "runAsUser": "${aws:iot:parameter:runAsUser}" } } ] }
템플릿 이름
AWS–Restart–Application
템플릿 설명
하나 이상의 서비스를 중지하고 다시 시작하기 위해 AWS에서 제공하는 관리형 템플릿입니다.
입력 파라미터
이 템플릿에는 다음과 같은 필수 파라미터 services
가 있습니다. 선택적 파라미터 runAsUser
및 pathToHandler
를 지정할 수도 있습니다.
서비스
다시 시작할 하나 이상의 애플리케이션의 목록(공백으로 구분)입니다.
디바이스 동작
지정된 애플리케이션이 중지되었다가 디바이스에서 다시 시작됩니다.
작업 문서
다음은 작업 문서와 최신 버전을 보여줍니다. 템플릿은 작업 핸들러에 대한 경로와 작업 핸들러가 시스템 서비스를 다시 시작하기 위해 실행해야 하는 셸 스크립트(restart-services.sh
)를 보여줍니다. 또한 필수 파라미터 services
를 보여줍니다.
{ "version": "1.0", "steps": [ { "action": { "name": "Restart-Application", "type": "runHandler", "input": { "handler": "restart-services.sh", "args": [ "${aws:iot:parameter:services}" ], "path": "${aws:iot:parameter:pathToHandler}" }, "runAsUser": "${aws:iot:parameter:runAsUser}" } } ] }
템플릿 이름
AWS-Start-Application
템플릿 설명
하나 이상의 서비스를 시작하기 위해 AWS에서 제공하는 관리형 템플릿입니다.
입력 파라미터
이 템플릿에는 다음과 같은 필수 파라미터 services
가 있습니다. 선택적 파라미터 runAsUser
및 pathToHandler
를 지정할 수도 있습니다.
services
시작할 하나 이상의 애플리케이션의 목록(공백으로 구분)입니다.
디바이스 동작
지정된 애플리케이션이 디바이스에서 실행을 시작합니다.
작업 문서
다음은 작업 문서와 최신 버전을 보여줍니다. 템플릿은 작업 핸들러에 대한 경로와 작업 핸들러가 시스템 서비스를 시작하기 위해 실행해야 하는 셸 스크립트(start-services.sh
)를 보여줍니다. 또한 필수 파라미터 services
를 보여줍니다.
{ "version": "1.0", "steps": [ { "action": { "name": "Start-Application", "type": "runHandler", "input": { "handler": "start-services.sh", "args": [ "${aws:iot:parameter:services}" ], "path": "${aws:iot:parameter:pathToHandler}" }, "runAsUser": "${aws:iot:parameter:runAsUser}" } } ] }
템플릿 이름
AWS–Stop–Application
템플릿 설명
하나 이상의 서비스를 중지하기 위해 AWS에서 제공하는 관리형 템플릿입니다.
입력 파라미터
이 템플릿에는 다음과 같은 필수 파라미터 services
가 있습니다. 선택적 파라미터 runAsUser
및 pathToHandler
를 지정할 수도 있습니다.
services
중지할 하나 이상의 애플리케이션의 목록(공백으로 구분)입니다.
디바이스 동작
지정된 애플리케이션이 디바이스에서 실행을 중지합니다.
작업 문서
다음은 작업 문서와 최신 버전을 보여줍니다. 템플릿은 작업 핸들러에 대한 경로와 작업 핸들러가 시스템 서비스를 중지하기 위해 실행해야 하는 셸 스크립트(stop-services.sh
)를 보여줍니다. 또한 필수 파라미터 services
를 보여줍니다.
{ "version": "1.0", "steps": [ { "action": { "name": "Stop-Application", "type": "runHandler", "input": { "handler": "stop-services.sh", "args": [ "${aws:iot:parameter:services}" ], "path": "${aws:iot:parameter:pathToHandler}" }, "runAsUser": "${aws:iot:parameter:runAsUser}" } } ] }
템플릿 이름
AWS–Run–Command
템플릿 설명
쉘 명령을 실행하기 위해 AWS에서 제공하는 관리형 템플릿입니다.
입력 파라미터
이 템플릿에는 다음과 같은 필수 파라미터 command
가 있습니다. 선택적 파라미터 runAsUser
를 지정할 수도 있습니다.
command
쉼표로 구분된 명령 문자열. 명령 자체에 포함된 모든 쉼표는 이스케이프 처리해야 합니다.
디바이스 동작
디바이스는 작업 문서에 지정된 대로 쉘 명령을 실행합니다.
작업 문서
다음은 작업 문서와 최신 버전을 보여줍니다. 템플릿에는 작업 명령의 경로와 디바이스가 실행할 사용자 제공 명령이 표시됩니다.
{ "version": "1.0", "steps": [ { "action": { "name": "Run-Command", "type": "runCommand", "input": { "command": "${aws:iot:parameter:command}" }, "runAsUser": "${aws:iot:parameter:runAsUser}" } } ] }