

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

# Amazon WorkSpaces 애플리케이션 스트리밍 세션 임베드
<a name="embed-streaming-sessions"></a>

웹 사이트 내에 WorkSpaces 애플리케이션 스트리밍 세션을 임베딩하여 사용자를 위한 동적 대화형 사용자 지정 환경을 만들 수 있습니다. 임베디드 WorkSpaces 애플리케이션 스트리밍 세션을 사용하면 사용자가 웹 사이트에서 직접 3D 모델, 맵 및 데이터 세트와 상호 작용할 수 있습니다. 예를 들어 사용자는 WorkSpaces 애플리케이션 스트리밍 세션과 함께 훈련 지침 또는 교육 자료를 볼 수 있습니다.

**Topics**
+ [Amazon WorkSpaces 애플리케이션 스트리밍 세션 임베딩을 위한 사전 조건](embed-streaming-sessions-prerequisites.md)
+ [Amazon WorkSpaces 애플리케이션 스트리밍 세션 임베딩을 위한 권장 사항 및 사용 고려 사항](embed-streaming-sessions-recommendations-considerations.md)
+ [1단계: 임베디드 Amazon WorkSpaces 애플리케이션 스트리밍 세션에 호스트 도메인 지정](specify-host-domain-embedded-streaming-sessions.md)
+ [2단계: 사용자 인증을 위한 스트리밍 URL 생성](create-streaming-url-user-authentication.md)
+ [3단계: 임베디드 Amazon WorkSpaces 애플리케이션 파일 다운로드](download-embed-files.md)
+ [4단계. Amazon WorkSpaces 애플리케이션과의 통합을 위해 웹 사이트 구성](configure-website-for-integration.md)
+ [임베디드 Amazon WorkSpaces 애플리케이션 스트리밍 세션의 상수, 함수 및 이벤트](constants-functions-events-embedded-sessions.md)

# Amazon WorkSpaces 애플리케이션 스트리밍 세션 임베딩을 위한 사전 조건
<a name="embed-streaming-sessions-prerequisites"></a>

웹 사이트에 WorkSpaces 애플리케이션 스트리밍 세션을 포함하려면 다음이 있어야 합니다.
+ WorkSpaces 애플리케이션 이미지, 플릿 및 스택을 포함하는 구성된 WorkSpaces 애플리케이션 환경입니다. 이러한 리소스를 생성하는 방법에 대한 자세한 내용은 *WorkSpaces 애플리케이션 관리 안내서*의 다음 주제를 참조하세요.
  +  [자습서: WorkSpaces 애플리케이션 콘솔을 사용하여 사용자 지정 WorkSpaces 애플리케이션 이미지 생성](tutorial-image-builder.md) 또는 [Image Assistant CLI 작업을 사용하여 프로그래밍 방식으로 Amazon WorkSpaces 애플리케이션 이미지 생성](programmatically-create-image.md)
  + [Amazon WorkSpaces 애플리케이션에서 플릿 생성](set-up-stacks-fleets-create.md)
  + [Amazon WorkSpaces 애플리케이션에서 스택 생성](set-up-stacks-fleets-install.md)
+ 사용자 인증을 위한 스트리밍 URL. SAML 2.0 및 WorkSpaces 애플리케이션 사용자 풀은 현재 임베디드 WorkSpaces 애플리케이션 스트리밍 세션의 인증 방법으로 지원되지 않습니다.
+ 선택적으로 임베디드 WorkSpaces 애플리케이션 스트리밍 세션에 사용자 지정 도메인을 사용할 수 있습니다. WorkSpaces 애플리케이션 URL이 아닌 사용자에게 자체 회사 URL이 표시되도록 사용자 지정 도메인을 사용할 수 있습니다. 사용자가 타사 쿠키를 차단하는 웹 브라우저를 사용하는 경우, 사용자 지정 도메인이 필요합니다.
**참고**  
Amazon CloudFront를 사용하여 사용자 지정 도메인을 구성할 수 있습니다. 자세한 내용은 [ WorkSpaces 애플리케이션에서 사용자 지정 도메인 사용을 참조하세요](https://aws.amazon.com/blogs/desktop-and-application-streaming/using-custom-domains-with-amazon-appstream-2-0/).

  사용자 지정 도메인을 사용하는 경우 다음을 수행해야 합니다.
  + 동일한 도메인을 사용하는 스트리밍 URL을 만듭니다.
  + 임베디드 WorkSpaces Applications 스트리밍 세션을 호스팅할 웹 페이지의 **appstream-custom-url-domain** 헤더에를 추가합니다. 헤더 값의 경우, 역방향 프록시가 사용자에게 표시하는 도메인을 사용합니다. 자세한 내용은 [사용자 지정 도메인 사용을 위한 구성 요구 사항](create-streaming-url-user-authentication.md#configuration-requirements-custom-domains) 단원을 참조하십시오.

# Amazon WorkSpaces 애플리케이션 스트리밍 세션 임베딩을 위한 권장 사항 및 사용 고려 사항
<a name="embed-streaming-sessions-recommendations-considerations"></a>

임베디드 WorkSpaces 애플리케이션 스트리밍 세션에 대한 다음 권장 사항 및 사용 노트를 고려하세요.
+ 사용자의 임베디드 WorkSpaces 애플리케이션 스트리밍 환경을 최대한 제어하려면 약 5초 동안 지속되는 수명이 짧은 스트리밍 URLs 구성하는 것이 좋습니다. 모든 사용자는 웹 페이지의 내용을 검사하고 소스를 볼 수 있습니다. 여기에는 문서 객체 모델(DOM)과 iframe의 src(소스) URL이 포함됩니다. 사용자가 URL을 복사할 때 URL이 여전히 유효한 경우 해당 사용자는 임베드 옵션 없이 별도의 브라우저 탭에 URL을 붙여넣고 표준 WorkSpaces 애플리케이션 포털 사용자 인터페이스로 세션을 스트리밍할 수 있습니다.
+ 임베디드 WorkSpaces 애플리케이션 스트리밍 세션에 사용자 지정 도메인을 사용하는 경우 동시 세션이 지원되지 않습니다. 동시 세션은 사용자가 동일한 웹 페이지 또는 서로 다른 두 브라우저 탭에서 두 개의 임베디드 WorkSpaces 애플리케이션 스트리밍 세션을 시작할 때 발생합니다. 동시 세션에서 사용자가 한 명일 수는 없지만 여러 명일 수는 있습니다. 예를 들어, 사용자가 앱에 로그인하면 앱이 고객에게 제공할 스트리밍 URL(청구 시 고유 사용자로 계산)을 생성하고, 고객이 스트리밍 URL을 로드하고, 고객이 지정된 풀 내의 appstream 인스턴스에 할당됩니다.

# 1단계: 임베디드 Amazon WorkSpaces 애플리케이션 스트리밍 세션에 호스트 도메인 지정
<a name="specify-host-domain-embedded-streaming-sessions"></a>

웹 페이지에 WorkSpaces 애플리케이션 스트리밍 세션을 포함하려면 먼저 스택을 업데이트하여 임베디드 스트리밍 세션을 호스팅할 도메인을 지정합니다. 이는 승인된 웹 사이트 도메인만 WorkSpaces 애플리케이션 스트리밍 세션을 포함할 수 있도록 하기 위한 보안 조치입니다. WorkSpaces 애플리케이션은 지정한 도메인 또는 도메인을 **Content-Security-Policy** (CSP) 헤더에 추가합니다. 자세한 내용은 Mozilla [MDN Web Docs](https://developer.mozilla.org/en-US/) 설명서의 [Content Security Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP)를 참조하세요.

임베디드 스트리밍 세션을 호스팅할 도메인을 지정하도록 스택을 업데이트하려면 다음 방법 중 하나를 사용합니다.
+ WorkSpaces 애플리케이션 콘솔
+ `EmbedHostDomains` API 작업 
+ `embed-host-domains` AWS 명령줄 인터페이스(AWS CLI) 명령

WorkSpaces 애플리케이션 콘솔을 사용하여 호스트 도메인을 지정하려면 다음 단계를 수행합니다.

1. [https://console.aws.amazon.com/appstream2/home](https://console.aws.amazon.com/appstream2/home) WorkSpaces 애플리케이션 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **스택**을 선택하고, 원하는 스택을 선택합니다.

1. **편집**을 선택합니다.

1. **WorkSpaces 애플리케이션 임베드를 확장합니다(선택 사항).**

1. **호스트 도메인**에 유효한 도메인을 지정합니다. 예를 들어 **training.example.com**입니다.
**참고**  
임베디드 스트리밍 세션은 HTTPS[TCP 포트 443]를 통해서만 지원됩니다.

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

# 2단계: 사용자 인증을 위한 스트리밍 URL 생성
<a name="create-streaming-url-user-authentication"></a>

임베디드 WorkSpaces 애플리케이션 스트리밍 세션에 대해 사용자를 인증하려면 스트리밍 URL을 생성해야 합니다. 현재 임베디드 스트리밍 세션에 대해 SAML 2.0 및 사용자 풀은 지원되지 않습니다. 스트리밍 URL을 만들려면 다음 방법 중 하나를 사용합니다.
+ WorkSpaces 애플리케이션 콘솔
+ [CreateStreamingURL](https://docs.aws.amazon.com/appstream2/latest/APIReference/API_CreateStreamingURL.html) API 작업 
+ [create-streaming-url](https://docs.aws.amazon.com/cli/latest/reference/appstream/create-streaming-url.html) AWS CLI 명령

## 사용자 지정 도메인 사용을 위한 구성 요구 사항
<a name="configuration-requirements-custom-domains"></a>

사용자 지정 도메인을 사용하여 회사 브랜딩을 적용하든 임베디드 WorkSpaces 애플리케이션 스트리밍 세션이 타사 쿠키를 차단하는 브라우저에서 작동하도록 하든 구성 요구 사항은 동일합니다.

서드 파티 쿠키를 차단하는 웹 브라우저의 경우, 사용자 지정 도메인이 필요합니다. WorkSpaces 애플리케이션은 브라우저 쿠키를 사용하여 스트리밍 세션을 인증하고 사용자가 매번 로그인 자격 증명을 제공하라는 메시지를 받지 않고 활성 세션에 다시 연결할 수 있도록 합니다. 기본적으로 WorkSpaces 애플리케이션 스트리밍 URLs가 도메인**appstream.com**으로 포함됩니다. 웹사이트 내에 스트리밍 세션을 임베드하면 **appstream.com**은 타사 도메인으로 취급됩니다. 따라서 기본적으로 타사 쿠키를 차단하는 최신 브라우저를 사용할 경우 스트리밍 세션이 차단될 수 있습니다.

이 시나리오에서 임베디드 WorkSpaces 애플리케이션 스트리밍 세션이 차단되지 않도록 하려면 다음 단계를 따르세요.

1. 임베디드 WorkSpaces 애플리케이션 스트리밍 세션을 호스팅할 사용자 지정 도메인을 지정합니다.

   사용자 지정 도메인을 구성할 때 도메인이 WorkSpaces 애플리케이션을 포함할 웹 페이지의 하위 도메인인지 확인합니다. 예를 들어 **training.example.com**을 호스트 도메인으로 지정하도록 스택을 업데이트하면, 임베디드 스트리밍 세션에 대해 **content.training.example.com**라는 하위 도메인을 생성할 수 있습니다.

1. 동일한 사용자 지정 하위 도메인을 사용하는 임베디드 WorkSpaces 애플리케이션 스트리밍 세션에 대한 스트리밍 URL을 생성합니다. 스트리밍 URL을 생성하려면 [CreateStreamingURL](https://docs.aws.amazon.com/appstream2/latest/APIReference/API_CreateStreamingURL.html) API 작업 또는 [create-streaming-url](https://docs.aws.amazon.com/cli/latest/reference/appstream/create-streaming-url.html) AWS CLI 명령을 사용합니다. 이 시나리오에서는 WorkSpaces 애플리케이션 콘솔을 사용하여 스트리밍 URL을 생성할 수 없습니다.

   임베디드 WorkSpaces 애플리케이션 스트리밍 세션에 대한 스트리밍 URL을 생성하려면 URL에서 **appstream2.***region***.aws.amazon.com**을 자체 도메인으로 바꿉니다.

   기본적으로 WorkSpaces 애플리케이션 스트리밍 URLs의 형식은 다음과 같습니다.

   ```
   https://appstream2.region.aws.amazon.com/authenticate?parameters=authenticationcode
   ```

   하위 도메인이 **content.training.example.com**인 경우 새 스트리밍 URL은 다음 형식을 따릅니다.

   ```
   https://content.training.example.com/authenticate?parameters=authenticationcode
   ```
**참고**  
사용자 지정 도메인을 생성할 때 도메인이 구성된 AWS 리전에서만 임베디드 WorkSpaces 애플리케이션 스트리밍 세션에 도메인을 사용할 수 있습니다. 여러 리전에서 사용자 지정 도메인을 지원하려는 경우, 해당하는 각각의 리전에 대해 사용자 지정 도메인을 만듭니다. 또한 임베디드 스트리밍 세션은 HTTPS[TCP 포트 443]를 통해서만 지원됩니다.

1. 임베디드 스트리밍 세션을 호스팅할 웹페이지의 헤더에 **appstream-custom-url-domain**을 추가합니다. 헤더 값의 경우, 역방향 프록시가 사용자에게 표시하는 도메인을 사용합니다. 예제:

   ```
   Header name: appstream-custom-url-domain
   Header value: training.example.com
   ```

   사용자 지정 도메인을 설정하고 동일한 도메인을 지정하는 스트리밍 URL을 생성하면 쿠키가 자사 쿠키로 저장될 수 있습니다. Amazon CloudFront를 사용하여 사용자 지정 도메인을 구성하는 방법에 대한 자세한 내용은 [ WorkSpaces 애플리케이션에서 사용자 지정 도메인 사용을 참조하세요](https://aws.amazon.com/blogs/desktop-and-application-streaming/using-custom-domains-with-amazon-appstream-2-0/).

임베디드 WorkSpaces 애플리케이션 스트리밍 세션에 대한 사용자 지정 도메인을 설정한 후 스트리밍 URLs 사용자 지정 도메인으로 리디렉션되지 않거나 사용자 지정 도메인이 사용자에게 올바르게 표시되지 않는 경우 다음 문제 해결 주제를 참조하세요.
+ [임베디드 WorkSpaces 애플리케이션 스트리밍 세션에 대한 사용자 지정 도메인을 설정했지만 WorkSpaces 애플리케이션 스트리밍 URLs이 사용자 지정 도메인으로 리디렉션되지 않습니다.](troubleshooting-general.md#embedded-streaming-sessions-streaming-urls-not-redirected-to-custom-domain)

# 3단계: 임베디드 Amazon WorkSpaces 애플리케이션 파일 다운로드
<a name="download-embed-files"></a>

임베디드 WorkSpaces 애플리케이션 스트리밍 세션을 호스팅하려면 제공된 WorkSpaces 애플리케이션 API JavaScript 파일을 다운로드하고 구성해야 합니다.

1. [웹 사이트의 WorkSpaces 애플리케이션 임베딩](https://clients.amazonappstream.com/embed.html) 웹 페이지에서 1단계의 링크를 선택하여 WorkSpaces 애플리케이션 임베드 키트 .zip 파일, **appstream\$1embed\$1<version>.zip**을 다운로드합니다.

1. .zip 파일을 다운로드한 위치로 이동하여 파일의 압축을 풉니다.

1. 파일의 압축을 풀면 **appstream-embed**라는 하나의 폴더로 구성되어 있습니다. 이 폴더에는 **COPYRIGHT.txt**, **THIRD\$1PARTY\$1NOTICES.txt ** 외에 다음 두 개의 파일이 포함되어 있습니다.
   + **appstream-embed.js** - 임베디드 WorkSpaces 애플리케이션 API를 제공합니다. 이 JavaScript 파일에는 임베디드 WorkSpaces 애플리케이션 스트리밍 세션을 구성하고 제어하기 위한 함수와 API 작업이 포함되어 있습니다.
   + **embed-sample.html** - 임베디드 WorkSpaces 애플리케이션 API를 사용하여 스트리밍 세션을 초기화하고, 함수를 호출하고, 이벤트를 수신하는 방법을 설명합니다. 이 샘플 파일은 개발자를 위한 예제 사용 사례를 제공하기 위해 이 주제어ㅔ 대한 자세한 정보를 제공합니다.

# 4단계. Amazon WorkSpaces 애플리케이션과의 통합을 위해 웹 사이트 구성
<a name="configure-website-for-integration"></a>

다음 섹션에서는 임베디드 WorkSpaces 애플리케이션 스트리밍 세션을 호스팅하도록 웹 페이지를 구성하는 방법에 대한 정보를 제공합니다.

**Topics**
+ [appstream-embed JavaScript 파일 가져오기](#import-embed-javascript-file)
+ [`AppStream.Embed` 인터페이스 객체 초기화 및 구성](#initialize-configure-embed-interface-object)
+ [WorkSpaces 애플리케이션 사용자 인터페이스에서 항목을 숨기는 예제](#examples-hiding-user-interface-items)

## appstream-embed JavaScript 파일 가져오기
<a name="import-embed-javascript-file"></a>

1. WorkSpaces 애플리케이션 스트리밍 세션을 포함할 웹 페이지에서 다음 코드를 추가하여 **appstream-embed.js** 파일을 웹 페이지로 가져옵니다.

   ```
   <script type="text/javascript" src="./appstream_embed.js"> </script>
   ```

1. 그런 다음 빈 컨테이너 div를 만듭니다. 설정한 div의 ID는 WorkSpaces 애플리케이션 임베드 생성자로 전달됩니다. 그런 다음 스트리밍 세션용 iframe을 주입하는 데 사용됩니다. div를 만들려면 다음 코드를 추가하십시오.

   ```
   <div id="appstream-container"> </div>
   ```

## `AppStream.Embed` 인터페이스 객체 초기화 및 구성
<a name="initialize-configure-embed-interface-object"></a>

JavaScript에서 `AppStream.Embed` 인터페이스 객체를 초기화하려면 스트리밍 URL 및 사용자 인터페이스 구성에 대한 옵션을 사용하여 `AppStream.Embed` 객체를 생성하는 코드를 추가해야 합니다. 이러한 옵션과 직접 생성한 div ID는 `appstreamOptions`라는 객체에 저장됩니다.

다음 예제 코드는 `AppStream.Embed` 인터페이스 객체를 초기화하는 방법을 보여줍니다.

```
var appstreamOptions = {
     sessionURL: 'https://appstream2.region.aws.amazon.com/authenticate?parameters=authenticationcode...',
     userInterfaceConfig:{[AppStream.Embed.Options.HIDDEN_ELEMENTS]:[AppStream.Embed.Elements.TOOLBAR]}
 };
 appstreamEmbed = new AppStream.Embed("appstream-container", appstreamOptions);
```

코드에서 *sessionURL* 및 *userInterfaceConfig*를 고유한 값으로 바꿉니다.

**참고**  
*userInterfaceConfig*에 지정된 값은 전체 WorkSpaces 애플리케이션 도구 모음을 숨깁니다. 예제로 포함되는 이 값은 선택 사항입니다.

***sessionUrl***  
WorkSpaces 애플리케이션 콘솔, [CreateStreamingURL](https://docs.aws.amazon.com/appstream2/latest/APIReference/API_CreateStreamingURL.html) API 작업 또는 [create-streaming-url](https://docs.aws.amazon.com/cli/latest/reference/appstream/create-streaming-url.html) AWS CLI 명령을 사용하여 생성한 스트리밍 URL입니다. 이 파라미터는 대소문자를 구분합니다.  
**유형**: 문자열  
**필수 항목 여부:** 예

***userInterfaceConfig***  
사용자 인터페이스 요소의 초기 상태를 생성하는 구성입니다. 구성은 키-값 페어입니다.  
키는 임베디드 WorkSpaces 애플리케이션 스트리밍 세션이 초기화될 때 처음 숨겨지는 사용자 인터페이스 객체를 `AppStream.Embed.Options.HIDDEN_ELEMENTS`지정합니다. 나중에 `getInterfaceState` 파라미터를 사용하여 숨겨진 객체와 보이는 객체를 모두 반환할 수 있습니다.  
이 값은 상수의 배열(도구 모음 버튼)입니다. 사용할 수 있는 상수 목록은 [`HIDDEN_ELEMENTS` 작업](constants-functions-events-embedded-sessions.md#constants-hidden-elements) 단원을 참조하십시오.  
**유형**: 맵(*키*:*값*)  
**필수 항목 여부**: 아니요

## WorkSpaces 애플리케이션 사용자 인터페이스에서 항목을 숨기는 예제
<a name="examples-hiding-user-interface-items"></a>

이 섹션의 예제에서는 임베디드 WorkSpaces 애플리케이션 스트리밍 세션 중에 WorkSpaces 애플리케이션 사용자 인터페이스의 항목을 사용자에게 숨기는 방법을 보여줍니다.

**Topics**
+ [예제 1: 전체 WorkSpaces 애플리케이션 도구 모음 숨기기](#example-hide-the-entire-tooolbar)
+ [예제 2: WorkSpaces 애플리케이션 도구 모음에서 특정 버튼 숨기기](#example-hide-a-specific-toolbar-button)
+ [예제 3: WorkSpaces 애플리케이션 도구 모음에서 여러 버튼 숨기기](#example-hide-multiple-toolbar-buttons)

### 예제 1: 전체 WorkSpaces 애플리케이션 도구 모음 숨기기
<a name="example-hide-the-entire-tooolbar"></a>

임베디드 스트리밍 세션 중에 사용자가 WorkSpaces 애플리케이션 도구 모음의 버튼에 액세스하지 못하도록 하려면 `AppStream.Embed.Elements.TOOLBAR` 상수를 사용합니다. 이 상수를 사용하면 모든 WorkSpaces 애플리케이션 도구 모음 버튼을 숨길 수 있습니다.

```
var appstreamOptions = {
     sessionURL: 'https://appstream2.region.aws.amazon.com/authenticate?parameters=authenticationcode...',
     userInterfaceConfig:{[AppStream.Embed.Options.HIDDEN_ELEMENTS]:[AppStream.Embed.Elements.TOOLBAR]}
 };
```

### 예제 2: WorkSpaces 애플리케이션 도구 모음에서 특정 버튼 숨기기
<a name="example-hide-a-specific-toolbar-button"></a>

임베디드 스트리밍 세션 중에 사용자가 특정 도구 모음 버튼에 액세스하지 못하도록 WorkSpaces 애플리케이션 도구 모음을 표시할 수 있습니다. 이렇게 하려면 숨기려는 버튼에 상수를 지정합니다. 다음 코드는 `AppStream.Embed.Elements.FILES_BUTTON` 상수를 사용하여 **내 파일** 버튼을 숨깁니다. 이렇게 하면 사용자가 임베디드 스트리밍 세션 중에 영구 스토리지 옵션에 액세스할 수 없습니다.

```
var appstreamOptions = {
     sessionURL: 'https://appstream2.region.aws.amazon.com/authenticate?parameters=authenticationcode...',
     userInterfaceConfig:{[AppStream.Embed.Options.HIDDEN_ELEMENTS]:[AppStream.Embed.Elements.FILES_BUTTON]}
 };
```

### 예제 3: WorkSpaces 애플리케이션 도구 모음에서 여러 버튼 숨기기
<a name="example-hide-multiple-toolbar-buttons"></a>

임베디드 스트리밍 세션 중에 사용자가 둘 이상의 도구 모음 버튼에 액세스하지 못하도록 WorkSpaces 애플리케이션 도구 모음을 표시할 수 있습니다. 이렇게 하려면 숨기려는 버튼에 상수를 지정합니다. 다음 코드는 `AppStream.Embed.Elements.END_SESSION_BUTTON` 및 `AppStream.Embed.Elements.FULLSCREEN_BUTTON` 상수를 사용하여 **End Session(세션 종료)** 및 **Fullscreen(전체 화면)** 버튼을 숨깁니다.

**참고**  
앞이나 뒤에 공백 없이 각 상수를 쉼표로 구분합니다.

```
var appstreamOptions = {
     sessionURL: 'https://appstream2.region.aws.amazon.com/authenticate?parameters=authenticationcode... (https://appstream2.region.aws.amazon.com/#/)',
     userInterfaceConfig:{[AppStream.Embed.Options.HIDDEN_ELEMENTS]:[AppStream.Embed.Elements.END_SESSION_BUTTON,AppStream.Embed.Elements.FULLSCREEN_BUTTON]}
 };
```

# 임베디드 Amazon WorkSpaces 애플리케이션 스트리밍 세션의 상수, 함수 및 이벤트
<a name="constants-functions-events-embedded-sessions"></a>

다음 주제에서는 임베디드 WorkSpaces 애플리케이션 스트리밍 세션을 구성하는 데 사용할 수 있는 상수, 함수 및 이벤트에 대한 참조 정보를 제공합니다.

**Topics**
+ [`HIDDEN_ELEMENTS` 작업](#constants-hidden-elements)
+ [`AppStream.Embed` 객체에 대한 함수](#functions-embed-object)
+ [임베디드 WorkSpaces 애플리케이션 스트리밍 세션 이벤트](#events-embedded-streaming-sessions)
+ [이벤트 리스너 추가 및 임베디드 WorkSpaces 애플리케이션 스트리밍 세션 종료 예제](#examples-add-event-listeners-end-embedded-streaming-session)

임베디드 WorkSpaces Applications 스트리밍 세션이 초기화되면 다음 WorkSpaces Applications 사용자 인터페이스 요소를 `HIDDEN_ELEMENTS` 구성 옵션으로 전달할 수 있습니다.

## `HIDDEN_ELEMENTS` 작업
<a name="constants-hidden-elements"></a>

임베디드 WorkSpaces 애플리케이션 스트리밍 세션이 초기화되면 다음 WorkSpaces 애플리케이션 사용자 인터페이스 요소를 `HIDDEN_ELEMENTS` 구성 옵션으로 상수로 전달할 수 있습니다.

```
AppStream.Embed.Elements.TOOLBAR
AppStream.Embed.Elements.FULLSCREEN_BUTTON
AppStream.Embed.Elements.END_SESSION_BUTTON
AppStream.Embed.Elements.TOOLBAR
AppStream.Embed.Elements.CATALOG_BUTTON
AppStream.Embed.Elements.WINDOW_SWITCHER_BUTTON
AppStream.Embed.Elements.FILES_BUTTON
AppStream.Embed.Elements.CLIPBOARD_BUTTON
AppStream.Embed.Elements.COPY_LOCAL_BUTTON
AppStream.Embed.Elements.PASTE_REMOTE_BUTTON
AppStream.Embed.Elements.SETTINGS_BUTTON
AppStream.Embed.Elements.STREAMING_MODE_BUTTON
AppStream.Embed.Elements.SCREEN_RESOLUTION_BUTTON
AppStream.Embed.Elements.REGIONAL_SETTINGS_BUTTON
AppStream.Embed.Elements.FULLSCREEN_BUTTON
AppStream.Embed.Elements.END_SESSION_BUTTON
```

다음 세 요소는 상수가 아닌 문자열로 HIDDEN\$1ELEMENTS에 전달할 수 있습니다.


| 문자열 | 설명 | 
| --- | --- | 
| 'adminCommandsButton' | WorkSpaces 애플리케이션 이미지 빌더에 연결하면 WorkSpaces 애플리케이션 도구 모음의 오른쪽 상단에 관리자 명령 버튼이 표시됩니다. 이 문자열을 HIDDEN\$1ELEMENTS에 전달하면 Admin Commands(관리 명령) 버튼이 숨겨집니다. | 
| 'softKeyboardButton' | 터치 지원 디바이스에서 WorkSpaces 애플리케이션 스트리밍 세션 중에 사용자는 WorkSpaces 애플리케이션 도구 모음에서 키보드 아이콘을 탭하여 화면 키보드를 표시할 수 있습니다. 이 문자열을 HIDDEN\$1ELEMENTS에 전달하면 키보드 아이콘이 숨겨집니다. | 
| 'keyboardShortcutsButton' | 터치 지원 디바이스에서 WorkSpaces 애플리케이션 스트리밍 세션 중에 사용자는 WorkSpaces 애플리케이션 도구 모음에서 Fn 아이콘을 탭하여 키보드 바로 가기를 표시할 수 있습니다. 이 문자열을 HIDDEN\$1ELEMENTS에 전달하면 Fn 아이콘이 숨겨집니다. | 

## `AppStream.Embed` 객체에 대한 함수
<a name="functions-embed-object"></a>

다음 표에는 `AppStream.Embed` 객체에 대해 수행할 수 있는 함수가 나열되어 있습니다.


| 함수 | 설명 | 
| --- | --- | 
| AppStream.Embed(containerId:string, options:object) | AppStream.Embed 객체 생성자입니다. 이 생성자는 AppStream.Embed 객체를 초기화하고 통신을 수행하며 div 컨테이너 ID를 사용합니다. ID는 iframe을 주입하는 데 사용됩니다. 또한 appstreamOptions(sessionURL 및 HIDDEN\$1ELEMENTS)의 구성 옵션을 포함하는 객체를 주입합니다. | 
| endSession() | 이 함수는 스트리밍 세션을 종료하지만 iframe을 파괴하지는 않습니다. 리디렉션 URL을 지정하면 iframe이 URL을 로드하려고 시도합니다. 페이지의 CORS 헤더에 따라 URL이 로드되지 않을 수 있습니다. | 
| launchApp(appId:string) | 이 함수는 이미지 생성 중에 지정된 애플리케이션 ID로 애플리케이션을 프로그래밍 방식으로 시작합니다. | 
| launchAppSwitcher() | 이 함수는 AppSwitcher 명령을 WorkSpaces 애플리케이션 포털로 보냅니다. 그러면 인스턴스에서 AppSwitcher 명령이 트리거됩니다. | 
| getSessionState() | 이 함수는 sessionStatus에 대한 객체를 반환합니다. 자세한 내용은 [임베디드 WorkSpaces 애플리케이션 스트리밍 세션 이벤트](#events-embedded-streaming-sessions) 단원을 참조하십시오. | 
| getUserInterfaceState() | 이 함수는 `UserInterfaceState`에 대한 객체를 반환합니다. 객체에는 다음에 대한 키-값 페어가 포함되어 있습니다. `sessionStatus`: 상태 열거 `sessionTerminationReason`: 문자열 `sessionDisconnectionReason`: 문자열  자세한 내용은 [임베디드 WorkSpaces 애플리케이션 스트리밍 세션 이벤트](#events-embedded-streaming-sessions) 단원을 참조하십시오.  | 
| addEventListener(name, callback) | 이 함수는 지정된 이벤트가 트리거될 때 호출할 콜백 함수를 추가합니다. 트리거할 수 있는 이벤트 목록은 [임베디드 WorkSpaces 애플리케이션 스트리밍 세션 이벤트](#events-embedded-streaming-sessions) 단원을 참조하십시오. | 
| removeEventListener(name, callback) | 이 함수는 지정된 이벤트에 대한 콜백을 제거합니다. | 
| destroy() | 이 함수는 iframe을 삭제하고 리소스를 정리합니다. 이 함수는 진행 중인 스트리밍 세션에는 영향을 주지 않습니다. | 

## 임베디드 WorkSpaces 애플리케이션 스트리밍 세션 이벤트
<a name="events-embedded-streaming-sessions"></a>

다음 표에는 임베디드 WorkSpaces 애플리케이션 스트리밍 세션 중에 트리거할 수 있는 이벤트가 나열되어 있습니다.


| Event | 데이터 | 설명 | 
| --- | --- | --- | 
| AppStream.Embed.Events.SESSION\$1STATE\$1CHANGE |  `sessionStatus`: `State enumeration` `sessionTerminationReason`: 문자열 `sessionDisconnectionReason`: 문자열  | 이 이벤트는 세션 상태 변경이 발생할 때 트리거됩니다. 이 이벤트에는 변경된 상태의 맵이 포함됩니다. 전체 세션 상태를 검색하려면 `getSessionState()` 함수를 사용합니다. 세션 상태는 다음과 같습니다. `AppStream.Embed.SessionStatus.Unknown` - 세션이 시작되지 않았으며 예약되지 않았습니다. `AppStream.Embed.SessionStatus.Reserved` - 세션이 예약되었지만 시작되지 않았습니다. `AppStream.Embed.SessionStatus.Started` - 사용자가 세션에 연결했고 스트리밍을 시작했습니다. `AppStream.Embed.SessionStatus Disconnected ` - 사용자의 세션 연결이 끊겼습니다. `AppStream.Embed.SessionStatus.Ended` - 세션이 종료됨 또는 만료됨으로 표시되었습니다.  | 
| AppStream.Embed.Events.SESSION\$1INTERFACE\$1STATE\$1CHANGE | `hiddenElements`: 문자열 배열  `isFullscreen`: 부울 `isSoftKeyboardVisible`: 부울  | 이 이벤트는 세션 상태 변경이 발생할 때 트리거됩니다. 이 이벤트에는 변경된 상태의 맵이 포함됩니다. 전체 세션 상태를 검색하려면 getSessionState() 함수를 사용합니다. | 
| AppStream.Embed.Events.SESSION\$1ERROR | `errorCode`: 숫자 `errorMessage`: 문자열  | 이 이벤트는 세션 중에 오류가 발생할 때 트리거됩니다. | 

## 이벤트 리스너 추가 및 임베디드 WorkSpaces 애플리케이션 스트리밍 세션 종료 예제
<a name="examples-add-event-listeners-end-embedded-streaming-session"></a>

이 섹션의 예제에서는 다음을 수행하는 방법을 보여 줍니다.
+ 임베디드 WorkSpaces 애플리케이션 스트리밍 세션에 대한 이벤트 리스너를 추가합니다.
+ 임베디드 WorkSpaces 애플리케이션 스트리밍 세션을 프로그래밍 방식으로 종료합니다.

### 예제 1: 임베디드 WorkSpaces 애플리케이션 스트리밍 세션에 대한 이벤트 리스너 추가
<a name="example-add-event-listeners"></a>

임베디드 스트리밍 세션 중에 세션 상태 변경, 세션 인터페이스 상태 변경 및 세션 오류에 대한 이벤트 리스너를 추가하려면 다음 코드를 사용합니다.

```
appstreamEmbed.addEventListener(AppStream.Embed.Events.SESSION_STATE_CHANGE, updateSessionStateCallback);

appstreamEmbed.addEventListener(AppStream.Embed.Events.SESSION_INTERFACE_STATE_CHANGE, updateUserInterfaceStateCallback);

appstreamEmbed.addEventListener(AppStream.Embed.Events.SESSION_ERROR, errorCallback);
```

이 예에서 `AppStream.Embed.Events.SESSION_STATE_CHANGE`, `AppStream.Embed.Events.SESSION_INTERFACE_STATE_CHANGE`, 및 `AppStream.Embed.Events.SESSION_ERROR`는 이벤트 이름입니다.

`updateSessionStateCallback`, `updateUserInterfaceStateCallback`, 및 `errorCallback` 함수는 직접 구현하는 함수입니다. 이러한 함수는 `addEventListener` 함수에 전달되고, 이벤트가 트리거되면 호출됩니다.

### 예제 2: 임베디드 WorkSpaces 애플리케이션 스트리밍 세션을 프로그래밍 방식으로 종료
<a name="programmatically-end-embedded-streaming-session"></a>

임베디드 WorkSpaces 애플리케이션 스트리밍 세션을 종료하려면 다음 함수를 사용합니다.

```
appstreamEmbed.endSession();
```