애플리케이션 구성¶
이 항목에서는 Snowflake Native App 이 애플리케이션 구성 오브젝트를 사용하여 컨슈머로부터 입력을 요청하는 방법에 대해 설명합니다.
애플리케이션 구성: 개요¶
애플리케이션 구성은 Snowflake Native App 및 컨슈머 간의 조정 메커니즘을 제공하는 키-값 페어입니다. Snowflake Native App 에 컨슈머의 입력이 필요한 경우 구성의 목적을 설명하는 설명과 함께 구성 키를 정의합니다. 그런 다음 컨슈머는 해당 키의 값을 제공합니다.
애플리케이션 구성은 다음 유형을 지원합니다.
APPLICATION_NAME컨슈머가 컨슈머 계정에 설치된 앱의 이름을 제공합니다. 이 유형은 앱 간 통신 에 사용됩니다.
STRING컨슈머가 임의의 문자열 값을 제공합니다. 이 유형은 외부 URLs, 계정 식별자 또는 기타 앱별 설정을 제공하는 등 다양한 사용 사례에 사용할 수 있습니다.
애플리케이션 구성 워크플로에는 다음 단계가 포함됩니다.
앱은 :code:`ALTER APPLICATION SET CONFIGURATION DEFINITION`을 통해 구성 정의를 생성하여 필요한 정보 유형과 구성에 액세스할 수 있는 앱 역할을 지정합니다.
컨슈머는
SHOW CONFIGURATIONS또는 Snowsight 를 사용하여 수신되는 구성 요청을 봅니다.컨슈머는
ALTER APPLICATION SET CONFIGURATION VALUE또는 Snowsight 를 사용하여 요청된 값을 제공합니다.앱은 값을 검색하고 이를 사용하여 연결에 대한 애플리케이션 사양 생성과 같은 추가 작업을 수행합니다.
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;
다음 속성은 구성이 표시되고 관리되는 방식을 제어합니다.
LABEL: Snowsight 에서 컨슈머에게 표시되는 이름입니다.DESCRIPTION: 컨슈머가 구성의 목적을 이해하는 데 도움이 되는 설명입니다.APPLICATION_ROLES: 이 구성의 값을 보고 설정할 수 있는 앱 역할입니다. 지정된 앱 역할 중 하나가 부여된 컨슈머 역할은 구성을 보고 값을 편집할 수 있습니다.SENSITIVE: 구성 값을 민감한 것으로 처리해야 할지 여부를 지정합니다. ``TRUE``로 설정된 경우 값은SHOW CONFIGURATIONS`의 출력에 표시되지 않습니다. 자세한 내용은 :ref:`label-native_apps_app_configuration_sensitive섹션을 참조하십시오.
구성 요청 보기¶
앱이 구성 요청을 생성한 후 컨슈머는 SQL 또는 Snowsight 를 사용하여 보류 중인 요청을 볼 수 있습니다.
SQL을 사용하여 구성 요청 및 구성 정의의 세부 정보를 보려면 SHOW CONFIGURATIONS 및 DESCRIBE CONFIGURATION 명령을 사용합니다.
SHOW CONFIGURATIONS IN APPLICATION example_app;
DESCRIBE CONFIGURATION company_url IN APPLICATION example_app;
Snowsight 를 사용하여 구성 요청 및 구성 정의의 세부 정보를 보려면 다음을 수행합니다.
Snowsight 에 로그인합니다.
탐색 메뉴에서 Catalog » Apps 를 선택합니다.
앱을 선택합니다.
Security 탭을 엽니다. Configurations 섹션에는 Other configurations 섹션의 문자열 구성이 표시됩니다. 각 문자열 구성은 다음을 보여줍니다.
구성의 레이블.
구성의 용도에 대한 설명.
Review 버튼.
구성 값 제공¶
앱이 구성 요청을 생성한 후 컨슈머는 SQL 또는 Snowsight 를 사용하여 요청된 값을 제공합니다.
SQL을 사용하여 구성에 대한 값을 제공하려면 ALTER APPLICATION SET CONFIGURATION VALUE 명령을 사용합니다.
ALTER APPLICATION <app> SET CONFIGURATION <config> VALUE = '<value>';
Snowsight 를 사용하여 구성에 대한 값을 제공하려면 다음을 수행합니다.
Snowsight 의 구성 세부 정보 페이지에서 Review 버튼을 클릭합니다. 구성 세부 정보 페이지에는 다음이 표시됩니다.
구성의 레이블.
구성의 용도에 대한 설명.
구성이 민감한 경우 Sensitive data protection 배너가 표시됩니다. 자세한 내용은 민감한 구성 섹션을 참조하십시오.
Value 필드의 구성에 대한 값을 제공합니다.
Save 버튼을 클릭하여 구성에 대한 값을 제출합니다. :ui:`Configuration updated successfully`가 표시됩니다. 구성 목록이 새로 고쳐져 새 값이 표시됩니다.
구성 값 업데이트¶
SQL 또는 Snowsight 를 사용하여 구성의 값을 업데이트할 수 있습니다.
구성 값을 업데이트하려면 초기 값을 설정하는 구문과 동일한 구문을 사용합니다.
ALTER APPLICATION <app> SET CONFIGURATION <config> VALUE = '<value>';
Snowsight 를 사용하여 구성의 값을 업데이트하려면 다음을 수행합니다.
Snowsight 의 구성 세부 정보 페이지에서 구성에 설정된 값이 있는 경우 다음 정보가 표시됩니다.
Configured 배너.
구성이 민감하지 않은 경우 해당 값이 표시됩니다.
구성이 민감한 경우 해당 값이 마스킹됩니다.
Update 버튼.
Clear value 버튼.
Edit 버튼을 클릭하여 구성의 값을 업데이트합니다.
Value 필드에서 구성에 대한 새 값을 제공합니다.
Save 버튼을 클릭하여 구성에 대한 새 값을 제출합니다. :ui:`Configuration updated successfully`가 표시됩니다. 구성 목록이 새로 고쳐져 새 값이 표시됩니다.
구성 값 설정 해제¶
SQL 또는 Snowsight 를 사용하여 구성의 값을 설정 해제할 수 있습니다.
SQL을 사용하여 구성의 값을 설정 해제하려면 ALTER APPLICATION UNSET CONFIGURATION 명령을 사용합니다.
ALTER APPLICATION <app> UNSET CONFIGURATION <config>;
Snowsight 를 사용하여 구성의 값을 설정 해제하려면 다음을 수행합니다.
Snowsight 의 구성 세부 정보 페이지에서 Clear value 버튼을 클릭합니다.
작업을 확인합니다. 구성 목록이 새로 고쳐져 설정 해제된 구성이 표시됩니다.
구성의 값 검색¶
SHOW CONFIGURATIONS 또는 DESCRIBE CONFIGURATION 이외에, 앱은 컨슈머가 get_configuration_value 함수를 사용하여 제공한 구성의 값을 검색할 수 있습니다. 다음 예제에서는 구성의 값을 검색하는 방법을 보여줍니다.
SELECT SYS_CONTEXT('SNOWFLAKE$APPLICATION', 'GET_CONFIGURATION_VALUE' , '<config_name>')
참고
앱만 시스템 컨텍스트에서 구성 값을 검색할 수 있습니다. 컨슈머로서 구성 값을 보려면 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 명령¶
ALTER APPLICATION SET CONFIGURATION DEFINITION: 컨슈머로부터 값을 요청하는 애플리케이션 구성 정의를 생성하거나 업데이트합니다.
ALTER APPLICATION DROP CONFIGURATION DEFINITION: 애플리케이션 구성 정의를 삭제합니다.
ALTER APPLICATION SET CONFIGURATION VALUE: 애플리케이션 구성에서 값을 설정합니다.
ALTER APPLICATION UNSET CONFIGURATION: 애플리케이션 구성의 값을 설정 해제합니다.
SHOW CONFIGURATIONS: 앱의 모든 애플리케이션 구성을 나열합니다.
DESCRIBE CONFIGURATION: 애플리케이션 구성의 세부 정보를 설명합니다.
SQL 함수¶
IS_CONFIGURATION_SET(SYS_CONTEXT 함수): 구성에 값이 설정되어 있는지 여부를 반환합니다.
GET_CONFIGURATION_VALUE(SYS_CONTEXT 함수): 구성의 현재 값을 반환합니다.
Information Schema 뷰 및 함수¶
APPLICATION_CONFIGURATIONS 뷰: 이 Information Schema 뷰는 INFORMATION_SCHEMA가 있는 지정된 데이터베이스 또는 현재 데이터베이스에 현재 정의된 각 애플리케이션 구성에 대한 행을 표시합니다.
APPLICATION_CONFIGURATION_VALUE_HISTORY: 구성에 대한 값의 기록을 반환합니다.
Account Usage 스키마 뷰¶
APPLICATION_CONFIGURATIONS 뷰: 이 Account Usage 뷰는 계정의 각 애플리케이션 구성에 대한 행을 표시합니다.
APPLICATION_CONFIGURATION_VALUE_HISTORY 뷰: 이 Account Usage 뷰는 구성에 대한 값의 기록을 표시합니다.
콜백¶
구성 값이 변경되면 Snowflake Native App Framework 는 앱의 매니페스트 파일에 등록된 수명 주기 콜백을 호출할 수 있습니다. 이러한 콜백을 통해 앱은 구성 변경 사항을 확인하거나 준비하거나 이에 대응할 수 있습니다. 예를 들어, 앱 간 통신을 구성할 때 일반적인 사용 사례는 before_configuration_change 콜백을 사용하여 컨슈머가 서버 앱 이름을 설정할 때 연결 사양을 자동으로 생성하거나 업데이트하는 것입니다. 그러면 컨슈머가 구성 값을 설정한 후 추가적인 수동 단계를 수행할 필요가 없습니다. 앱 간 통신에 대한 자세한 내용은 앱 간 통신 섹션을 참조하세요.
다음 구성 콜백을 사용할 수 있습니다.
- validate_configuration_change
ALTER APPLICATION SET CONFIGURATION VALUE명령의 일부로 호출되는 동기 콜백입니다. 앱이 제공된 값에 대해 사용자 지정 유효성 검사를 수행할 수 있도록 합니다. 콜백이 오류를 반환하면 명령이 실패하고 새 값이 설정되지 않습니다.- before_configuration_change
ALTER APPLICATION SET CONFIGURATION VALUE및ALTER APPLICATION UNSET CONFIGURATION명령의 일부로 호출되는 동기 콜백입니다. 앱이 구성 값을 기반으로 작업을 수행한 후 저장되도록 합니다.- after_configuration_change
ALTER APPLICATION SET CONFIGURATION VALUE또는ALTER APPLICATION UNSET CONFIGURATION명령이 완료된 후 호출되는 비동기 콜백입니다. 알림 또는 추적 목적으로 앱이 변경 사항에 대응할 수 있도록 합니다.
전체 콜백 서명 및 반환 값은 콜백 섹션을 참조하세요.