

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

# 3단계: 사용자 지정 AWS AppConfig 확장 생성
<a name="working-with-appconfig-extensions-creating-custom-extensions"></a>



확장은 AWS AppConfig 워크플로 중에 수행하는 하나 이상의 작업을 정의합니다. 예를 들어 작성 AWS `AWS AppConfig deployment events to Amazon SNS` 확장에는 Amazon SNS 주제에 알림을 보내는 작업이 포함됩니다. 각 작업은와 상호 작용 AWS AppConfig 하거나가 사용자를 대신하여 프로세스를 AWS AppConfig 수행할 때 호출됩니다. 이를 *작업 포인트* AWS AppConfig 확장이라고 하며 다음 작업 포인트를 지원합니다.

**PRE\$1\$1 액션 포인트**: `PRE_*` 액션 포인트에 구성된 확장 액션은 요청 유효성 검사 후, AWS AppConfig 가 액션 포인트 이름에 해당하는 활동을 수행하기 전에 적용됩니다. 이러한 액션은 요청과 동시에 처리됩니다. 요청이 두 개 이상 이루어진 경우 액션 간접 호출은 순차적으로 실행됩니다. 또한 `PRE_*` 액션 포인트는 구성 내용을 수신하고 변경할 수 있다는 점에 유의하십시오. `PRE_*` 액션 포인트는 오류에 대응하여 조치가 취해지는 것을 방지할 수도 있습니다.
+ `PRE_CREATE_HOSTED_CONFIGURATION_VERSION`
+ `PRE_START_DEPLOYMENT`

**ON\$1\$1 작업 포인트**: 확장은 `ON_*` 작업 포인트를 사용하여 AWS AppConfig 워크플로와 병렬로 실행할 수도 있습니다. `ON_*` 작업 포인트는 비동기적으로 호출됩니다. `ON_*` 작업 포인트는 구성의 콘텐츠를 수신하지 않습니다. `ON_*` 액션 포인트 중에 확장에 오류가 발생하는 경우 서비스는 오류를 무시하고 워크플로우를 계속합니다.
+ `ON_DEPLOYMENT_START`
+ `ON_DEPLOYMENT_STEP`
+ `ON_DEPLOYMENT_BAKING`
+ `ON_DEPLOYMENT_COMPLETE`
+ `ON_DEPLOYMENT_ROLLED_BACK`

**AT\$1\$1 액션 포인트**: `AT_*` 액션 포인트에 구성된 확장 작업은 동기적으로 간접 호출되며 이는 AWS AppConfig 워크플로와 병렬로 수행됩니다. `AT_*` 액션 포인트 중에 확장에 오류가 발생하는 경우 서비스는 워크플로를 중단하고 배포를 롤백합니다.
+ `AT_DEPLOYMENT_TICK`

`AT_DEPLOYMENT_TICK` 액션 포인트는 서드 파티 모니터링 통합을 지원합니다. `AT_DEPLOYMENT_TICK`은 구성 배포 처리 오케스트레이션 중에 간접적으로 호출됩니다. 타사 모니터링 솔루션(예: Datadog 또는 New Relic)을 사용하는 경우 `AT_DEPLOYMENT_TICK` 작업 지점에서 경보를 확인하는 AWS AppConfig 확장을 생성하고, 안전 가드레일로 경보를 트리거한 경우 배포를 롤백할 수 있습니다.

Datadog 또는 New Relic과 같은 타사 모니터링 솔루션을 사용하는 경우 `AT_DEPLOYMENT_TICK` 작업 지점에서 경보를 확인하는 AWS AppConfig 확장을 생성하고 안전 가드레일로 경보를 트리거한 경우 배포를 롤백할 수 있습니다. 자세한 내용은 GitHub에서 다음 Datadog 및 New Relic 통합 예제를 참조하세요.
+ [Datadog](https://github.com/aws-samples/aws-appconfig-tick-extn-for-datadog)
+ [New Relic](https://github.com/aws-samples/sample-aws-appconfig-tick-extn-for-newrelic)

 AWS AppConfig 확장에 대한 자세한 내용은 다음 주제를 참조하세요.
+ [확장을 사용하여 AWS AppConfig 워크플로 확장](working-with-appconfig-extensions.md)
+ [연습: 사용자 지정 AWS AppConfig 확장 생성](working-with-appconfig-extensions-creating-custom.md)

**샘플 확장**  
다음 샘플 확장은 `PRE_CREATE_HOSTED_CONFIGURATION_VERSION` 액션 포인트를 호출하는 하나의 액션을 정의합니다. `Uri` 필드에서, 액션은 이 연습의 앞부분에서 생성한 `MyS3ConfigurationBackUpExtension` Lambda 함수의 Amazon 리소스 이름(ARN)을 지정합니다. 또한이 작업은이 연습의 앞부분에서 생성된 AWS Identity and Access Management (IAM) 수임 역할 ARN을 지정합니다.

**샘플 AWS AppConfig 확장**

```
{
    "Name": "MySampleExtension",
    "Description": "A sample extension that backs up configurations to an S3 bucket.",
    "Actions": {
        "PRE_CREATE_HOSTED_CONFIGURATION_VERSION": [
            {
                "Name": "PreCreateHostedConfigVersionActionForS3Backup",
                "Uri": "arn:aws:lambda:aws-region:111122223333:function:MyS3ConfigurationBackUpExtension",
                "RoleArn": "arn:aws:iam::111122223333:role/ExtensionsTestRole"
            }
        ]
    },
    "Parameters" : {
        "S3_BUCKET": {
            "Required": false
        }
    }
}
```

**참고**  
확장을 만들 때 요청 구문과 필드 설명을 보려면 *AWS AppConfig API* 참조의 [CreateExtension](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_CreateExtension.html) 주제를 참조하십시오.

**확장을 만들려면(콘솔)**

1. [https://console.aws.amazon.com/systems-manager/appconfig/](https://console.aws.amazon.com/systems-manager/appconfig/) AWS Systems Manager 콘솔을 엽니다.

1. 탐색 창에서 **AWS AppConfig**를 선택합니다.

1. **확장** 탭에서 **확장 생성**을 선택합니다.

1. **확장 이름**에 고유한 이름을 입력합니다. 이 연습에서는 **MyS3ConfigurationBackUpExtension**을 입력합니다. 필요한 경우 설명을 입력합니다.

1. **액션** 섹션에서 **새 액션 추가**를 선택합니다.

1. **액션 이름**에 고유한 이름을 입력합니다. 이 연습에서는 **PreCreateHostedConfigVersionActionForS3Backup**을 입력합니다. 이 이름은 액션에서 사용하는 액션 포인트와 확장 용도를 설명합니다.

1. **액션 포인트** 목록에서 **PRE\$1CREATE\$1HOSTED\$1CONFIGURATION\$1VERSION**을 선택합니다.

1. **Uri**의 경우, **Lambda 함수**를 선택한 다음 **Lambda 함수** 목록에서 함수를 선택합니다. 함수가 표시되지 않으면 함수를 생성한 AWS 리전 위치와 동일한에 있는지 확인합니다.

1. **IAM 역할**의 경우, 이 연습의 앞부분에서 생성한 역할을 선택하십시오.

1. **확장 파라미터(선택 사항)** 섹션에서 **새 파라미터 추가**를 선택합니다.

1. **파라미터 이름**에 이름을 입력합니다. 이 연습에서는 **S3\$1BUCKET**을 입력합니다.

1. 5\$111단계를 반복하여 `PRE_START_DEPLOYMENT` 액션 포인트에 사용할 두 번째 액션을 생성합니다.

1. **확장 생성**을 선택합니다.

# AWS 승인된 알림 확장 사용자 지정
<a name="working-with-appconfig-extensions-creating-custom-notification"></a>

Lambda 또는 확장을 생성하지 않아도 [AWS 작성 알림 확장](https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions-about-predefined.html)을 사용할 수 있습니다. 확장 연결을 생성한 다음 지원되는 액션 포인트 중 하나를 호출하는 작업을 수행하기만 하면 됩니다. 기본적으로 AWS 작성된 알림 확장은 다음 작업 포인트를 지원합니다.
+ `ON_DEPLOYMENT_START`
+ `ON_DEPLOYMENT_COMPLETE`
+ `ON_DEPLOYMENT_ROLLED_BACK`

`AWS AppConfig deployment events to Amazon SQS` 확장 및 `AWS AppConfig deployment events to Amazon SNS` 확장의 사용자 지정 버전을 생성하는 경우 알림을 받을 액션 포인트를 지정할 수 있습니다.

**참고**  
`AWS AppConfig deployment events to EventBridge` 확장은 `PRE_*` 액션 포인트를 지원하지 않습니다. AWS 작성 버전에 할당된 일부 기본 작업 지점을 제거하려면 사용자 지정 버전을 생성할 수 있습니다.

 AWS 작성 알림 확장의 사용자 지정 버전을 생성하는 경우 Lambda 함수를 생성할 필요가 없습니다. 새 확장 버전의 `Uri` 필드에 Amazon 리소스 이름(ARN)을 지정하기만 하면 됩니다.
+ 사용자 지정 EventBridge 알림 확장의 경우 `Uri` 필드에 EventBridge 기본 이벤트의 ARN을 입력하십시오.
+ 사용자 지정 Amazon SNS 알림 확장의 경우 `Uri` 필드에 Amazon SNS 주제의 ARN을 입력합니다.
+ 사용자 지정 Amazon SQS 알림 확장의 경우 `Uri` 필드에 Amazon SQS 메시지 대기열의 ARN을 입력합니다.