

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

# AWS 관리형 템플릿을 사용하여 일반적인 원격 작업 배포
<a name="job-templates-managed"></a>

AWS 관리형 템플릿은에서 제공하는 작업 템플릿입니다 AWS. 재부팅, 파일 다운로드, 디바이스에 애플리케이션 설치와 같이 자주 수행되는 원격 작업에 사용됩니다. 이러한 템플릿에는 각 원격 작업에 대해 미리 정의된 작업 문서가 있으므로 고유한 작업 문서를 생성할 필요가 없습니다.

미리 정의된 구성 집합에서 선택하고 추가 코드를 작성하지 않고도 이러한 템플릿을 사용하여 작업을 생성할 수 있습니다. 관리형 템플릿을 사용하여 플릿에 배포된 작업 문서를 볼 수 있습니다. 이러한 템플릿으로 작업을 생성하고 원격 작업에 다시 사용할 수 있는 사용자 정의 작업 템플릿을 생성할 수 있습니다.

## 관리형 템플릿에는 무엇이 포함되어 있나요?
<a name="job-template-managed-contains"></a>

각 AWS 관리형 템플릿에는 다음이 포함됩니다.
+ 작업 문서에서 명령을 실행할 환경.
+ 작업 이름과 해당 파라미터를 지정하는 작업 문서입니다. 예를 들어 **파일 다운로드(Download file)** 템플릿을 사용하는 경우 작업 이름은 *파일 다운로드(Download file)*이고 파라미터는 다음과 같을 수 있습니다.
  + 디바이스에 다운로드하려는 파일의 URL입니다. 이 URL은 인터넷 리소스이거나 퍼블릭 또는 사전 서명된 Amazon Simple Storage Service(S3) URL일 수 있습니다.
  + 다운로드한 파일을 저장할 디바이스의 로컬 파일 경로입니다.

  작업 문서와 해당 파라미터에 대한 자세한 내용은 [관리형 템플릿 원격 작업 및 작업 문서](#job-template-manage-actions) 섹션을 참조하세요.

## 사전 조건
<a name="job-template-managed-prereq"></a>

디바이스에서 관리형 템플릿 작업 문서에 지정된 원격 작업을 디바이스에서 실행하려면 다음을 수행해야 합니다.
+ **디바이스에 특정 소프트웨어 설치**

  자체 디바이스 소프트웨어 및 작업 핸들러 또는 AWS IoT Device Client를 사용합니다. 비즈니스 사례에 따라 서로 다른 기능을 수행하도록 둘 다 실행할 수도 있습니다.
  +  **자체 디바이스 소프트웨어 및 작업 핸들러 사용**

     AWS IoT Device SDK 와 원격 작업을 지원하는 핸들러 라이브러리를 사용하여 디바이스에 대한 고유한 코드를 작성할 수 있습니다. 작업을 배포하고 실행하려면 디바이스 에이전트 라이브러리가 올바르게 설치되었고 이러한 디바이스에서 실행 중인지 확인합니다.

    원격 작업을 지원하는 자체 핸들러를 사용하도록 선택할 수도 있습니다. 자세한 내용은 AWS IoT Device Client GitHub 리포지토리의 [샘플 작업 핸들러](https://github.com/awslabs/aws-iot-device-client/tree/main/sample-job-handlers)를 참조하세요.
  +  ** AWS IoT 디바이스 클라이언트 사용**

    또는 기본적으로 콘솔에서 직접 모든 관리형 템플릿 사용을 지원하므로 디바이스에 AWS IoT Device Client를 설치하고 실행할 수 있습니다.

    Device Client는 임베디드 Linux 기반 IoT 디바이스에 컴파일하고 설치할 수 있는 C\+\+로 작성된 오픈 소스 소프트웨어입니다. Device Client에는 *기본 클라이언트*와 개별 *클라이언트 측 기능*이 있습니다. 기본 클라이언트는 MQTT 프로토콜을 AWS IoT 통해와 연결을 설정하고 다양한 클라이언트 측 기능과 연결할 수 있습니다.

    디바이스에서 원격 작업을 수행하려면 Device Client의 *클라이언트 측 작업 기능*을 사용합니다. 이 기능에는 작업 문서를 수신하는 파서와 작업 문서에 지정된 원격 작업을 구현하는 작업 핸들러가 포함되어 있습니다. Device Client와 해당 기능에 대한 자세한 내용은 [AWS IoT Device Client](https://github.com/awslabs/aws-iot-device-client#readme)를 참조하세요.

    디바이스에서 실행할 때 Device Client는 작업 문서를 수신하고 문서에서 명령을 실행하는 데 사용하는 플랫폼별 구현을 갖습니다. Device Client 설정 및 작업 기능에 대한 자세한 내용은 [AWS IoT 자습서](https://docs.aws.amazon.com/iot/latest/developerguide/iot-tutorials.html)를 참조하세요.
+  **지원되는 환경 사용**

  각 관리형 템플릿에 대해 원격 작업을 실행하는 데 사용할 수 있는 환경에 대한 정보를 찾을 수 있습니다. 템플릿에 지정된 대로 지원되는 Linux 환경에서 템플릿을 사용하는 것이 좋습니다. AWS IoT Device Client는 Debian 및 Ubuntu와 같은 일반적인 마이크로프로세서 및 Linux 환경을 지원하므로 관리형 템플릿 원격 작업을 실행하려면 Device Client를 사용합니다.

## 관리형 템플릿 원격 작업 및 작업 문서
<a name="job-template-manage-actions"></a>

다음 섹션에서는 AWS IoT 작업에 대한 다양한 AWS 관리형 템플릿을 나열하고 디바이스에서 수행할 수 있는 원격 작업을 설명합니다. 아래 섹션에는 작업 문서에 대한 정보와 각 원격 작업의 작업 문서 파라미터에 대한 정보가 있습니다. 디바이스 측 소프트웨어는 템플릿 이름과 파라미터를 사용하여 원격 작업을 수행합니다.

AWS 관리형 템플릿은 템플릿을 사용하여 작업을 생성할 때 값을 지정하는 입력 파라미터를 수락합니다. 모든 관리형 템플릿에는 `runAsUser` 및 `pathToHandler`의 두 가지 선택적 파라미터가 공통적으로 있습니다. `AWS-Reboot` 템플릿을 제외한 나머지 템플릿을 사용하려면 템플릿을 사용하여 작업을 생성할 때 값을 지정해야 하는 추가 입력 파라미터가 필요합니다. 이 필수 입력 파라미터는 사용자가 선택하는 템플릿에 따라 달라집니다. 예를 들어, `AWS-Download-File` 템플릿을 선택하는 경우 설치할 패키지 목록 및 파일을 다운로드할 URL을 지정해야 합니다.

 AWS IoT 콘솔 또는 AWS Command Line Interface (AWS CLI)를 사용하여 관리형 템플릿을 사용하는 작업을 생성할 때 입력 파라미터의 값을 지정합니다. CLI를 사용할 때는 `document-parameters` 객체를 사용하여 이러한 값을 제공합니다. 자세한 내용은 [documentParameters](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html#iot-CreateJob-request-documentParameters)를 참조하세요.

**참고**  
 AWS 관리형 템플릿에서 작업을 생성할 때만 `document-parameters`를 사용합니다. 이 파라미터는 사용자 지정 작업 템플릿과 함께 사용하거나 이러한 템플릿에서 작업을 생성하는 데 사용할 수 없습니다.

다음은 일반적인 선택적 입력 파라미터에 대한 설명을 보여줍니다. 다음 섹션에서 각 관리형 템플릿에 필요한 다른 입력 파라미터에 대한 설명을 확인할 수 있습니다.

`runAsUser`  
이 파라미터는 작업 핸들러를 다른 사용자로 실행할지 여부를 지정합니다. 작업 생성 중 지정하지 않으면 작업 핸들러는 Device Client와 동일한 사용자로 실행됩니다. 작업 핸들러를 다른 사용자로 실행할 때 256자 이하의 문자열 값을 지정합니다.

`pathToHandler`  
디바이스에서 실행 중인 작업 핸들러의 경로입니다. 작업 생성 중 지정하지 않으면 Device Client는 현재 작업 디렉터리를 사용합니다.

다음은 다양한 원격 작업, 작업 문서 및 수락하는 파라미터를 보여줍니다. 이러한 모든 템플릿은 디바이스에서 원격 작업을 실행하기 위한 Linux 환경을 지원합니다.

### AWS–Download–File
<a name="download-managed-template"></a>

**템플릿 이름**  
`AWS–Download–File`

**템플릿 설명**  
파일을 다운로드하기 AWS 위해에서 제공하는 관리형 템플릿입니다.

**입력 파라미터**  
이 템플릿에는 다음과 같은 필수 파라미터가 있습니다. 선택적 파라미터 `runAsUser` 및 `pathToHandler`를 지정할 수도 있습니다.

`downloadUrl`  
파일을 다운로드할 URL입니다. 이 URL은 인터넷 리소스, 공개적으로 액세스할 수 있는 Amazon S3의 객체 또는 미리 서명된 URL을 사용하여 디바이스에서만 액세스할 수 있는 Amazon S3의 객체일 수 있습니다. 미리 서명된 URL 사용 및 권한 부여에 대한 자세한 내용은 [미리 서명된 URL](create-manage-jobs.md#create-manage-jobs-presigned-URLs) 섹션을 참조하세요.

`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
<a name="install-managed-template"></a>

**템플릿 이름**  
`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
<a name="reboot-managed-template"></a>

**템플릿 이름**  
`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
<a name="uninstall-managed-template"></a>

**템플릿 이름**  
`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
<a name="restartsvs-managed-template"></a>

**템플릿 이름**  
`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
<a name="startsvs-managed-template"></a>

**템플릿 이름**  
`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
<a name="stopsvs-managed-template"></a>

**템플릿 이름**  
`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
<a name="runsvs-command-managed-template"></a>

**템플릿 이름**  
`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}"
      }
    }
  ]
}
```

**Topics**
+ [관리형 템플릿에는 무엇이 포함되어 있나요?](#job-template-managed-contains)
+ [사전 조건](#job-template-managed-prereq)
+ [관리형 템플릿 원격 작업 및 작업 문서](#job-template-manage-actions)
+ [를 사용하여 AWS 관리형 템플릿에서 작업 생성 AWS Management Console](job-template-manage-console-create.md)
+ [를 사용하여 AWS 관리형 템플릿에서 작업 생성 AWS CLI](job-template-manage-cli-create.md)