Azure용 외부 함수 계획하기¶
이 항목은 Azure Portal 또는 Snowflake에서 제공하는 ARM(Azure Resource Manager) 템플릿을 사용하여 Microsoft Azure의 외부 함수를 만드는 준비에 도움이 됩니다.
이 항목의 내용:
전제 조건¶
다음 지침에서는 독자가 경험이 풍부한 Azure Portal 사용자라고 가정하고 설명합니다.
Azure용 외부 함수를 만들려면 다음이 있어야 합니다.
Azure AD(Active Directory) tenant.
해당 Azure AD tenant의 계정. 이 계정에는 다음 작업을 수행할 권한이 있어야 합니다.
Azure Functions 앱 만들기.
Azure API Management 서비스를 사용하여 서비스 엔드포인트 만들기.
Azure AD 애플리케이션 등록.
ACCOUNTADMIN 역할이 있는 Snowflake 계정 또는 CREATE INTEGRATION 권한이 있는 역할.
또한, Azure AD Tenant ID가 이미 있어야 합니다.
Azure AD Tenant ID는 일반적으로 12345678-abcd-1234-efab-123456789012
와 유사하게 형식이 지정되는 UUID 이며, 여기서 대시가 아닌 각 문자는 16진수입니다.
Azure AD tenant ID를 아직 모르는 경우에는 다음 절차를 사용하여 찾을 수 있습니다.
Azure Portal(http://portal.azure.com)에 로그인합니다.
페이지 상단 근처의 Azure services 아이콘에서 Azure Active Directory 를 클릭합니다.
왼쪽 메뉴에서 Manage 라는 제목의 섹션을 찾은 다음 그 아래에 있는 Properties 를 클릭합니다.
Azure AD tenant ID는 Tenant ID 필드에 표시됩니다.
외부 함수를 만드는 방법 선택하기¶
Snowflake는 Azure에서 외부 함수를 만드는 두 가지 방법에 대한 지침을 제공합니다.
Azure Portal 웹 인터페이스.
Snowflake에서 제공하는 ARM(Azure Resource Manager) 템플릿
Azure Portal¶
Azure Portal 을 사용하여 Azure 함수(원격 서비스로) 및 API Management 서비스 인스턴스(프록시 서비스로)를 만들 수 있습니다. 이 방법을 선택할 경우 Azure Portal을 사용하여 보안 관련 설정도 구성합니다.
Azure Portal을 사용하여 외부 함수를 만들기 위한 지침은 샘플 Azure 함수와 기본 API Management 서비스 인스턴스를 만들기 위한 세부 정보를 포함합니다.
최초 사용자는 거의 또는 전혀 수정하지 않고 지침과 샘플 Azure 함수를 사용할 수 있습니다.
능숙한 사용자는 지침과 샘플 Azure 함수를 시작점으로 사용하여 사용자 지정 Azure 함수 및 사용자 지정 구성 API Management 서비스 인스턴스를 만들 수 있습니다.
ARM(Azure Resource Manager) 템플릿¶
ARM 템플릿 은 JSON 을 사용하여 Azure 함수(원격 서비스로) 및 Azure API Management 서비스 인스턴스(프록시 서비스로)에 대한 구성 정보를 설명합니다.
Snowflake는 다음을 포함하는 샘플 ARM 템플릿을 제공합니다.
샘플 Azure 함수.
샘플 API Management 서비스에 대한 대부분의 구성 정보. 샘플 API Management 서비스를 사용자 지정하려면 몇 가지 추가 정보를 입력해야 합니다.
Azure Functions 서비스에서 필요한 저장소 계정을 만드는 코드.
Azure API Management 서비스의 보안을 강화하기 위해 API 관리 인스턴스에 JWT 유효성 검사(JSON 웹 토큰) 정책을 추가하는 코드. 하지만 먼저 JWT 유효성 검사 정책을 수동으로 업데이트해야 이 정책을 사용할 수 있습니다.
ARM 템플릿은 초보 사용자와 숙련된 사용자에게 모두 유용할 수 있습니다.
초보 사용자는 Azure 함수와 API Management 서비스 인스턴스를 만드는 데 필요한 단계 수가 감소한다는 이유로 Snowflake 샘플 템플릿으로 시작하고 싶을 수 있습니다.
템플릿 기반 지침이 자신의 첫 번째 외부 함수를 빠르게 만드는 데 도움이 되지만, 이런 지침에서는 대부분의 사용자가 사용자 지정 외부 함수를 만들 때 필요한 단계를 건너뜁니다.
템플릿을 사용하여 배포를 자동화할 수 있으므로, 숙련된 사용자는 ARM 템플릿을 사용하고 싶을 수 있습니다. 이는 Azure 함수와 API Management 서비스를 반복적으로 개발할 경우에 유용할 수 있습니다.
ARM 템플릿을 사용하여 Azure 함수를 구성하는 방법에 대한 자세한 내용은 Microsoft 설명서: 리소스 배포 를 참조하십시오.
Azure Portal 사용 준비하기¶
아래의 섹션은 Azure Portal을 사용하여 Microsoft Azure에서 외부 함수를 만들 준비를 하는 데 도움이 됩니다.
Azure 함수에 대한 가격 계획 선택하기¶
Microsoft Azure에서 Azure 함수(원격 서비스)는 Linux 호스트 또는 Windows 호스트에서 실행할 수 있습니다. 현재, Azure는 Linux 및 Windows 호스트에 대해 다양한 가격과 인증 옵션의 조합을 제공합니다.
Linux 에서 Azure 함수를 실행할 계획이라면, Azure 가격 계획과 인증의 유효한 조합을 선택해야 합니다.
프리미엄 또는 앱 서비스 계획을 사용하는 경우 다음을 수행합니다.
Azure Portal의 Azure Functions 화면에 있는 Authentication/Authorization 탭에서 Azure AD(Active Directory) 애플리케이션을 만듭니다.
Azure Functions 서비스에서 인증에 Azure AD를 사용합니다.
원격 서비스 만들기 지침 의 뒷부분에 추가 세부 정보와 링크가 제공됩니다.
사용 가격 계획을 사용하는 경우 다음을 수행합니다.
Azure Portal에서 Azure AD 애플리케이션을 수동으로 만듭니다. 원격 서비스 만들기 지침 의 뒷부분에 추가 세부 정보가 제공됩니다.
API 관리 인스턴스에 대한 JWT 유효성 검사 정책을 설정합니다. 자세한 내용은 6단계: Portal에서 프록시 서비스에 대한 Azure 보안 정책 만들기 섹션을 참조하십시오.
IP 주소 제한을 사용하여 API Management 서비스 인스턴스의 연결만 허용하도록 원격 서비스를 제한합니다. 자세한 내용은 Azure Functions 호출을 허용하는 IP 주소 제한하기(선택 사항) 섹션을 참조하십시오.
필수 정보 추적을 위한 워크시트 만들기¶
Azure Portal에서 외부 함수를 만드는 작업을 완료하면 프로세스의 각 단계에서 특정 값(예: API Management 서비스 이름)을 입력해야 합니다. 사용자가 입력하는 값이 후속 단계에서 종종 필요합니다.
이 정보를 쉽게 기록/추적할 수 있도록, 각 필수 값에 대한 필드가 있는 워크시트를 제공했습니다.
================================================================================
======================= Tracking Worksheet: Azure Portal =======================
================================================================================
****** Step 1: Azure Function (Remote Service) Info ****************************
Azure Function app name: _______________________________________________________
HTTP-Triggered Function name: __________________________________________________
Azure Function AD app registration name: _______________________________________
Azure Function App AD Application ID: __________________________________________
(The value for the Azure Function App AD Application ID above is the
"Application (client) ID" of the Azure AD app registration for the
Azure Function. The value is used to fill in the "azure_ad_application_id"
field in the CREATE API INTEGRATION command. This value is in the form of a
UUID (universally unique identifier), which contains hexadecimal digits and
dashes.)
****** Step 2: Azure API Management Service (Proxy Service) Info ***************
API Management service name: ___________________________________________________
API Management API URL suffix: _________________________________________________
****** Steps 3-5: API Integration & External Function Info *********************
API Integration Name: __________________________________________________________
AZURE_MULTI_TENANT_APP_NAME: ___________________________________________________
AZURE_CONSENT_URL: _____________________________________________________________
External Function Name: ________________________________________________________
ARM 템플릿 사용 준비하기¶
아래의 섹션은 Snowflake에서 제공하는 ARM 템플릿을 사용하여 Microsoft Azure에서 외부 함수를 만들 준비를 하는 데 도움이 됩니다.
템플릿 다운로드하기¶
이 템플릿은 GitHub의 Snowflake 리포지토리 에서 다운로드할 수 있습니다.
이 템플릿을 사용하려면 먼저 템플릿을 Azure Portal로 가져와야 합니다. 템플릿 가져오기에 대한 세부 정보는 이 항목에서 템플릿 사용에 대해 설명하는 뒷부분에 포함되어 있습니다.
Azure 함수에 대한 가격 계획 선택하기¶
Microsoft Azure에서 Azure 함수(원격 서비스)는 Linux 호스트 또는 Windows 호스트에서 실행할 수 있습니다. 현재, Azure는 Linux 및 Windows 호스트에 대해 다양한 가격과 인증 옵션의 조합을 제공합니다.
Snowflake에서 제공하는 ARM 템플릿은 기본적으로 다음 가격 계획 및 인증 정보를 사용합니다.
Azure 함수에 대해 기본적으로 Windows 호스트를 사용합니다.
“사용” 가격 책정 계층으로 기본 설정됩니다.
Azure Functions 앱을 만들고 AD(Active Directory) 인증을 요구하도록 해당 앱을 구성합니다.
Snowflake가 Azure 함수를 호출하는 권한을 부여하는 JWT(JSON 웹 토큰)의 유효성을 검사하는 보안 정책을 만듭니다.
이 보안 정책에는 한 필드가 없는데, 나중에 제공되는 지침에서 이 필드를 채울 방법을 알려줍니다.
다른 구성으로 Azure API 관리 인스턴스 또는 Azure 함수를 실행할 계획이라면 템플릿을 업데이트해야 합니다. 템플릿 업데이트에 대한 자세한 내용은 Microsoft 설명서를 참조하십시오.
리소스 배포 자동화 (Azure 함수의 함수 앱용)
필수 정보 추적을 위한 워크시트 만들기¶
Snowflake에서 제공하는 ARM 템플릿을 사용하여 외부 함수를 만드는 작업을 완료하면 프로세스의 각 단계에서 특정 값(예: API Management 서비스 이름)을 입력해야 합니다. 사용자가 입력하는 값이 후속 단계에서 종종 필요합니다.
이 정보를 쉽게 기록/추적할 수 있도록, 각 필수 값에 대한 필드가 있는 워크시트를 제공했습니다.
참고
ARM 템플릿에 하드 코드된 정보의 경우 값이 이미 채워져 있습니다.
================================================================================
======================= Tracking Worksheet: ARM Template =======================
================================================================================
****** Step 1: Azure Function (Remote Service) Info ****************************
HTTP-Triggered Function name: __________________ echo __________________________
Azure Function AD Application ID: ______________________________________________
(The value for the Azure Function AD Application ID above is the
"Application (client) ID" of the Azure AD app registration for the
Azure Function. The value is used to fill in the "azure_ad_application_id"
field in the CREATE API INTEGRATION command. This value is in the form of a
UUID (universally unique identifier), which contains hexadecimal digits and
dashes.)
****** Step 2: Azure API Management Service (Proxy Service) Info ***************
API Management service name: ___________________________________________________
API Management URL: ____________________________________________________________
Azure Function HTTP Trigger URL: _______________________________________________
API Management API URL suffix: _________________________________________________
****** Steps 3-5: API Integration & External Function Info *********************
API Integration Name: __________________________________________________________
AZURE_MULTI_TENANT_APP_NAME: ___________________________________________________
AZURE_CONSENT_URL: _____________________________________________________________
External Function Name: ________________________________________________________
다음 단계¶
- Azure Portal:
- ARM 템플릿: