

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

# Amazon EventBridge를 사용해 SaaS 파트너로부터 이벤트 수신
<a name="eb-saas"></a>

SaaS 파트너 애플리케이션과 서비스에서 *이벤트*를 수신하려면 파트너의 파트너 이벤트 소스가 필요합니다. 파트너 이벤트 소스는 파트너가 생성한 리소스를 이벤트 소스로 수락할 수 있는 리소스입니다. 파트너 이벤트 소스를 수락하려면, 사용자 지정 이벤트 버스를 생성하고 이를 파트너 이벤트 소스와 일치시킵니다.

![\[SaaS 파트너는 파트너 이벤트 소스로 이벤트를 전송하고, 해당 소스는 이 이벤트를 파트너 이벤트 버스로 전송합니다.\]](http://docs.aws.amazon.com/ko_kr/eventbridge/latest/userguide/images/bus-saas_eventbridge_conceptual.svg)


 다음 동영상에서는 EventBridge와의 SaaS 통합을 다룹니다.




**Topics**
+ [지원되는 SaaS 파트너 통합](#eb-supported-integrations)
+ [SaaS 통합에서 이벤트를 수신하도록 Amazon EventBridge 구성](#eb-saas-integration)
+ [Amazon EventBridge의 AWS Lambda 함수 URL에서 SaaS 이벤트 수신 URLs](eb-saas-furls.md)
+ [Amazon EventBridge에서 Salesforce로부터 이벤트 수신](eb-saas-salesforce.md)

## 지원되는 SaaS 파트너 통합
<a name="eb-supported-integrations"></a>

EventBridge는 다음과 같은 SaaS 파트너 통합을 지원합니다.
+ [https://console.aws.amazon.com/events/#/partners/adobe.com?page=overview](https://console.aws.amazon.com/events/#/partners/adobe.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/appflow-salesforce.com?page=overview](https://console.aws.amazon.com/events/#/partners/appflow-salesforce.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/apptrail.com?page=overview](https://console.aws.amazon.com/events/#/partners/apptrail.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/atlan.com?page=overview](https://console.aws.amazon.com/events/#/partners/atlan.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/auth0.com?page=overview](https://console.aws.amazon.com/events/#/partners/auth0.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/authress.io?page=overview](https://console.aws.amazon.com/events/#/partners/authress.io?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/benchling.com?page=overview](https://console.aws.amazon.com/events/#/partners/benchling.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/bigcommerce.com?page=overview](https://console.aws.amazon.com/events/#/partners/bigcommerce.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/blitline.com?page=overview](https://console.aws.amazon.com/events/#/partners/blitline.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/buildkite.com?page=overview](https://console.aws.amazon.com/events/#/partners/buildkite.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/chargebee.com?page=overview](https://console.aws.amazon.com/events/#/partners/chargebee.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/checkout.com?page=overview](https://console.aws.amazon.com/events/#/partners/checkout.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/clevertap.com?page=overview](https://console.aws.amazon.com/events/#/partners/clevertap.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/cloudamqp.com?page=overview](https://console.aws.amazon.com/events/#/partners/cloudamqp.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/commercetools.com?page=overview](https://console.aws.amazon.com/events/#/partners/commercetools.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/datadoghq.com?page=overview](https://console.aws.amazon.com/events/#/partners/datadoghq.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/energysys.com?page=overview](https://console.aws.amazon.com/events/#/partners/energysys.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/epsagon.com?page=overview](https://console.aws.amazon.com/events/#/partners/epsagon.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/freshworks.com?page=overview](https://console.aws.amazon.com/events/#/partners/freshworks.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/genesys.com?page=overview](https://console.aws.amazon.com/events/#/partners/genesys.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/gladly.com?page=overview](https://console.aws.amazon.com/events/#/partners/gladly.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/gs2.io?page=overview](https://console.aws.amazon.com/events/#/partners/gs2.io?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/guidewire.com?page=overview](https://console.aws.amazon.com/events/#/partners/guidewire.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/hitachi-solutions.co.jp?page=overview](https://console.aws.amazon.com/events/#/partners/hitachi-solutions.co.jp?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/ilert.com?page=overview](https://console.aws.amazon.com/events/#/partners/ilert.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/jiraservicemanagement.com?page=overview](https://console.aws.amazon.com/events/#/partners/jiraservicemanagement.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/karte.io?page=overview](https://console.aws.amazon.com/events/#/partners/karte.io?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/kloudless.com?page=overview](https://console.aws.amazon.com/events/#/partners/kloudless.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/mackerel.io?page=overview](https://console.aws.amazon.com/events/#/partners/mackerel.io?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/mongodb.com?page=overview](https://console.aws.amazon.com/events/#/partners/mongodb.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/newrelic.com?page=overview](https://console.aws.amazon.com/events/#/partners/newrelic.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/nops.io?page=overview](https://console.aws.amazon.com/events/#/partners/nops.io?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/okta.com?page=overview](https://console.aws.amazon.com/events/#/partners/okta.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/onelogin.com?page=overview](https://console.aws.amazon.com/events/#/partners/onelogin.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/operata.com?page=overview](https://console.aws.amazon.com/events/#/partners/operata.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/opsgenie.com?page=overview](https://console.aws.amazon.com/events/#/partners/opsgenie.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/pagerduty.com?page=overview](https://console.aws.amazon.com/events/#/partners/pagerduty.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/payshield.com.au?page=overview](https://console.aws.amazon.com/events/#/partners/payshield.com.au?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/rhythmsoftware.com?page=overview](https://console.aws.amazon.com/events/#/partners/rhythmsoftware.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/rightsline.com?page=overview](https://console.aws.amazon.com/events/#/partners/rightsline.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/rootly.com?page=overview](https://console.aws.amazon.com/events/#/partners/rootly.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/saasus.io?page=overview](https://console.aws.amazon.com/events/#/partners/saasus.io?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/sailpoint.com?page=overview](https://console.aws.amazon.com/events/#/partners/sailpoint.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/scalr.com?page=overview](https://console.aws.amazon.com/events/#/partners/scalr.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/segment.com?page=overview](https://console.aws.amazon.com/events/#/partners/segment.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/shopify.com?page=overview](https://console.aws.amazon.com/events/#/partners/shopify.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/signalfx.com?page=overview](https://console.aws.amazon.com/events/#/partners/signalfx.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/site24x7.com?page=overview](https://console.aws.amazon.com/events/#/partners/site24x7.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/snowcatcloud.com?page=overview](https://console.aws.amazon.com/events/#/partners/snowcatcloud.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/snyk.io?page=overview](https://console.aws.amazon.com/events/#/partners/snyk.io?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/stax.io?page=overview](https://console.aws.amazon.com/events/#/partners/stax.io?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/stripe.com?page=overview](https://console.aws.amazon.com/events/#/partners/stripe.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/sugarcrm.com?page=overview](https://console.aws.amazon.com/events/#/partners/sugarcrm.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/symantec.com?page=overview](https://console.aws.amazon.com/events/#/partners/symantec.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/tealium.com?page=overview](https://console.aws.amazon.com/events/#/partners/tealium.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/thundra.io?page=overview](https://console.aws.amazon.com/events/#/partners/thundra.io?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/triggermesh.com?page=overview](https://console.aws.amazon.com/events/#/partners/triggermesh.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/whispir.com?page=overview](https://console.aws.amazon.com/events/#/partners/whispir.com?page=overview)
+ [https://console.aws.amazon.com/events/#/partners/zendesk.com?page=overview](https://console.aws.amazon.com/events/#/partners/zendesk.com?page=overview)
+ [Amazon 셀러 파트너 API](https://console.aws.amazon.com/events/#/partners/sellingpartnerapi.amazon.com?page=overview) 

## SaaS 통합에서 이벤트를 수신하도록 Amazon EventBridge 구성
<a name="eb-saas-integration"></a>

파트너 이벤트를 수신하도록 EventBridge를 구성하는 작업은 다음 두 가지 주요 단계로 구성됩니다.
+ 파트너 이벤트 소스 생성
+ 해당 파트너 소스를 파트너 이벤트 버스와 연결
**참고**  
이벤트 버스와 연결되지 않은 파트너 이벤트 소스에 파트너가 게시한 모든 이벤트는 즉시 삭제됩니다. 이러한 이벤트는 EventBridge에서 유휴 상태로 유지되지 않습니다.

**파트너 이벤트 소스 생성(콘솔만 해당)**

1. Amazon EventBridge 콘솔([https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/))을 엽니다.

1. 탐색 창에서 **Partner event sources(파트너 이벤트 소스)**를 선택하십시오.

1. 원하는 파트너를 찾은 다음, 해당 파트너에 대해 **설정**을 선택하세요.

1. 계정 ID를 클립보드에 복사하려면 **복사**를 선택하세요.

1. 탐색 창에서 **Partner event sources(파트너 이벤트 소스)**를 선택하십시오.

1. 파트너 웹사이트로 이동하여 지침에 따라 계정 ID를 사용해 파트너 이벤트 소스를 생성하세요. 생성한 이벤트 소스는 본인 계정에서만 사용할 수 있습니다.

**파트너 소스를 파트너 이벤트 버스와 연결(콘솔)**

1. EventBridge 콘솔에서 탐색 창의 **파트너 이벤트 소스**를 선택하세요.

1. 파트너 이벤트 소스 옆에 있는 버튼을 선택하고 **이벤트 버스에 연결**을 선택하세요.

   해당 이벤트 소스의 상태가 `Pending`에서 `Active`로 변경되고 파트너 이벤트 소스 이름과 일치하도록 이벤트 버스 이름이 업데이트됩니다. 이제 파트너 이벤트 소스의 이벤트와 일치하는 규칙 생성을 시작할 수 있습니다.

**파트너 소스를 파트너 이벤트 버스와 연결(AWS CLI)**
+ [https://docs.aws.amazon.com/cli/latest/reference/events/create-event-bus.html](https://docs.aws.amazon.com/cli/latest/reference/events/create-event-bus.html)를 사용하여 파트너 이벤트 소스와 연결된 파트너 이벤트 버스를 생성합니다.

  `name` 및 `event-source-name` 모두 파트너 이벤트 소스 이름으로 설정해야 합니다.

  예제:

  ```
  aws events create-event-bus \
      --name "aws.partner/saas-integration/name" \
      --event-source-name "aws.partner/saas-integration/name" \
      --region us-east-1
  ```

  EventBridge가 이벤트 버스를 생성한 후 [https://docs.aws.amazon.com/cli/latest/reference/events/describe-event-source.html](https://docs.aws.amazon.com/cli/latest/reference/events/describe-event-source.html)를 직접 호출하여 파트너 소스에 대한 세부 정보를 반환할 수 있습니다. 파트너 소스의 `State`는 `ACTIVE`여야 합니다.

  ```
  aws events describe-event-source
  --name "aws.partner/saas-integration/name"
  ```
**참고**  
파트너 이벤트 버스에서 [https://docs.aws.amazon.com/cli/latest/reference/events/put-permission.html](https://docs.aws.amazon.com/cli/latest/reference/events/put-permission.html)을 직접 호출하면 오류가 반환됩니다. 파트너 이벤트 버스와 연결된 이벤트 소스의 파트너 계정만 이벤트를 전송할 수 있습니다.

**파트너 소스를 파트너 이벤트 버스와 연결(CloudFormation)**

1. 파트너 이벤트 소스로 [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbus.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbus.html) 리소스를 프로비저닝하는 CloudFormation 템플릿을 생성합니다.

   `Name` 및 `EventSourceName` 모두 파트너 이벤트 소스 이름으로 설정해야 합니다. 예제:

   ```
   AWSTemplateFormatVersion: 2010-09-09
   
   Description: 
      Cloudformation template to create Event Bus for receiving partner events
   
   Resources:
     ExamplePartnerEventBus:
       Type: AWS::Events::EventBus
       Properties:
         EventSourceName: 'aws.partner/saas-integration/name'
         Name: 'aws.partner/saas-integration/name'
   ```

1. [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html) 또는 CloudFormation 콘솔을 사용하여 템플릿에서 스택을 생성합니다. 예제:

   ```
   aws cloudformation create-stack --stack-name eventbridge-saas --template-body file://template.yml --region us-east-1
   ```
**참고**  
템플릿에 파트너 이벤트 버스에 대한 [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbuspolicy.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbuspolicy.html) 리소스를 포함하면 오류가 발생합니다. 파트너 이벤트 버스와 연결된 이벤트 소스의 파트너 계정만 이벤트를 전송할 수 있습니다.

# Amazon EventBridge의 AWS Lambda 함수 URL에서 SaaS 이벤트 수신 URLs
<a name="eb-saas-furls"></a>

**참고**  
파트너가 인바운드 Webhook에 액세스할 수 있도록 타사 파트너가 보낸 인증 서명을 확인하여 Lambda 애플리케이션 수준에서 보호되는 Open Lambda를 AWS 계정에 생성합니다. 보안 팀과 함께 이 구성을 검토하세요. 자세한 내용은 [Lambda 함수 URL에 대한 보안 및 인증 모델](https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html#urls-auth-none) 섹션을 참조하세요.

Amazon EventBridge [이벤트 버스](eb-event-bus.md)는 CloudFormation 템플릿으로 생성된 [AWS Lambda 함수 URL](https://docs.aws.amazon.com/lambda/latest/dg/lambda-urls.html)을 사용하여 지원되는 SaaS 공급자로부터 [이벤트](eb-events.md)를 수신할 수 있습니다. 함수 URL을 사용하면 이벤트 데이터가 Lambda 함수로 전송됩니다. 그런 다음, 함수는 이 데이터를 EventBridge에서 수집하고 처리를 위해 이벤트 버스로 보낼 수 있는 이벤트로 변환합니다. 이벤트가 이벤트 버스에 있으면 규칙을 사용하여 이벤트를 필터링하고 구성된 입력 변환을 적용한 후 올바른 대상으로 라우팅할 수 있습니다.

**참고**  
Lambda 함수 URL을 생성하면 월별 비용이 증가합니다. 자세한 내용은 [AWS Lambda 요금](https://aws.amazon.com/lambda/pricing)을 참조하십시오.

EventBridge에 대한 연결을 설정하려면 먼저 연결을 설정할 SaaS 공급자를 선택합니다. 그런 다음, 해당 공급자를 통해 생성한 *서명 암호*를 제공하고 이벤트를 전송할 EventBridge 이벤트 버스를 선택합니다. 마지막으로 CloudFormation 템플릿을 사용하고 필요한 리소스를 생성하여 연결을 완료합니다.

현재 Lambda 함수 URL을 사용하여 EventBridge와 함께 사용할 수 있는 SaaS 공급자는 다음과 같습니다.
+ GitHub
+ Twilio

**Topics**
+ [1단계: CloudFormation 스택 생성](#create-gh-cfn-stack)
+ [2단계: GitHub 웹후크 생성](#create-gh-webhook)
+ [Twilio에 대한 연결 설정](#furls-connection-twilio)
+ [웹후크 보안 암호 또는 인증 토큰 업데이트](#furls-update-secret)
+ [Lambda 함수 업데이트](#furls-update-function)
+ [사용 가능한 이벤트 유형](#furls-event-types)
+ [할당량, 오류 코드, 전송 재시도](#furls-quotas-errors)

## 1단계: CloudFormation 스택 생성
<a name="create-gh-cfn-stack"></a>

 먼저 Amazon EventBridge 콘솔을 사용하여 CloudFormation 스택을 생성합니다.

1. Amazon EventBridge 콘솔([https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/))을 엽니다.

1. 탐색 창에서 **빠른 시작**을 선택합니다.

1. **Lambda fURL을 사용하는 인바운드 웹후크**에서 **시작하기**를 선택합니다.

1. **GitHub**에서 **설정**을 선택합니다.

1. **1단계: 이벤트 버스 선택**의 드롭다운 목록에서 이벤트 버스를 선택합니다. 이 이벤트 버스는 사용자가 GitHub에 제공하는 Lambda 함수 URL에서 데이터를 수신합니다. **새 이벤트 버스**를 선택하여 이벤트 버스를 생성할 수도 있습니다.

1. **2단계: CloudFormation을 사용하여 설정**에서 **새 GitHub 웹후크**를 선택합니다.

1. **내가 만든 인바운드 웹후크에 공개적으로 액세스할 수 있음을 승인합니다**를 선택하고 **확인**을 선택합니다.

1. 스택의 이름을 입력합니다.

1. 파라미터에서 올바른 이벤트 버스가 나열되어 있는지 확인한 다음, **GitHubWebhookSecret**에 대한 보안 토큰을 지정합니다. 보안 토큰 생성에 대한 자세한 내용은 GitHub 설명서의 [Setting your secret token](https://docs.github.com/en/developers/webhooks-and-events/webhooks/securing-your-webhooks#setting-your-secret-token)을 참조하세요.

1. **기능 및 변환**에서 다음을 각각 선택합니다.
   + **가 IAM 리소스를 생성할 CloudFormation 수 있음을 확인합니다.**
   + **가 사용자 지정 이름으로 IAM 리소스를 생성할 CloudFormation 수 있음을 확인합니다.**
   + **에 다음 기능이 필요할 CloudFormation 수 있음을 확인합니다. `CAPABILITY_AUTO_EXPAND`** 

1. **스택 생성**을 선택합니다.

## 2단계: GitHub 웹후크 생성
<a name="create-gh-webhook"></a>

다음으로 GitHub에 웹후크를 생성합니다. 이 단계를 완료하려면 2단계에서 생성한 Lambda 함수 URL과 보안 토큰이 모두 필요합니다. 자세한 내용은 GitHub 설명서의 [Creating webhooks](https://docs.github.com/en/developers/webhooks-and-events/webhooks/creating-webhooks)를 참조하세요.

## Twilio에 대한 연결 설정
<a name="furls-connection-twilio"></a>

### 1단계: Twilio 인증 토큰 찾기
<a name="create-twilio-secret"></a>

Twilio와 EventBridge 간의 연결을 설정하려면 먼저 Twilio 계정의 인증 토큰 또는 보안 암호를 사용하여 Twilio에 대한 연결을 설정합니다. 자세한 내용은 Twilio 설명서에서 [Auth Tokens and How To Change Them](https://support.twilio.com/hc/en-us/articles/223136027-Auth-Tokens-and-How-to-Change-Them)을 참조하세요.

### 2단계: CloudFormation 스택 생성
<a name="create-twilio-cfn-stack"></a>

1. Amazon EventBridge 콘솔([https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/))을 엽니다.

1. 탐색 창에서 **빠른 시작**을 선택합니다.

1. **Lambda fURL을 사용하는 인바운드 웹후크**에서 **시작하기**를 선택합니다.

1. **Twilio**에서 **설정**을 선택합니다.

1. **1단계: 이벤트 버스** 선택에서 드롭다운 목록에서 이벤트 버스를 선택합니다. 이 이벤트 버스는 사용자가 Twilio에 제공하는 Lambda 함수 URL에서 데이터를 수신합니다. **새 이벤트 버스**를 선택하여 이벤트 버스를 생성할 수도 있습니다.

1. **2단계: CloudFormation을 사용하여 설정**에서 **새 Twilio 웹후크**를 선택합니다.

1. **내가 만든 인바운드 웹후크에 공개적으로 액세스할 수 있음을 승인합니다**를 선택하고 **확인**을 선택합니다.

1. 스택의 이름을 입력합니다.

1. 파라미터에서 올바른 이벤트 버스가 나열되어 있는지 확인한 다음, 1단계에서 생성한 **TwilioWebhookSecret**을(를) 입력합니다.

1. **기능 및 변환**에서 다음을 각각 선택합니다.
   + **가 IAM 리소스를 생성할 CloudFormation 수 있음을 확인합니다.**
   + **가 사용자 지정 이름으로 IAM 리소스를 생성할 CloudFormation 수 있음을 확인합니다.**
   + **에 CAPABILITY\$1AUTO\$1EXPAND 기능이 필요할 CloudFormation 수 있음을 확인합니다.**

1. **스택 생성**을 선택합니다.

### 3단계: Twilio 웹후크 생성
<a name="create-twilio-webhook"></a>

Lambda 함수 URL을 설정한 후에는 이벤트 데이터를 전송할 수 있도록 Twilio에 이를 제공해야 합니다. 자세한 내용을 알아보려면 Twilio 설명서의 [Configure your public URL with Twilio](https://www.twilio.com/docs/usage/webhooks/getting-started-twilio-webhooks#configure-your-public-url-with-twilio)를 참조하세요.

## 웹후크 보안 암호 또는 인증 토큰 업데이트
<a name="furls-update-secret"></a>

### GitHub 보안 암호 업데이트
<a name="update-gh-secret"></a>

**참고**  
GitHub는 동시에 두 개의 보안 암호를 사용하는 것을 지원하지 않습니다. CloudFormation 스택의 GitHub 보안 암호와 보안 암호가 동기화되지 않는 동안 리소스 가동 중지가 발생할 수 있습니다. 보안 암호가 동기화되지 않는 동안 전송된 GitHub 메시지는 잘못된 서명으로 인해 실패합니다. GitHub 및 CloudFormation 보안 정보가 동기화될 때까지 기다린 후 다시 시도하세요.

1. 새 GitHub 보안 암호를 생성합니다. 자세한 내용은 GitHub 문서의 [Encrypted secrets](https://docs.github.com/en/actions/security-guides/encrypted-secrets)를 참조하세요.

1. [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) CloudFormation 콘솔을 엽니다.

1. 탐색 창에서 **스택**을 선택합니다.

1. 업데이트할 보안 암호가 포함된 웹후크 스택을 선택합니다.

1. **업데이트**를 선택합니다.

1. **현재 템플릿 사용**이 선택되어 있는지 확인하고 **다음**을 선택합니다.

1. **GitHubWebhookSecret**에서 **기존 값 사용**을 선택 취소하고 1단계에서 생성한 새 GitHub 보안 암호를 입력한 후 **다음**을 선택합니다.

1. **다음**을 선택합니다.

1. **스택 업데이트**를 선택합니다.

보안 암호가 전파하는 데 최대 1시간까지 걸릴 수 있습니다. 이 가동 중지 시간을 줄이기 위해 Lambda 실행 컨텍스트를 새로 고칠 수 있습니다.

### Twilio 보안 암호 업데이트
<a name="update-twilio-secret"></a>

**참고**  
Twilio는 동시에 두 개의 보안 암호를 사용하는 것을 지원하지 않습니다. CloudFormation 스택의 Twilio 보안 암호와 보안 암호가 동기화되지 않는 동안 리소스 가동 중지가 발생할 수 있습니다. 보안 암호가 동기화되지 않는 동안 전송된 Twilio 메시지는 잘못된 서명으로 인해 실패합니다. Twilio 및 CloudFormation 보안 정보가 동기화될 때까지 기다린 후 다시 시도하세요.

1. 새 Twilio 보안 암호를 생성합니다. 자세한 내용은 Twilio 설명서에서 [Auth Tokens and How To Change Them](https://support.twilio.com/hc/en-us/articles/223136027-Auth-Tokens-and-How-to-Change-Them)을 참조하세요.

1. [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) CloudFormation 콘솔을 엽니다.

1. 탐색 창에서 **스택**을 선택합니다.

1. 업데이트할 보안 암호가 포함된 웹후크 스택을 선택합니다.

1. **업데이트**를 선택합니다.

1. **현재 템플릿 사용**이 선택되어 있는지 확인하고 **다음**을 선택합니다.

1. **TwilioWebhookSecret**에서 **기존 값 사용**을 선택 취소하고 1단계에서 생성한 새 Twilio 보안 암호를 입력한 후 **다음**을 선택합니다.

1. **다음**을 선택합니다.

1. **스택 업데이트**를 선택합니다.

보안 암호가 전파하는 데 최대 1시간까지 걸릴 수 있습니다. 이 가동 중지 시간을 줄이기 위해 Lambda 실행 컨텍스트를 새로 고칠 수 있습니다.

## Lambda 함수 업데이트
<a name="furls-update-function"></a>

CloudFormation 스택에서 생성된 Lambda 함수는 기본 웹후크를 생성합니다. 사용자 지정 로깅과 같은 특정 사용 사례에 맞게 Lambda 함수를 사용자 지정하려면 CloudFormation 콘솔을 사용하여 함수에 액세스한 다음, Lambda 콘솔을 사용하여 Lambda 함수 코드를 업데이트하세요.

**Lambda 함수에 액세스**

1. [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) CloudFormation 콘솔을 엽니다.

1. 탐색 창에서 **스택**을 선택합니다.

1. 업데이트할 Lambda 함수가 포함된 웹후크 스택을 선택합니다.

1. **리소스** 탭을 선택합니다.

1. Lambda 콘솔에서 Lambda 함수를 열려면 **물리적 ID**에서 Lambda 함수의 ID를 선택합니다.

이제 Lambda 함수에 액세스했으므로 Lambda 콘솔을 사용하여 함수 코드를 업데이트하세요.

**Lambda 함수 코드 업데이트**

1. **작업**에서 **함수 내보내기**를 선택합니다.

1. **배포 패키지 다운로드**를 선택하고 파일을 컴퓨터에 저장합니다.

1. 배포 패키지.zip 파일의 압축을 풀고, `app.py` 파일을 업데이트하고, 원본.zip 파일의 모든 파일이 포함되도록 업데이트된 배포 패키지를 압축합니다.

1. Lambda 콘솔에서 **코드** 탭을 선택합니다.

1. **코드 소스(Code source)**에서 **업로드(Upload from)**를 선택합니다.

1. **.zip 파일**을 선택한 후 [**업로드(Upload)**]를 선택합니다.

   1. 파일 선택기에서 업데이트한 파일을 선택하고 **열기**와 **저장**을 차례로 선택합니다.

1. **작업**에서 **새 버전 발행**을 선택합니다.

## 사용 가능한 이벤트 유형
<a name="furls-event-types"></a>

현재 CloudFormation 이벤트 버스에서 지원되는 이벤트 유형은 다음과 같습니다.
+ **GitHub** – [모든 이벤트 유형](https://docs.github.com/en/developers/webhooks-and-events/webhooks/webhook-events-and-payloads)이 지원됩니다.
+ **Twilio** - [이벤트 후 웹후크](https://www.twilio.com/docs/chat/webhook-events)가 지원됩니다.

## 할당량, 오류 코드, 전송 재시도
<a name="furls-quotas-errors"></a>

### 할당량
<a name="furls-quotas"></a>

Webhook에 대한 수신 요청 수는 기본 AWS 서비스에 의해 제한됩니다. 다음 표에는 관련 할당량이 포함되어 있습니다.


| 서비스 | 할당량 | 
| --- | --- | 
|  AWS Lambda  |  기본값: 동시 실행 10개 할당량 증가 요청을 비롯한 할당량에 대한 자세한 내용은 [Lambda 할당량](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html)을 참조하세요.  | 
|  AWS Secrets Manager  |  기본값: 초당 요청 5,000개 할당량 증가 요청을 비롯한 할당량에 대한 자세한 내용은 [AWS Secrets Manager 할당량](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_limits.html)을 참조하세요. [AWS Secrets Manager Python 캐싱 클라이언트](https://github.com/aws/aws-secretsmanager-caching-python#cache-configuration)를 사용하면 초당 요청 수가 최소화됩니다.  | 
|  Amazon EventBridge  |  PutEvents 작업의 최대 항목 크기는 1MB입니다. EventBridge는 리전 기반 비율 할당량을 적용합니다. 자세한 내용은 [EventBridge 이벤트 버스 할당량](eb-quota.md#eb-limits) 단원을 참조하십시오.  | 

### 오류 코드
<a name="furls-errors"></a>

각 AWS 서비스는 오류가 발생할 때 특정 오류 코드를 반환합니다. 다음 표에는 관련 오류 코드가 포함되어 있습니다.


| 서비스 | 오류 코드 | 설명 | 
| --- | --- | --- | 
|  AWS Lambda  |  429 “TooManyRequestsExption”  |  동시 실행 할당량을 초과했습니다.  | 
|  AWS Secrets Manager  |  500 “Internal Server Error”  |  초당 요청 할당량을 초과했습니다.  | 
|  Amazon EventBridge  |  500 “Internal Server Error”  |  해당 리전의 비율 할당량을 초과했습니다.  | 

### 이벤트 재전송
<a name="furls-redelivery"></a>

오류가 발생하면 영향을 받은 이벤트의 전송을 다시 시도할 수 있습니다. SaaS 공급자마다 재시도 절차가 다릅니다.

#### GitHub
<a name="furls-redelivery-github"></a>

GitHub 웹후크 API를 사용하여 웹후크 호출의 전달 상태를 확인하고 필요한 경우 이벤트를 다시 전송합니다. 자세한 내용은 다음 GitHub 설명서를 참조하세요.
+ **조직** - [조직 웹후크에 대한 전송 재전달](https://docs.github.com/en/rest/orgs/webhooks#redeliver-a-delivery-for-an-organization-webhook)
+ **리포지토리** - [리포지토리 웹후크에 대한 전송 재전달](https://docs.github.com/en/rest/webhooks/repo-deliveries#redeliver-a-delivery-for-a-repository-webhook)
+ **앱** - [앱 웹후크에 대한 전송 재전달](https://docs.github.com/en/rest/apps/webhooks#redeliver-a-delivery-for-an-app-webhook)

#### Twilio
<a name="furls-redelivery-twilio"></a>

Twilio 사용자는 연결 재정의를 통해 이벤트 재시도 옵션을 사용자 지정할 수 있습니다. 자세한 내용은 Twilio 설명서의 [Webhooks (HTTP callbacks): Connection Overrides](https://www.twilio.com/docs/usage/webhooks/webhooks-connection-overrides)를 참조하세요.

# Amazon EventBridge에서 Salesforce로부터 이벤트 수신
<a name="eb-saas-salesforce"></a>

Amazon EventBridge를 사용하여 다음과 같은 방법으로 Salesforce에서 [이벤트](eb-events.md)를 수신할 수 있습니다.
+ Salesforce's 이벤트 버스 릴레이 기능을 사용하여 EventBridge 파트너 이벤트 버스에서 직접 이벤트를 수신합니다.
+ 데이터 소스로 Salesforce를 사용하는 [Amazon AppFlow](https://aws.amazon.com/appflow/)에서 플로우를 구성합니다. 그러면 Amazon AppFlow는 [파트너 이벤트 버스](eb-saas.md)를 사용하여 EventBridge에 Salesforce 이벤트를 보냅니다.

API 대상을 사용하여 Salesforce에 이벤트 정보를 전송할 수 있습니다. 이벤트가 Salesforce에 전송되면 [Flows](https://help.salesforce.com/s/articleView?id=flow.htm) 또는 [Apex 트리거](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_triggers.htm)로 이벤트를 처리할 수 있습니다. Salesforce API 대상 설정에 대한 자세한 내용은 [자습서: Salesforce에서 Amazon EventBridge로 이벤트 전송](eb-tutorial-salesforce.md) 섹션을 참조하세요.

**Topics**
+ [이벤트 버스 릴레이를 사용하여 Salesforce에서 이벤트 수신](#eb-saas-salesforce-relay)
+ [Amazon AppFlow를 사용하여 Salesforce에서 이벤트 수신](#eb-saas-salesforce-appflow)

## 이벤트 버스 릴레이를 사용하여 Salesforce에서 이벤트 수신
<a name="eb-saas-salesforce-relay"></a>

### 1단계: Salesforce 이벤트 버스 릴레이 및 EventBridge 파트너 이벤트 소스 설정
<a name="eb-set-up-relay"></a>

Salesforce에서 이벤트 릴레이 구성을 생성하면 Salesforce는 EventBridge에 보류 중 상태의 파트너 이벤트 소스를 생성합니다.

**Salesforce 이벤트 버스 릴레이를 구성하려면 다음을 수행하세요.**

1. [REST API 도구 설정](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/Salesforce_Event_Bus_Relay_Pilot.pdf#h.z63eim1tqkm3)

1. [(선택 사항) 플랫폼 이벤트 정의](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/Salesforce_Event_Bus_Relay_Pilot.pdf#h.2m5t2i52o23m)

1. [사용자 지정 플랫폼 이벤트를 위한 채널 생성](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/Salesforce_Event_Bus_Relay_Pilot.pdf#h.s0spl5puf9d0)

1. [채널 멤버를 생성하여 사용자 지정 플랫폼 이벤트 연결](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/Salesforce_Event_Bus_Relay_Pilot.pdf#h.rdhi4awp8cvv)

1. [명명된 보안 인증 생성](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/Salesforce_Event_Bus_Relay_Pilot.pdf#h.etec44jyv3og)

1. [이벤트 릴레이 구성 생성](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/Salesforce_Event_Bus_Relay_Pilot.pdf#h.43rfyeehz0w5)

### 2단계: EventBridge 콘솔에서 Salesforce 파트너 이벤트 소스를 활성화하고 이벤트 릴레이 시작
<a name="eb-salesforce-activate-source"></a>

1. EventBridge 콘솔에서 [파트너 이벤트 소스](https://console.aws.amazon.com/events/home?#/partners) 페이지를 엽니다.

1. 1단계에서 생성한 Salesforce 파트너 이벤트 소스를 선택합니다.

1. **이벤트 버스에 연결**을 선택합니다.

1. 파트너 이벤트 버스의 이름을 확인합니다.

1. **** 연결을 선택합니다.

1. [이벤트 릴레이 시작](https://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/Salesforce_Event_Bus_Relay_Pilot.pdf#h.t01b3xp87vhu)

이제 이벤트 버스 릴레이를 설정 및 시작하고 파트너 이벤트 소스를 구성했으므로 [이벤트에 대응하여 데이터를 필터링하고 [대상](eb-targets.md)에 전송하는 EventBridge 규칙](eb-create-rule-visual.md)을 생성할 수 있습니다.

## Amazon AppFlow를 사용하여 Salesforce에서 이벤트 수신
<a name="eb-saas-salesforce-appflow"></a>

Amazon AppFlow는 EventBridge 이벤트 엔벨로프에 Salesforce의 이벤트를 캡슐화합니다. 다음 예는 EventBridge 파트너 이벤트 버스에서 수신한 Salesforce 이벤트를 보여줍니다.

```
{
    "version": "0",
    "id": "5c42b99e-e005-43b3-c744-07990c50d2cc",
    "detail-type": "AccountChangeEvent",
    "source": "aws.partner/appflow.test/salesforce.com/364228160620/CustomSF-Source-Final",
    "account": "000000000",
    "time": "2020-08-20T18:25:51Z",
    "region": "us-west-2",
    "resources": [],
    "detail": {
        "ChangeEventHeader": {
            "commitNumber": 248197218874,
            "commitUser": "0056g000003XW7AAAW",
            "sequenceNumber": 1,
            "entityName": "Account",
            "changeType": "UPDATE",
            "changedFields": [
                "LastModifiedDate",
                "Region__c"
            ],
            "changeOrigin": "com/salesforce/api/soap/49.0;client=SfdcInternalAPI/",
            "transactionKey": "000035af-b239-0581-9f14-461e4187de11",
            "commitTimestamp": 1597947935000,
            "recordIds": [
                "0016g00000MLhLeAAL"
            ]
        },
        "LastModifiedDate": "2020-08-20T18:25:35.000Z",
        "Region__c": "America"
    }
}
```

### 1단계: Salesforce를 파트너 이벤트 소스로 사용하도록 Amazon AppFlow 구성
<a name="eb-configure-appflow"></a>

EventBridge로 이벤트를 보내려면 먼저 Salesforce를 파트너 이벤트 소스로 사용하도록 Amazon AppFlow를 구성해야 합니다.

1. [Amazon AppFlow 콘솔](https://console.aws.amazon.com/appflow/)에서 **플로우 생성**을 선택합니다.

1. **플로우 세부 정보** 섹션의 **플로우 이름**에 해당 플로우의 이름을 입력합니다.

1. (선택 사항) 플로우의 설명을 입력하고 **다음**을 선택합니다.

1. **소스 세부 정보**에서 **소스 이름** 드롭다운에서 *Salesforce*를 선택한 다음, **연결**을 선택하여 새 연결을 생성합니다.

1. **Salesforce에 연결** 대화 상자에서 Salesforce 환경에 대한 **프로덕션** 또는 **샌드박스**를 선택합니다.

1. **연결 이름** 필드에 연결의 고유한 이름을 입력한 다음, **계속**을 선택합니다.

1. Salesforce 대화 상자에서 다음을 수행합니다.

   1. Salesforce에 로그인할 Salesforce 로그인 보안 인증 정보를 입력합니다.

   1. Amazon AppFlow에서 처리할 데이터 유형에 맞는 Salesforce 이벤트를 선택합니다.

1. **Salesforce 이벤트 선택** 드롭다운에서 EventBridge로 전송할 이벤트 유형을 선택합니다.

1. 대상으로 **Amazon EventBridge**를 선택합니다.

1. **새 파트너 이벤트 소스 생성**을 선택합니다.

1. (선택 사항) 파트너 이벤트 소스의 고유한 접미사를 지정합니다.

1. **파트너 이벤트 소스 생성**을 선택합니다.

1. Amazon S3 버킷을 선택하여 1MB보다 큰 이벤트 페이로드 파일을 저장합니다.

1. **플로우 트리거** 섹션에서 **이벤트 발생 시 플로우 실행**이 선택되어 있는지 확인합니다. 이 설정을 사용하면 새 Salesforce 이벤트가 발생할 때 플로우가 실행됩니다.

1. **다음**을 선택합니다.

1. 필드 매핑의 경우 **모든 필드를 직접 매핑**을 선택합니다. 또는 **소스 필드 이름** 목록에서 관심 있는 필드를 선택할 수도 있습니다.

   필드 매핑에 대한 자세한 내용을 알아보려면 [Map data fields](https://docs.aws.amazon.com//appflow/latest/userguide/getting-started.html#map-fields)를 참조하세요.

1. **다음**을 선택합니다.

1. (선택 사항) Amazon AppFlow에서 데이터 필드에 대한 필터를 구성합니다.

1. **다음**을 선택합니다.

1. 설정을 검토한 다음, **플로우 생성**을 선택합니다.

플로우를 구성하면 Amazon AppFlow는 계정의 파트너 이벤트 버스에 연결해야 하는 새 파트너 이벤트 소스를 생성합니다.

### 2단계: Salesforce 이벤트를 수신하도록 EventBridge 구성
<a name="eb-salesforce-events"></a>

이 섹션의 지침을 따르기 전에 EventBridge를 대상으로 하는 Salesforce 이벤트에서 트리거되는 Amazon AppFlow 플로우가 구성되어 있는지 확인하세요.

**Salesforce 이벤트를 수신하도록 EventBridge를 구성하려면**

1. EventBridge 콘솔에서 [파트너 이벤트 소스](https://console.aws.amazon.com/events/home?#/partners) 페이지를 엽니다.

1. 1단계에서 생성한 Salesforce 파트너 이벤트 소스를 선택합니다.

1. **이벤트 버스에 연결**을 선택합니다.

1. 파트너 이벤트 버스의 이름을 확인합니다.

1. **** 연결을 선택합니다.

1. Amazon AppFlow 콘솔에서 생성한 플로우를 열고 **플로우 활성화**를 선택합니다.

1. EventBridge 콘솔에서 [규칙](https://console.aws.amazon.com/events/home?#/rules) 페이지를 엽니다.

1. **규칙 생성**을 선택합니다.

1. 역할의 고유한 이름을 입력합니다.

1. **패턴 정의** 섹션에서 **이벤트 패턴**을 선택합니다.

1. **이벤트 매칭 패턴**에서 **서비스에서 제공하는 사전 정의된 패턴**을 선택합니다.

1. **서비스 공급자** 섹션에서 **모든 이벤트**를 선택합니다.

1. **이벤트 버스 선택**에서 **사용자 지정 또는 파트너 이벤트 버스**를 선택합니다.

1. Amazon AppFlow 파트너 이벤트 소스에 연결한 이벤트 버스를 선택합니다.

1. **대상 선택**에서 규칙이 실행될 때 실행할 AWS 서비스를 선택합니다. 규칙 하나에 최대 5개의 대상을 사용할 수 있습니다.

1. **생성(Create)**을 선택합니다.

대상 서비스는 계정에 구성된 모든 Salesforce 이벤트를 수신합니다. 이벤트를 필터링하거나 일부 이벤트를 다른 대상으로 보내려면 [이벤트 패턴과 함께 콘텐츠 기반 필터링](eb-create-pattern.md#eb-event-patterns-content-based-filtering)을 사용할 수 있습니다.

**참고**  
1MB보다 큰 이벤트의 경우 Amazon AppFlow는 전체 이벤트를 EventBridge로 보내지 않습니다. 대신 Amazon AppFlow는 이벤트를 사용자 계정의 S3 버킷에 넣은 다음, Amazon S3 버킷에 대한 포인터를 사용하여 이벤트를 EventBridge로 보냅니다. 포인터를 사용하여 버킷에서 전체 이벤트를 가져올 수 있습니다.