

# AWS CLI를 사용한 EventBridge 예제
<a name="cli_eventbridge_code_examples"></a>

다음 코드 예제에서는 EventBridge에서 AWS Command Line Interface를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여 줍니다.

*작업*은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 개별 서비스 함수를 직접적으로 호출하는 방법을 보여주며 관련 시나리오의 컨텍스트에 맞는 작업을 볼 수 있습니다.

각 예시에는 전체 소스 코드에 대한 링크가 포함되어 있으며, 여기에서 컨텍스트에 맞춰 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있습니다.

**Topics**
+ [작업](#actions)

## 작업
<a name="actions"></a>

### `delete-rule`
<a name="eventbridge_DeleteRule_cli_topic"></a>

다음 코드 예시는 `delete-rule`의 사용 방법을 보여줍니다.

**AWS CLI**  
**CloudWatch Events 규칙을 삭제하는 방법**  
이 예시에서는 EC2InstanceStateChanges라는 규칙을 삭제합니다.  

```
aws events delete-rule --name "EC2InstanceStateChanges"
```
+  API 세부 정보는 **AWS CLI 명령 참조의 [DeleteRule](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/delete-rule.html)을 참조하세요.

### `describe-rule`
<a name="eventbridge_DescribeRule_cli_topic"></a>

다음 코드 예시는 `describe-rule`의 사용 방법을 보여줍니다.

**AWS CLI**  
**CloudWatch 이벤트 규칙에 대한 정보를 표시하는 방법**  
이 예시에서는 DailyLambdaFunction이라는 규칙에 대한 정보를 표시합니다.  

```
aws events describe-rule --name "DailyLambdaFunction"
```
+  API 세부 정보는 **AWS CLI 명령 참조의 [DescribeRule](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/describe-rule.html)을 참조하세요.

### `disable-rule`
<a name="eventbridge_DisableRule_cli_topic"></a>

다음 코드 예시는 `disable-rule`의 사용 방법을 보여줍니다.

**AWS CLI**  
**CloudWatch 이벤트 규칙을 비활성화하는 방법**  
이 예시에서는 DailyLambdaFunction라는 규칙을 비활성화합니다. 규칙이 삭제되지는 않습니다.  

```
aws events disable-rule --name "DailyLambdaFunction"
```
+  API 세부 정보는 **AWS CLI 명령 참조의 [DisableRule](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/disable-rule.html)을 참조하세요.

### `enable-rule`
<a name="eventbridge_EnableRule_cli_topic"></a>

다음 코드 예시는 `enable-rule`의 사용 방법을 보여줍니다.

**AWS CLI**  
**CloudWatch 이벤트 규칙을 활성화하는 방법**  
이 예시에서는 이전에 비활성화되었던 DailyLambdaFunction이라는 규칙을 활성화합니다.  

```
aws events enable-rule --name "DailyLambdaFunction"
```
+  API 세부 정보는 **AWS CLI 명령 참조의 [EnableRule](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/enable-rule.html)을 참조하세요.

### `list-rule-names-by-target`
<a name="eventbridge_ListRuleNamesByTarget_cli_topic"></a>

다음 코드 예시는 `list-rule-names-by-target`의 사용 방법을 보여줍니다.

**AWS CLI**  
**지정된 대상이 있는 모든 규칙을 표시하는 방법**  
이 예시에서는 이름이 'MyFunctionName'인 Lambda 함수를 대상으로 하는 모든 규칙을 표시합니다.  

```
aws events list-rule-names-by-target --target-arn "arn:aws:lambda:us-east-1:123456789012:function:MyFunctionName"
```
+  API 세부 정보는 **AWS CLI 명령 참조의 [ListRuleNamesByTarget](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/list-rule-names-by-target.html)을 참조하세요.

### `list-rules`
<a name="eventbridge_ListRules_cli_topic"></a>

다음 코드 예시는 `list-rules`의 사용 방법을 보여줍니다.

**AWS CLI**  
**모든 CloudWatch 이벤트 규칙 목록을 표시하는 방법**  
이 예시에서는 해당 리전 내 모든 CloudWatch 이벤트 규칙을 표시합니다.  

```
aws events list-rules
```
**특정 문자열로 시작하는 CloudWatch 이벤트 규칙 목록을 표시하는 방법**  
이 예시에서는 이름이 'Daily'로 시작하는 해당 리전 내 모든 CloudWatch Events 규칙을 표시합니다.  

```
aws events list-rules --name-prefix "Daily"
```
+  API 세부 정보는 **AWS CLI 명령 참조의 [ListRules](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/list-rules.html)를 참조하세요.

### `list-targets-by-rule`
<a name="eventbridge_ListTargetsByRule_cli_topic"></a>

다음 코드 예시는 `list-targets-by-rule`의 사용 방법을 보여줍니다.

**AWS CLI**  
**CloudWatch 이벤트 규칙의 모든 대상을 표시하는 방법**  
이 예시에서는 DailyLambdaFunction이라는 규칙의 모든 대상을 표시합니다.  

```
aws events list-targets-by-rule --rule  "DailyLambdaFunction"
```
+  API 세부 정보는 **AWS CLI 명령 참조의 [ListTargetsByRule](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/list-targets-by-rule.html)을 참조하세요.

### `put-events`
<a name="eventbridge_PutEvents_cli_topic"></a>

다음 코드 예시는 `put-events`의 사용 방법을 보여줍니다.

**AWS CLI**  
**CloudWatch 이벤트에 사용자 지정 이벤트를 전송하는 방법**  
이 예시에서는 CloudWatch 이벤트에 사용자 지정 이벤트를 전송합니다. 이벤트는 putevents.json 파일 내에 포함되어 있습니다.  

```
aws events put-events --entries file://putevents.json
```
putevents.json file 파일의 콘텐츠는 다음과 같습니다.  

```
[
  {
    "Source": "com.mycompany.myapp",
    "Detail": "{ \"key1\": \"value1\", \"key2\": \"value2\" }",
    "Resources": [
      "resource1",
      "resource2"
    ],
    "DetailType": "myDetailType"
  },
  {
    "Source": "com.mycompany.myapp",
    "Detail": "{ \"key1\": \"value3\", \"key2\": \"value4\" }",
    "Resources": [
      "resource1",
      "resource2"
    ],
    "DetailType": "myDetailType"
   }
]
```
+  API 세부 정보는 **AWS CLI 명령 참조의 [PutEvents](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/put-events.html)를 참조하세요.

### `put-rule`
<a name="eventbridge_PutRule_cli_topic"></a>

다음 코드 예시는 `put-rule`의 사용 방법을 보여줍니다.

**AWS CLI**  
**CloudWatch Events 규칙을 생성하는 방법**  
이 예시에서는 매일 오전 09:00(UTC)에 트리거되는 규칙을 생성합니다. put-targets를 사용하여 Lambda 함수를 이 규칙의 대상으로 추가하는 경우 매일 지정된 시간에 Lambda 함수를 실행할 수 있습니다.  

```
aws events put-rule --name "DailyLambdaFunction" --schedule-expression "cron(0 9 * * ? *)"
```
이 예시에서는 리전 내 EC2 인스턴스가 상태가 변경될 때 트리거되는 규칙을 생성합니다.  

```
aws events put-rule --name "EC2InstanceStateChanges" --event-pattern "{\"source\":[\"aws.ec2\"],\"detail-type\":[\"EC2 Instance State-change Notification\"]}"  --role-arn "arn:aws:iam::123456789012:role/MyRoleForThisRule"
```
이 예시에서는 리전 내 EC2 인스턴스가 정지 또는 종료될 때 트리거되는 규칙을 생성합니다.  

```
aws events put-rule --name "EC2InstanceStateChangeStopOrTerminate" --event-pattern "{\"source\":[\"aws.ec2\"],\"detail-type\":[\"EC2 Instance State-change Notification\"],\"detail\":{\"state\":[\"stopped\",\"terminated\"]}}" --role-arn "arn:aws:iam::123456789012:role/MyRoleForThisRule"
```
+  API 세부 정보는 **AWS CLI 명령 참조의 [PutRule](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/put-rule.html)을 참조하세요.

### `put-targets`
<a name="eventbridge_PutTargets_cli_topic"></a>

다음 코드 예시는 `put-targets`의 사용 방법을 보여줍니다.

**AWS CLI**  
**CloudWatch 이벤트 규칙에 대상을 추가하는 방법**  
다음 예시에서는 Lambda 함수를 규칙 대상으로 추가합니다.  

```
aws events put-targets --rule DailyLambdaFunction --targets "Id"="1","Arn"="arn:aws:lambda:us-east-1:123456789012:function:MyFunctionName"
```
이 예시에서는 Amazon Kinesis 스트림을 대상으로 설정하여 이 규칙에 의해 포착된 이벤트가 스트림으로 전달되도록 합니다.  

```
aws events put-targets --rule EC2InstanceStateChanges --targets "Id"="1","Arn"="arn:aws:kinesis:us-east-1:123456789012:stream/MyStream","RoleArn"="arn:aws:iam::123456789012:role/MyRoleForThisRule"
```
이 예시에서는 두 개의 Amazon Kinesis 스트림을 하나의 규칙 대상으로 설정합니다.  

```
aws events put-targets --rule DailyLambdaFunction --targets "Id"="Target1","Arn"="arn:aws:kinesis:us-east-1:379642911888:stream/MyStream1","RoleArn"="arn:aws:iam::379642911888:role/ MyRoleToAccessLambda"  "Id"="Target2"," Arn"="arn:aws:kinesis:us-east-1:379642911888:stream/MyStream2","RoleArn"="arn:aws:iam::379642911888:role/MyRoleToAccessLambda"
```
+  API 세부 정보는 **AWS CLI 명령 참조의 [PutTargets](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/put-targets.html)를 참조하세요 

### `remove-targets`
<a name="eventbridge_RemoveTargets_cli_topic"></a>

다음 코드 예시는 `remove-targets`의 사용 방법을 보여줍니다.

**AWS CLI**  
**이벤트 대상을 제거하는 방법**  
이 예시에서는 MyStream1이라는 이름의 Amazon Kinesis 스트림을 DailyLambdaFunction 규칙의 대상에서 제거합니다. DailyLambdaFunction을 생성할 때 이 스트림은 ID가 Target1인 대상으로 설정되었습니다.  

```
aws events remove-targets --rule "DailyLambdaFunction" --ids "Target1"
```
+  API 세부 정보는 **AWS CLI 명령 참조의 [RemoveTargets](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/remove-targets.html)를 참조하세요.

### `test-event-pattern`
<a name="eventbridge_TestEventPattern_cli_topic"></a>

다음 코드 예시는 `test-event-pattern`의 사용 방법을 보여줍니다.

**AWS CLI**  
**이벤트 패턴이 지정된 이벤트와 일치하는지 확인하는 방법**  
이 예제에서는 패턴 'source:com.mycompany.myapp'이 지정된 이벤트와 일치하는지 테스트합니다. 이 예제에서 출력은 'true'입니다.  

```
aws events test-event-pattern --event-pattern "{\"source\":[\"com.mycompany.myapp\"]}" --event "{\"id\":\"1\",\"source\":\"com.mycompany.myapp\",\"detail-type\":\"myDetailType\",\"account\":\"123456789012\",\"region\":\"us-east-1\",\"time\":\"2017-04-11T20:11:04Z\"}"
```
+  API 세부 정보는 *AWS CLI 명령 참조*의 [TestEventPattern](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/events/test-event-pattern.html)을 참조하세요.