5단계: Snowflake에서 Azure를 위한 외부 함수 만들기¶
이 항목에서는 Snowflake에서 외부 함수 오브젝트를 만들기 위한 지침을 제공합니다. 이 오브젝트는 원격 서비스가 허용하는 매개 변수와 같이, 원격 서비스에 대한 정보를 저장합니다. Azure Portal을 사용하든 ARM 템플릿을 사용하든 관계없이 지침은 동일합니다.
참고
Snowflake의 외부 함수는 데이터베이스 오브젝트인데, 이는 외부 함수를 데이터베이스의 스키마에서 만들어야 한다는 뜻입니다. 외부 함수를 만들려면 함수를 만드는 데이터베이스 및 스키마에 대한 적절한 권한이 있어야 합니다.
자세한 내용은 액세스 제어 권한 섹션을 참조하십시오.
이 항목의 내용:
이전 단계¶
외부 함수 만들기¶
이 작업에서는 사용자가 Classic Console 의 Worksheets 페이지에 있다고 가정합니다.
CREATE EXTERNAL FUNCTION 문을 입력합니다. 이 문은 다음과 비슷한 형태여야 합니다.
create or replace external function <external_function_name>(<parameters>) returns variant api_integration = <api_integration_name> as '<invocation_url>';
<외부_함수_이름>
을 고유한 함수 이름(예:echo
)으로 바꿉니다. 이 이름은 오브젝트 식별자 에 대한 규칙을 따라야 합니다.또한, 추적 워크시트의
External Function Name
필드에 함수 이름을 기록합니다.<매개 변수>
를 함수에 대한 매개 변수의 이름과 SQL 데이터 타입(있는 경우)으로 바꿉니다.매개 변수는 원격 서비스에서 예상하는 매개 변수와 일치해야 합니다. 매개 변수 이름은 일치하지 않아도 되지만, 데이터 타입은 호환 가능해야 합니다.
Azure 함수가 1단계에서 제공된 샘플 JavaScript 코드를 사용하는 경우에는 매개 변수가 INTEGER와 VARCHAR입니다. 예:
a integer, b varchar
또한, 추적 워크시트의
External Function Name
필드에 매개 변수 이름과 데이터 타입을 기록합니다.<api_통합_이름>
을 추적 워크시트에 있는API Integration Name
필드의 값으로 바꿉니다.<호출_url>
을 알맞은 URL로 바꿉니다. 이것은 Snowflake가 원격 서비스를 호출하기 위해 HTTP POST 명령을 보내는 대상 URL로, 다음 형식을 갖습니다.https://<api_management_service_name>.azure-api.net/<api_url_suffix>/<http_triggered_function_name>
여기서 사용하는 URL은 외부 함수를 만드는 데 Azure Portal을 사용하는지, ARM 템플릿을 사용하는지에 따라 다릅니다.
- Azure Portal:
추적 워크시트에 있는
API Management service name
,HTTP-Triggered Function name
및API Management API URL suffix
필드의 값을 사용합니다. 예를 들어, URL은 다음과 비슷한 형태여야 합니다.https://my-api-management-svc.azure-api.net/my-api-url-suffix/my_http_function
- ARM 템플릿:
추적 워크시트에 있는
Azure Function HTTP Trigger URL
필드의 값을 사용합니다.
입력한 CREATE EXTERNAL FUNCTION 명령을 아직 실행하지 않았다면 실행하십시오.
외부 함수 테스트하기¶
이제 외부 함수를 호출하여 함수가 올바르게 작동하는지 확인할 수 있을 것입니다.
자세한 내용은 Azure용 외부 함수 호출하기 섹션을 참조하십시오.
다음 단계¶
- Azure Portal:
- ARM 템플릿: