애플리케이션 구성

이 항목에서는 Snowflake Native App 이 애플리케이션 구성 오브젝트를 사용하여 컨슈머로부터 입력을 요청하는 방법에 대해 설명합니다.

애플리케이션 구성: 개요

애플리케이션 구성은 Snowflake Native App 및 컨슈머 간의 조정 메커니즘을 제공하는 키-값 페어입니다. Snowflake Native App 에 컨슈머의 입력이 필요한 경우 구성의 목적을 설명하는 설명과 함께 구성 키를 정의합니다. 그런 다음 컨슈머는 해당 키의 값을 제공합니다.

애플리케이션 구성은 다음 유형을 지원합니다.

APPLICATION_NAME

컨슈머가 컨슈머 계정에 설치된 앱의 이름을 제공합니다. 이 유형은 앱 간 통신 에 사용됩니다.

STRING

컨슈머가 임의의 문자열 값을 제공합니다. 이 유형은 외부 URLs, 계정 식별자 또는 기타 앱별 설정을 제공하는 등 다양한 사용 사례에 사용할 수 있습니다.

애플리케이션 구성 워크플로에는 다음 단계가 포함됩니다.

  1. 앱은 :code:`ALTER APPLICATION SET CONFIGURATION DEFINITION`을 통해 구성 정의를 생성하여 필요한 정보 유형과 구성에 액세스할 수 있는 앱 역할을 지정합니다.

  2. 컨슈머는 SHOW CONFIGURATIONS 또는 Snowsight 를 사용하여 수신되는 구성 요청을 봅니다.

  3. 컨슈머는 ALTER APPLICATION SET CONFIGURATION VALUE 또는 Snowsight 를 사용하여 요청된 값을 제공합니다.

  4. 앱은 값을 검색하고 이를 사용하여 연결에 대한 애플리케이션 사양 생성과 같은 추가 작업을 수행합니다.

Snowflake Native App Framework 는 구성 값이 설정되거나 변경될 때 앱에 알림을 보내는 콜백을 제공합니다. 자세한 내용은 구성 콜백 섹션을 참조하십시오.

용어

애플리케이션 구성에서는 다음 용어를 사용합니다.

구성 정의

앱이 컨슈머로부터 특정 정보를 요청하기 위해 생성하는 오브젝트입니다. 구성 정의는 요청된 정보의 유형, 레이블, 설명, 구성에 액세스할 수 있는 앱 역할을 지정합니다.

구성 값

컨슈머가 구성 정의 요청에 대한 응답으로 제공하는 값입니다.

구성 사용하기

이 섹션에서는 구성을 생성, 표시, 관리하는 방법을 설명합니다.

구성 요청 생성

컨슈머로부터 구성 값을 요청하기 위해 앱은 설정 스크립트에 또는 런타임 시 구성 정의를 생성합니다. 구성 정의는 예상되는 값의 유형, 컨슈머에게 표시되는 레이블 및 설명, 구성을 보고 값을 편집할 수 있는 앱 역할을 지정합니다.

다음 예제에서는 컨슈머로부터 회사 URL을 요청하는 STRING 유형의 구성 정의를 생성하는 방법을 보여줍니다.

ALTER APPLICATION SET CONFIGURATION DEFINITION company_url
  TYPE = STRING
  LABEL = 'Company URL'
  DESCRIPTION = 'Provide the company website URL'
  APPLICATION_ROLES = (app_user)
  SENSITIVE = FALSE;
Copy

다음 속성은 구성이 표시되고 관리되는 방식을 제어합니다.

  • LABEL: Snowsight 에서 컨슈머에게 표시되는 이름입니다.

  • DESCRIPTION: 컨슈머가 구성의 목적을 이해하는 데 도움이 되는 설명입니다.

  • APPLICATION_ROLES: 이 구성의 값을 보고 설정할 수 있는 앱 역할입니다. 지정된 앱 역할 중 하나가 부여된 컨슈머 역할은 구성을 보고 값을 편집할 수 있습니다.

  • SENSITIVE: 구성 값을 민감한 것으로 처리해야 할지 여부를 지정합니다. ``TRUE``로 설정된 경우 값은 SHOW CONFIGURATIONS`의 출력에 표시되지 않습니다. 자세한 내용은 :ref:`label-native_apps_app_configuration_sensitive 섹션을 참조하십시오.

구성 요청 보기

앱이 구성 요청을 생성한 후 컨슈머는 SQL 또는 Snowsight 를 사용하여 보류 중인 요청을 볼 수 있습니다.

SQL을 사용하여 구성 요청 및 구성 정의의 세부 정보를 보려면 SHOW CONFIGURATIONSDESCRIBE CONFIGURATION 명령을 사용합니다.

SHOW CONFIGURATIONS IN APPLICATION example_app;

DESCRIBE CONFIGURATION company_url IN APPLICATION example_app;
Copy

구성 값 제공

앱이 구성 요청을 생성한 후 컨슈머는 SQL 또는 Snowsight 를 사용하여 요청된 값을 제공합니다.

SQL을 사용하여 구성에 대한 값을 제공하려면 ALTER APPLICATION SET CONFIGURATION VALUE 명령을 사용합니다.

ALTER APPLICATION <app> SET CONFIGURATION <config> VALUE = '<value>';
Copy

구성 값 업데이트

SQL 또는 Snowsight 를 사용하여 구성의 값을 업데이트할 수 있습니다.

구성 값을 업데이트하려면 초기 값을 설정하는 구문과 동일한 구문을 사용합니다.

ALTER APPLICATION <app> SET CONFIGURATION <config> VALUE = '<value>';
Copy

구성 값 설정 해제

SQL 또는 Snowsight 를 사용하여 구성의 값을 설정 해제할 수 있습니다.

SQL을 사용하여 구성의 값을 설정 해제하려면 ALTER APPLICATION UNSET CONFIGURATION 명령을 사용합니다.

ALTER APPLICATION <app> UNSET CONFIGURATION <config>;
Copy

구성의 값 검색

SHOW CONFIGURATIONS 또는 DESCRIBE CONFIGURATION 이외에, 앱은 컨슈머가 get_configuration_value 함수를 사용하여 제공한 구성의 값을 검색할 수 있습니다. 다음 예제에서는 구성의 값을 검색하는 방법을 보여줍니다.

SELECT SYS_CONTEXT('SNOWFLAKE$APPLICATION', 'GET_CONFIGURATION_VALUE' , '<config_name>')
Copy

참고

앱만 시스템 컨텍스트에서 구성 값을 검색할 수 있습니다. 컨슈머로서 구성 값을 보려면 SQL 또는 Snowsight 중 하나를 사용하여 구성 세부 정보를 볼 수 있습니다. 자세한 내용은 구성 요청 보기 섹션을 참조하십시오.

민감한 구성

앱이 구성을 생성할 때 :code:`SENSITIVE = TRUE`를 설정하여 구성을 민감한 것으로 표시할 수 있습니다. 이는 앱이 컨슈머로부터 개인 액세스 토큰 또는 API 키와 같은 민감한 정보를 요청해야 할 때 유용합니다.

참고

SENSITIVE 속성은 STRING 유형의 구성에만 지원됩니다.

구성이 민감한 경우 컨슈머가 제공한 값은 다른 컨슈머 사용자 및 역할로부터 보호됩니다. Snowflake Native App Framework 는 Snowflake에서 :doc:`SECRET 오브젝트 </sql-reference/sql/create-secret>`에 사용되는 보호와 유사한 보호를 적용합니다.

  • 컨슈머가 값을 설정하면 ALTER APPLICATION SET CONFIGURATION VALUE 명령에 대한 쿼리 기록이 다른 컨슈머 역할이나 사용자에게 노출되지 않도록 값을 수정합니다.

  • 값은 SHOW CONFIGURATIONS, DESCRIBE CONFIGURATION, INFORMATION_SCHEMA 뷰 또는 ACCOUNT_USAGE 뷰의 출력에 표시되지 않습니다.

구성을 생성하는 앱은 구성이 민감한 경우에도 항상 컨슈머가 제공한 값을 검색할 수 있습니다. 이는 애플리케이션 구성의 목적이 컨슈머가 앱에 값을 제공하는 것이기 때문에 의도적으로 설계된 것입니다.

SENSITIVE 속성 변경하기

앱은 구성에 값이 설정되어 있는 동안(즉, 구성이 PENDING 상태가 아닌 경우) SENSITIVE 속성을 변경할 수 없습니다. 이 제한은 컨슈머의 값이 실수로 노출되는 것을 방지합니다. 값이 설정되어 있는 동안 앱이 SENSITIVE 속성 변경을 시도하는 경우 명령은 오류 없이 완료되지만 아무런 효과가 없습니다.

SENSITIVE 속성을 변경하려면 먼저 컨슈머가 :code:`ALTER APPLICATION UNSET CONFIGURATION`을 사용하여 구성 값을 설정 해제해야 합니다.

SQL 참조

다음 SQL 명령, 함수, 뷰는 애플리케이션 구성을 관리하는 데 사용됩니다.

SQL 명령

SQL 함수

Information Schema 뷰 및 함수

Account Usage 스키마 뷰

콜백

구성 값이 변경되면 Snowflake Native App Framework 는 앱의 매니페스트 파일에 등록된 수명 주기 콜백을 호출할 수 있습니다. 이러한 콜백을 통해 앱은 구성 변경 사항을 확인하거나 준비하거나 이에 대응할 수 있습니다. 예를 들어, 앱 간 통신을 구성할 때 일반적인 사용 사례는 before_configuration_change 콜백을 사용하여 컨슈머가 서버 앱 이름을 설정할 때 연결 사양을 자동으로 생성하거나 업데이트하는 것입니다. 그러면 컨슈머가 구성 값을 설정한 후 추가적인 수동 단계를 수행할 필요가 없습니다. 앱 간 통신에 대한 자세한 내용은 앱 간 통신 섹션을 참조하세요.

다음 구성 콜백을 사용할 수 있습니다.

validate_configuration_change

ALTER APPLICATION SET CONFIGURATION VALUE 명령의 일부로 호출되는 동기 콜백입니다. 앱이 제공된 값에 대해 사용자 지정 유효성 검사를 수행할 수 있도록 합니다. 콜백이 오류를 반환하면 명령이 실패하고 새 값이 설정되지 않습니다.

before_configuration_change

ALTER APPLICATION SET CONFIGURATION VALUEALTER APPLICATION UNSET CONFIGURATION 명령의 일부로 호출되는 동기 콜백입니다. 앱이 구성 값을 기반으로 작업을 수행한 후 저장되도록 합니다.

after_configuration_change

ALTER APPLICATION SET CONFIGURATION VALUE 또는 ALTER APPLICATION UNSET CONFIGURATION 명령이 완료된 후 호출되는 비동기 콜백입니다. 알림 또는 추적 목적으로 앱이 변경 사항에 대응할 수 있도록 합니다.

전체 콜백 서명 및 반환 값은 콜백 섹션을 참조하세요.