

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

# HTTP
<a name="https-rule-action"></a>

HTTPS(`http`) 작업은 MQTT 메시지의 데이터를 HTTPS 엔드포인트로 전송합니다. HTTPS 엔드포인트는 웹 애플리케이션 또는 서비스를 가리킬 수 있습니다.

## 요구 사항
<a name="https-rule-action-requirements"></a>

이 규칙 작업은 다음 요구 사항을 충족해야 합니다.
+ 규칙 엔진에서 사용하려면 먼저 HTTPS 엔드포인트를 확인하고 활성화해야 합니다. 자세한 내용은 [HTTP 작업 대상](http-action-destination.md) 단원을 참조하십시오.

## 파라미터
<a name="https-rule-action-parameters"></a>

이 작업으로 AWS IoT 규칙을 생성할 때 다음 정보를 지정해야 합니다.

`url`  
메시지가 HTTP POST 메서드를 사용하여 전송되는 HTTPS 엔드포인트입니다. 호스트 이름 대신 IP 주소를 사용하는 경우 IPv4 주소여야 합니다. IPv6 주소는 지원하지 않습니다.  
[대체 템플릿](iot-substitution-templates.md) 지원: 예

`confirmationUrl`  
(선택 사항) 지정된 경우 확인 URL을 AWS IoT 사용하여 일치하는 주제 규칙 대상을 생성합니다. HTTP 작업에서 사용하기 전에 HTTP 작업 대상을 활성화해야 합니다. 자세한 내용은 [HTTP 작업 대상](http-action-destination.md) 단원을 참조하십시오. 대체 템플릿을 사용하는 경우 작업을 `http` 사용하려면 먼저 HTTP 작업 대상을 수동으로 생성해야 합니다.는 접두사여야 `confirmationUrl` 합니다`url`.  
`url`과 `confirmationUrl` 사이의 관계는 다음으로 설명됩니다.  
+ `url`가 하드코딩되고 `confirmationUrl`가 제공되지 않은 경우 `url` 필드를 로 암시적으로 취급합니다`confirmationUrl`.는에 대한 주제 규칙 대상을 AWS IoT 생성합니다`url`.
+ `url` 및 `confirmationUrl`가 하드코딩된 경우는 로 시작해야 `url` 합니다`confirmationUrl`.는에 대한 주제 규칙 대상을 AWS IoT 생성합니다`confirmationUrl`.
+ `url`에 대체 템플릿이 포함되어 있는 경우 `confirmationUrl`을 지정하고 `url`은 `confirmationUrl`로 시작해야 합니다. 에 대체 템플릿이 `confirmationUrl` 포함된 경우 HTTP 작업 대상을 수동으로 생성해야 `http` 작업을 사용할 수 있습니다. `confirmationUrl`에 대체 템플릿이 포함되어 있지 않은 경우는에 대한 주제 규칙 대상을 AWS IoT 생성합니다`confirmationUrl`.
[대체 템플릿](iot-substitution-templates.md) 지원: 예

`headers`  
(선택 사항) 엔드포인트에 대한 HTTP 요청에 포함할 헤더 목록입니다. 각 헤더에는 다음 정보가 포함되어야 합니다.    
`key`  
헤더의 키입니다.  
[대체 템플릿](iot-substitution-templates.md) 지원: 아니요  
`value`  
헤더의 값  
[대체 템플릿](iot-substitution-templates.md) 지원: 예
페이로드가 JSON 형식일 때 기본 콘텐츠 유형은 application/json입니다. 그렇지 않으면 application/octet-stream입니다. 키 콘텐츠 유형(대/소문자 구분 없음)으로 헤더에서 정확한 콘텐츠 유형을 지정하여 덮어쓸 수 있습니다.

`auth`  
(선택 사항) `url` 인수에 지정된 엔드포인트 URL에 연결하기 위해 규칙 엔진에서 사용하는 인증입니다. 현재 서명 버전 4는 유일하게 지원되는 인증 유형입니다. 자세한 내용은 [HTTP 권한 부여](https://docs.aws.amazon.com/iot/latest/apireference/API_HttpAuthorization.html)를 참조하세요.  
[대체 템플릿](iot-substitution-templates.md) 지원: 아니요

`enableBatching`  
(선택 사항) HTTP 작업 메시지를 지정된 URL에 대한 단일 요청으로 처리할지 여부입니다. 값은 true 또는 false일 수 있습니다. 일괄 처리에 대한 자세한 내용은 [HTTP 작업 메시지 일괄 처리를 참조하세요](http_batching.md).  
부울 값  
[대체 템플릿](iot-substitution-templates.md) 지원: 아니오

`batchConfig`  
(선택 사항) 일괄 처리를 위한 구성 설정입니다. 활성화되면 `batchConfig` 파라미터를 지정해야 합니다. `batchConfig` 파라미터를 지정하지 않으면 기본값이 사용됩니다.    
`maxBatchOpenMs`  
발신 메시지가 다른 메시지가 배치를 생성할 때까지 대기하는 최대 시간(밀리초)입니다. 설정이 높을수록 일괄 HTTP 작업의 지연 시간이 길어집니다.  
최소값: 5ms. 최댓값: 200ms.  
기본값: 20ms  
[대체 템플릿](iot-substitution-templates.md) 지원: 아니오  
`maxBatchSize`  
단일 작업 실행에서 함께 일괄 처리되는 최대 메시지 수입니다.  
[대체 템플릿](iot-substitution-templates.md) 지원: 아니오  
최솟값: 메시지 2개. 최대값: 메시지 10개  
기본값: 메시지 10개  
`maxBatchSizeBytes`  
메시지 배치의 최대 크기, 바이트 단위.  
최소값: 100바이트. 최대값: 131,072바이트  
기본값: 5,120바이트  
[대체 템플릿](iot-substitution-templates.md) 지원: 아니오
페이로드가 JSON 형식일 때 기본 콘텐츠 유형은 application/json입니다. 그렇지 않으면 application/octet-stream입니다. 키 콘텐츠 유형(대/소문자 구분 없음)으로 헤더에서 정확한 콘텐츠 유형을 지정하여 덮어쓸 수 있습니다.

## 예제
<a name="https-rule-action-examples"></a>

다음 JSON 예제에서는 HTTP 작업을 사용하여 AWS IoT 규칙을 정의합니다.

```
{
    "topicRulePayload": {
        "sql": "SELECT * FROM 'some/topic'", 
        "ruleDisabled": false,
        "awsIotSqlVersion": "2016-03-23", 
        "actions": [
            { 
                "http": { 
                    "url": "https://www.example.com/subpath",
                    "confirmationUrl": "https://www.example.com", 
                    "headers": [
                        { 
                            "key": "static_header_key", 
                            "value": "static_header_value" 
                        },
                        { 
                            "key": "substitutable_header_key", 
                            "value": "${value_from_payload}" 
                        }
                    ] 
                } 
            }
        ]
    }
}
```

```
"http": { 
    "url": "https://www.example.com/subpath",
    "confirmationUrl": "https://www.example.com", 
    "headers": [
        { 
            "key": "Content-Type",
            "value": "application/json"
          }
    ],
    "enableBatching": true, 
    "batchConfig": {     
      "maxBatchOpenMs": 123, 
      "maxBatchSize": 5, 
      "maxBatchSizeBytes": 131072,
     }
 },
 "errorAction": { 
        "http": { 
            "url": "https://www.example.com/subpath",
            "confirmationUrl": "https://www.example.com"
            // batchConfig is not allowed here
        }
}
```

## HTTP 작업 재시도 논리
<a name="https-rule-action-retry-logic"></a>

 AWS IoT 규칙 엔진은 다음 규칙에 따라 HTTP 작업을 재시도합니다.
+ 규칙 엔진은 메시지를 한 번 이상 전송하려고 시도합니다.
+ 규칙 엔진은 최대 두 번 재시도합니다. 최대 시도 횟수는 3회입니다.
+ 규칙 엔진은 다음과 같은 경우 재시도를 수행하지 않습니다.
  + 이전 시도에서 16,384바이트보다 큰 응답을 제공했습니다.
  + 시도 후 다운스트림 웹 서비스 또는 애플리케이션에서 TCP 연결을 닫습니다.
  + 재시도로 요청을 완료하는 데 걸리는 총 시간이 요청 제한 시간 한도를 초과했습니다.
  + 이 요청이 429, 500-599 이외의 HTTP 상태 코드를 반환합니다.

**참고**  
[표준 데이터 전송 비용](https://aws.amazon.com/ec2/pricing/on-demand/)이 재시도에 적용됩니다.

## 다음 사항도 참조하세요.
<a name="https-rule-action-see-also"></a>
+ [HTTP 작업 메시지 배치 처리](http_batching.md)
+ [HTTP 작업 대상](http-action-destination.md)
+ 블로그*의 사물 인터넷 AWS*에서 [에서 AWS IoT Core 웹 서비스로 직접 데이터 라우팅](https://aws.amazon.com/blogs/iot/route-data-directly-from-iot-core-to-your-web-services/) 