CREATE APPLICATION

애플리케이션 패키지 또는 목록을 기준으로 |native-app|을 만듭니다. 공급자는 이 명령을 사용하여 개발 계정에 앱을 설치합니다.

이 명령이 실행되면 :doc:`설정 스크립트</developer-guide/native-apps/creating-setup-script>`를 실행하여 앱을 만듭니다.

참고 항목:

ALTER APPLICATION, DESCRIBE APPLICATION, DROP APPLICATION, SHOW APPLICATIONS

구문

CREATE APPLICATION <name> FROM APPLICATION PACKAGE <package_name>
   [ USING RELEASE CHANNEL { QA | ALPHA | DEFAULT } ]
   [ COMMENT = '<string_literal>' ]
   [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
   [ AUTHORIZE_TELEMETRY_EVENT_SHARING = { TRUE | FALSE } ]
   [ WITH FEATURE POLICY = <policy_name> ]

CREATE APPLICATION <name> FROM APPLICATION PACKAGE <package_name>
  USING <path_to_version_directory>
  [ DEBUG_MODE = { TRUE | FALSE } ]
  [ COMMENT = '<string_literal>' ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [, ...] ) ]
  [ AUTHORIZE_TELEMETRY_EVENT_SHARING = { TRUE | FALSE } ]
  [ WITH FEATURE POLICY = <policy_name> ]


CREATE APPLICATION <name> FROM APPLICATION PACKAGE <package_name>
  USING VERSION  <version_identifier> [ PATCH <patch_num> ]
  [ DEBUG_MODE = { TRUE | FALSE } ]
  [ COMMENT = '<string_literal>' ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
  [ AUTHORIZE_TELEMETRY_EVENT_SHARING = { TRUE | FALSE } ]
  [ WITH FEATURE POLICY = <policy_name> ]

CREATE APPLICATION <name> FROM LISTING <listing_name>
   [ USING RELEASE CHANNEL { QA | ALPHA | DEFAULT } ]
   [ COMMENT = '<string_literal>' ]
   [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
   [ BACKGROUND_INSTALL = { TRUE | FALSE } ]
   [ AUTHORIZE_TELEMETRY_EVENT_SHARING = { TRUE | FALSE } ]
   [ WITH FEATURE POLICY = <policy_name> ]
Copy

필수 매개 변수

name

데이터베이스의 식별자를 지정합니다. 계정에 대해 고유해야 합니다.

또한, 식별자는 알파벳 문자로 시작해야 하며 전체 식별자 문자열을 큰따옴표(예: "My object")로 묶지 않는 한 공백이나 특수 문자를 포함할 수 없습니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.

자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.

FROM APPLICATION PACKAGE package_name

앱을 만드는 데 사용되는 애플리케이션 패키지의 이름을 지정합니다. 이 절을 사용하여 스테이지나 버전 및 패치를 지정하지 않고 애플리케이션 패키지에서 앱을 생성하려면 애플리케이션 패키지에 기본 릴리스 지시문이 정의되어 있어야 합니다.

이 절은 애플리케이션 패키지와 동일한 계정에서 앱을 만드는 데만 사용할 수 있습니다. 이 절은 개발 모드에서 앱을 만드는 데 사용할 수 없습니다.

FROM LISTING listing_name

앱을 만드는 데 사용되는 애플리케이션 패키지가 포함된 목록의 이름을 지정합니다.

USING RELEASE CHANNEL QA | ALPHA | DEFAULT

앱을 만드는 데 사용되는 애플리케이션 패키지 또는 목록에 정의된 릴리스 채널을 지정합니다. 이 절을 지정하지 않으면 기본 릴리스 채널이 사용됩니다.

  • :code:`QA`는 품질 보증 릴리스 채널을 지정합니다.

  • :code:`ALPHA`는 알파 릴리스 채널을 지정합니다.

  • :code:`DEFAULT`는 기본 릴리스 채널을 지정합니다.

이 절은 릴리스 지시문이 정의된 애플리케이션 패키지에서 앱을 만들거나 목록에서 앱을 만들 때만 사용할 수 있습니다.

USING path_to_version_directory

앱에 필요한 파일이 포함된 스테이지의 경로를 지정합니다.

USING version [ PATCH patch_num ]

앱을 만드는 데 사용되는 애플리케이션 패키지에 정의된 버전을 지정하며 선택적으로 패치도 지정합니다.

선택적 매개 변수

COMMENT = 'string_literal'

앱에 대한 설명을 지정합니다.

기본값: 값 없음

DEBUG_MODE = { TRUE | FALSE }

생성 중인 앱의 :ref:`디버그 모드<label-native_apps_testing_debug_mode>`를 활성화하거나 비활성화합니다. 디버그 모드를 사용하면 공급자가 앱의 내용을 볼 수 있습니다.

  • :code:`TRUE`를 설정하면 설치된 앱의 디버그 모드가 활성화됩니다.

  • :code:`FAlSE`를 설정하면 설치된 앱의 디버그 모드가 비활성화됩니다.

참고

다음 조건에서만 디버그 모드를 활성화할 수 있습니다.

  • 앱이 애플리케이션 패키지와 동일한 계정에 있습니다.

  • 앱이 특정 버전을 기준으로 생성되거나 명명된 스테이지의 파일에서 생성됩니다.

TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )

태그 이름과 태그 문자열 값을 지정합니다.

태그 값은 항상 문자열이며, 태그 값의 최대 문자 수는 256자입니다.

문에서 태그를 지정하는 방법에 대한 자세한 내용은 태그 할당량 섹션을 참조하십시오.

BACKGROUND_INSTALL = { TRUE | FALSE }

백그라운드의 목록에서 앱을 만듭니다. 이 절을 지정하면 명령이 즉시 프롬프트를 표시하고 설치 프로세스는 백그라운드에서 계속됩니다. 설치 상태를 모니터링하려면 DESCRIBE APPLICATION 명령을 사용하세요.

참고

이 절을 사용하면 명령이 실패하더라도 앱이 생성됩니다. 이 상황에서는 DROP APPLICATION 명령을 다시 실행하기 전에 CREATE APPLICATION 명령을 사용하여 오브젝트를 삭제하세요.

이 절은 주로 Snowsight 에서 백그라운드에 Snowflake Native App 을 설치하는 데 사용됩니다. 컨슈머는 백그라운드 설치를 통해 설치 중에 Snowsight 의 목록에서 벗어날 수 있습니다. 공급자는 목록을 게시하기 전에 목록에서 Snowflake Native App 설치를 테스트할 때 이 절을 사용할 수 있습니다.

AUTHORIZE_TELEMETRY_EVENT_SHARING = { TRUE | FALSE }

앱에서 로그 및 이벤트 공유 를 활성화합니다.

WITH FEATURE POLICY = policy_name

지정된 기능 정책으로 앱을 만듭니다. 앱이 기능 정책에서 금지하는 오브젝트(예: 데이터베이스)를 만들려고 시도하면 명령이 실패합니다.

액세스 제어 요구 사항

이 작업을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.

권한

오브젝트

참고

CREATE APPLICATION

계정

DEVELOP

애플리케이션 패키지

INSTALL

애플리케이션 패키지

IMPORT SHARE

CREATE APPLICATION

계정

애플리케이션 패키지가 포함된 계정과는 다른 계정에서 앱을 생성하려면 이러한 권한이 필요합니다.

APPLY FEATURE POLICY

APPLY 또는 OWNERSHIP

계정

기능 정책

WITH FEATURE POLICY 절을 사용하여 앱을 만들 때 기능 정책을 적용하려면 이러한 권한이 필요합니다.

사용법 노트

  • 애플리케이션 패키지에서 직접 앱을 만들려면 애플리케이션 패키지에서 기본 릴리스 지시문을 지정해야 합니다.

  • 앱은 다음과 같은 점에서 데이터베이스와 다릅니다.

    • 앱은 일시적이지 않을 수 있습니다.

    • 앱에 대한 OWNERSHIP 권한이 있는 역할에는 다음과 같은 기능과 제한 사항이 있습니다.

      • 데이터베이스를 삭제하거나 COMMENT 속성뿐 아니라 앱과 관련된 모든 속성도 수정할 수 있습니다.

      • 애플리케이션 역할에 부여된 권한을 통하는 경우를 제외하면 앱의 내용을 보거나 수정할 수 없습니다.

      • 스키마 또는 데이터베이스 역할과 같은 데이터베이스 수준 오브젝트를 만들 수 없습니다.

  • 메타데이터 관련:

    주의

    고객은 Snowflake 서비스를 사용할 때 개인 데이터(사용자 오브젝트 제외), 민감한 데이터, 수출 통제 대상 데이터 또는 기타 규제 데이터가 메타데이터로 입력되지 않도록 해야 합니다. 자세한 내용은 Snowflake의 메타데이터 필드 섹션을 참조하십시오.

  • CREATE OR REPLACE <오브젝트> 문은 원자성입니다. 즉, 오브젝트가 바뀔 때 단일 트랜잭션으로 이전 오브젝트가 삭제되고 새 오브젝트가 생성됩니다.

CREATE APPLICATION hello_snowflake_app
  FROM APPLICATION PACKAGE hello_snowflake_package
  USING VERSION v1;
Copy
+---------------------------------------------------------+
| status                                                  |
|---------------------------------------------------------|
| Application 'hello_snowflake_app' created successfully. |
+---------------------------------------------------------+
CREATE APPLICATION hello_snowflake_app
  FROM APPLICATION PACKAGE hello_snowflake_package
  USING '@hello_snowflake_code.core.hello_snowflake_stage';
Copy
+---------------------------------------------------------+
| status                                                  |
|---------------------------------------------------------|
| Application 'hello_snowflake_app' created successfully. |
+---------------------------------------------------------+