코드 번들 사양¶
이 사양은 템플릿에서 호출할 수 있는 하나 이상의 코드 함수 또는 프로시저의 번들을 정의합니다.
코드 번들 사양에는 최대 5개의 함수 및 프로시저가 포함될 수 있습니다.
다양한 종류의 코드 번들에 대한 예는 사양 예제 섹션을 참조하세요.
코드 번들 사양의 식별자에는 다음과 같은 일반적인 요구 사항이 있습니다.
이름: 문자로 시작하고 영숫자 문자와 밑줄만 포함하는 유효한 :doc:`Snowflake 식별자 </sql-reference/identifiers-syntax>`여야 합니다.
따옴표가 있는 식별자: 특수 문자가 포함된 이름에는 큰따옴표로 묶인 식별자가 지원됩니다.
대/소문자 구분: 따옴표가 없는 식별자는 대/소문자를 구분하지 않으며, 따옴표로 묶인 식별자는 대/소문자를 유지합니다.
api_version사용되는 Collaboration API의 버전입니다.
2.0.0여야 합니다.spec_type사양 유형 식별자입니다.
code_spec여야 합니다.name: identifier이 레지스트리 내에서 이 코드 번들 사양의 고유한 이름입니다. 최대 75자의 유효한 Snowflake 식별자 </sql-reference/identifiers-syntax>`여야 합니다. 템플릿에서 함수를 호출할 때 성 세그먼트로 사용됩니다. :samp:`cleanroom.{code_spec_name}${function_name}
version: version_id사용자 지정 버전 식별자입니다. 밑줄이 포함된 영숫자여야 하며, 최대 20자입니다.
- :samp:`description: {description_text}`(선택 사항)
코드 번들 사양에 대한 설명입니다(최대 1,000자).
- ``artifacts``(선택 사항)
함수 또는 프로시저에서 가져올 수 있는 스테이징된 파일이나 패키지의 목록으로, :ref:`처리기 함수를 통해 선택적으로 노출 <label-dcr_collab_code_bundles_staged_artifacts>`됩니다. 사양당 최대 5개입니다.
alias: identifier가져오기에서 이 아티팩트를 참조하기 위한 별칭입니다. 이 사양 내에서 이 별칭을 참조할 때 :samp:`cleanroom.{spec_name}${alias}`가 아닌 베어 별칭 이름을 사용합니다. 즉, 베어 함수 이름을 사용하여 이 사양의 다른 함수를 참조합니다.
stage_path: stage_path아티팩트 파일의 전체 스테이지 경로입니다. 예:
@DB.SCHEMA.STAGE/path/file.whl.
스테이지는 내부 스테이지여야 합니다. 외부 스테이지는 지원되지 않습니다.
스테이지에는 DIRECTORY가 활성화되어 있어야 합니다. 아티팩트가 포함된 스테이지에는 ``DIRECTORY = TRUE``가 설정되어 있어야 합니다.
스테이지 경로 유형:
@[DB.]SCHEMA.STAGE/path/to/file.ext형식을 따라야 합니다.경로 통과 없음: 스테이지 경로에는
..또는 ````를 포함할 수 없습니다.이 아티팩트가 있어야 합니다. 파일은 코드 번들이 등록될 때 지정된 스테이지 경로에 있어야 합니다.
스테이지에는 SNOWFLAKE_SSE 서버 측 암호화가 활성화되어 있어야 합니다. 스테이지를 생성하거나 변경할 때 :code:`ENCRYPTION = (TYPE = ‘SNOWFLAKE_SSE’)`를 설정합니다.
스테이징된 코드 파일을 푸시, 삭제 또는 업데이트하는 경우 :samp:`ALTER STAGE {stage name} REFRESH`를 호출하여 협업에 스테이지의 최신 정보가 있는지 확인해야 합니다. 코드 업데이트는 버전이 할당되고 해시 체크섬이 계산되는 시점인 코드 사양을 등록하기 전에만 지원됩니다.
- ``functions``(프로시저가 정의되지 않은 경우 필수)
UDF 또는 UDTF 정의의 목록입니다.
name: identifier호출 템플릿에 노출할 함수 이름입니다. 유효한 :doc:`Snowflake 식별자 </sql-reference/identifiers-syntax>`여야 합니다.
type함수 유형입니다.
UDF또는UDTF중 하나입니다.language함수 언어입니다. 현재는
PYTHON만 지원됩니다.- :samp:`runtime_version: {python_version}`(선택 사항)
사용할 Python 런타임 버전입니다. 지원되는 버전은 ``3.10``~``3.14``입니다.
handler: handler``name``이 호출된 경우 호출할 함수 코드의 처리기 함수 이름입니다.
- ``arguments``(선택 사항)
이름-유형 페어의 목록인 함수 인자입니다. 유형은 유효한 Snowflake SQL 유형이어야 합니다.
returns: sql_type반환 유형입니다. UDFs의 경우, STRING 또는 FLOAT과 같은 SQL 유형을 사용합니다. UDTFs 의 경우
TABLE(column_definitions)를 사용합니다.- ``packages``(선택 사항)
이 코드에서 사용하는 패키지 목록입니다. 해당 Anaconda Python 패키지 또는 해당 Snowpark API 패키지 <label-dcr_snowpark_udf>`일 수 있습니다. 예: ``snowflake-snowpark-python`,
numpy.- ``imports``(선택 사항)
가져올 아티팩트의 목록입니다. 이는 이 사양의 아티팩트 목록에 있는 별칭이어야 합니다.
- ``code_body``(선택 사항)
인라인 Python 코드입니다. 스테이징된 가져오기와 상호 배타적입니다. 최대 크기는 12MB입니다.
- :samp:`description: {description_text}`(선택 사항)
함수에 대한 설명입니다(최대 500자).
- ``procedures``(함수가 정의되지 않은 경우 필수)
저장 프로시저 정의의 목록입니다. 필드는
type필드가 없는 경우를 제외하고 ``functions``와 유사합니다.