관리형 커넥터를 사용하면 Microsoft 365, Microsoft Teams, SharePoint 등 많은 서드파티 시스템의 이벤트와 호출 작업에 대응할 수 있으며, 웹훅 설정 코드를 작성하거나 OAuth 토큰을 관리하지 않아도 됩니다. Azure Functions는 Azure Connector Namespace와 통합되어 트리거와 SDK를 제공하는데, 이는 비즈니스 로직에 집중할 수 있게 해주고, 커넥터 네임스페이스는 웹훅, 인증, 재전송을 담당합니다.
메모
Azure Functions용 Azure Connector Namespace 통합은 현재 공개 미리 보기 상태입니다. 기능, 구성 이름, 특정 관리 커넥터에 대한 지원은 일반 가용성(GA) 이전에 변경될 수 있습니다. 이 기능의 사용에는 Microsoft Azure 미리 보기용 추가 사용 약관이 적용됩니다.
현재 지원되는 언어 스택은 C#, Node.js, Python 언어 스택뿐입니다.
커넥터가 기능을 향상시키는 방법
커넥터 네임스페이스는 함수 프로그래밍 모델에 두 가지 기능을 추가합니다:
-
커넥터 트리거
함수는 Microsoft 365의 새 이메일, SharePoint에 추가된 파일, Teams에 게시된 메시지와 같은 외부 서비스에서 이벤트가 발생할 때 실행됩니다. 런타임은 커넥터 네임스페이스에서 웹훅 콜백을 받는 바인딩을 제공합니다connectorTrigger. -
커넥터 SDK 작업
함수 코드는 SDK 클라이언트를 통해 커넥터 연산을 호출합니다. SDK는 Microsoft 365 Outlook, Microsoft 365 사용자, Teams, SharePoint, OneDrive 등 관리형 커넥터를 포함합니다. 아직 SDK 모델이 없는 관리형 커넥터는 HTTP 엔드포인트로 호출 가능합니다.
관리형 커넥터는 HTTP, 타이머, 큐, Service Bus, Event Grid, Durable Functions 같은 고전적인 함수 트리거 및 바인딩과 함께 사용할 수 있습니다.
미리 보기 사용 가능 여부
| Dimension | Availability |
|---|---|
| 커넥터 네임스페이스 영역 | 커넥터 네임스페이스가 지원되는 모든 영역입니다. |
| 언어들 | .NET 10 격리형, Python 3.13+, Node.js 22+ (JS/TS). Java, PowerShell, Go는 지원되지 않습니다. |
| 개최 계획 | Flex Consumption (권장), Premium, Dedicated, 그리고 컨테이너 앱. |
| 가격 |
표준 기능 요금: 미리보기 중 커넥터 트리거/SDK에 추가 요금이 없습니다. 커넥터 네임스페이스는 별도의 청구 방식을 가집니다. |
커넥터를 사용하는 경우
복잡한 커스텀 로직을 실행하기보다는 함수가 주로 외부 서비스와 상호작용해야 할 때는 커넥터를 사용하세요. 함수형 앱에서 관리되는 커넥터를 사용하는 방법들을 고려해 보세요:
외부 사건에 반응하세요
앱은 외부 연결된 서비스에서 발생하는 이벤트(새 이메일, 캘린더 초대, 파일, 목록 항목, Teams 활동)를 처리해야 하지만, 웹훅 등록, 핸드셰이크 검증, OAuth 새로고침 코딩에 노력을 들이고 싶지 않을 것입니다. 예를 들어, 귀하의 기능이 모니터링되는 Office 365 Outlook 폴더에 새로 도착한 이메일을 처리하고, 메시지를 분류하며, Office 365 커넥터에 호출하여 풍부화를 요청하고, 이메일을 플래그하거나 이동시키는 경우를 생각해 보십시오. 이 모든 분산 작업은 새로고침 토큰에 대해 걱정할 필요가 없고, 이는 커넥터 네임스페이스에서 처리됩니다.맞춤형 서비스 클라이언트 교체
함수 코드는 이미 커스텀 HTTP 클라이언트를 사용해 Microsoft 365나 서드파티 API를 호출하고 있어, 비밀, 범위, 정책 재시도를 여러 연결에서 관리해야 하므로 유지보수 부담이 될 수 있습니다. 대신 함수 코드에서 커넥터 SDK의 타입이 지정된 클라이언트를 직접 사용하고, 관리형 커넥터가 직접 연결을 처리하도록 할 수 있습니다.기존 앱 배포를 활용하세요
이미 배포 파이프라인과 모니터링 도구를 갖춘 이벤트 기반 기능 앱 프로젝트를 구축하셨습니다. 관리 커넥터를 사용해 같은 프로젝트 내에 새로운 외부 서비스 트리거 기반 기능을 추가하고 기존 인프라를 활용할 수 있습니다. 예를 들어, 메시지 큐나 Logic Apps에 의존하던 함수형 앱이 이제 Teams 활동에 직접 반응하여 조직 내 점검과 관리자 조회를 위해 Office 365에 연결할 수 있습니다.에이전트 워크플로
함수가 이벤트를 받고 AI 모델과 논리를 내고, 커넥터 작업을 통해 외부 서비스에 다시 반응하는 워크플로우를 구축하는 것입니다. Azure Functions의 호스팅 스킬을 활용해 에이전트 워크플로우를 프로그래밍하면서도 관리형 커넥터 기반 트리거와 관리 커넥터 SDK를 활용할 수 있습니다.관리된 통합을 통한 코드 우선 제어
외부 서비스와의 인바운드 및 아웃바운드 통신을 단순화하기 위해 관리형 커넥터를 원하지만, 코드 우선 프로그래밍 모델과 분기, 단계 간 인증 관리, 기존 라이브러리 재사용 등 오케스트레이션에 대한 완전한 제어를 선호합니다.Tip
사용자 지정 코드가 없는 순수 커넥터 오케스트레이션일 때는 Logic Apps Standard가 가장 간단한 선택입니다. 자세한 내용은 다른 Azure 통합 옵션과의 관계를 참조하세요.
다른 Azure 통합 옵션과의 관계
Azure Functions의 관리형 커넥터는 추가 기능입니다. 적절한 선택은 작업 부하에 필요한 커스텀 코드의 양과 팀이 시각적 디자이너를 선호하는지, 아니면 코드를 선호하는지에 따라 달라집니다.
| Option | 적합한 대상... | 다음과 같은 결과를 얻을 수 있습니다. |
|---|---|---|
| Logic Apps Standard | 커넥터 간 워크플로우 조정; 팀은 시각 디자이너를 선호합니다; 단계 사이에 약간의 맞춤 코드가 있었죠. | 동일한 커넥터 생태계를 위한 로우 코드 디자이너 |
| 관리형 커넥터를 사용하는 Azure Functions | 커스텀 분기, 프로세스 내 라이브러리, 기타 바인딩, 그리고 트리거와 액션 사이의 AI 모델 호출을 포함한 코드 우선 환경. | .NET, Python, 또는 Node.js 저작; 기능 배포 및 모니터링; 외부 서비스에 대한 웹훅이나 OAuth 코드는 사용하지 않습니다. |
| 관리형 커넥터를 사용하는 Azure App Service | 기존 웹 앱이나 API에 커넥터 이벤트와 액션을 추가하는 것. | 인증된 HTTP 콜백은 앱의 경로와 동일한 커넥터 SDK 클라이언트를 통해 아웃바운드 작업을 수행합니다; 수신 앱 인증은 트리거와 별도로 설정됩니다. |
| 서비스 SDK를 이용한 HTTP 트리거 | 대상 서비스에 대한 관리형 커넥터가 없거나, 커넥터에서 제공하지 않는 프로토콜 수준의 제어가 필요한 경우입니다. | 인증, 재시도, 웹훅 검증에 대한 완전한 제어; 커넥터 네임스페이스에 대한 요구사항은 없습니다. |
함수형 앱은 커넥터 트리거와 직접 서비스 SDK를 사용하고, Logic Apps 워크플로우에 참여할 수 있습니다. 기존 HTTP 트리거 앱에 커넥터 트리거를 추가하고 SDK 클라이언트를 증분 방식으로 채택할 수 있습니다.
패키지 및 필수 구성 요소
지원되는 각 언어는 트리거 바인딩과 커넥터 SDK 클라이언트를 포함하는 소규모 패키지 세트를 가지고 있습니다.
Worker Extension 패키지는 커넥터 트리거 바인딩을 제공해줍니다. 패키지( Azure.Connectors.Sdk.* 커넥터당 하나)는 타입이 지정된 페이로드와 SDK 클라이언트를 제공합니다.
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Connector --prerelease
dotnet add package Azure.Connectors.Sdk --prerelease
.NET 격리형 워커의 경우 net8.0 또는 net10.0과 최신 Functions 워커를 대상으로 하세요.
Python 미리 보기 확장 번들을 사용하여 트리거 바인딩 및 형식화된 Office 365 모델에 대한 azurefunctions-extensions-connectors 패키지를 로드합니다. 번들을 host.json에 추가합니다:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
"version": "[4.42.0, 5.0.0)"
}
}
런타임 및 확장 패키지를 설치합니다.
pip install "azure-functions>=2.2.0b4"
pip install azurefunctions-extensions-connectors
데코레이터는 @app.connector_trigger 모든 관리형 커넥터 유형에 대해 작동합니다. 형식화된 페이로드 모델은 패키지를 통해 적극적으로 개발 및 추가되고 있습니다 azurefunctions-extensions-connectors . 타입이 없는 관리 커넥터의 경우, 페이로드를 문자열로 취급하세요.
Node.js 실험적 확장 번들을 사용하여 트리거 바인딩을 로드합니다. 번들을 host.json에 추가합니다:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
"version": "[4.42.0, 5.0.0)"
}
}
Functions 라이브러리 및 커넥터 패키지를 설치합니다.
npm install @azure/functions
npm install @azure/functions-extensions-connectors
npm install @azure/connectors
형식화된 모델이 있으면 connectors.office365.onNewEmail의 형식화된 진입점(예: @azure/functions-extensions-connectors)을 사용하세요. 원시 페이로드가 필요할 때는 모든 관리형 커넥터에 대해 app.connectorTrigger의 @azure/functions를 사용하세요.
Important
Go, Java, PowerShell은 공개 프리뷰에서 지원되지 않습니다. 현재 지원되는 런타임 목록은 Preview available 을 참조하세요.
커넥터 기반 트리거
관리 커넥터 기반 트리거는 연결된 서비스에서 이벤트가 발생하면 함수를 실행합니다. 커넥터 네임스페이스는 커넥터 확장의 웹훅 엔드포인트를 사용하여 HTTPS를 통해 함수 앱에 이벤트를 전달합니다:
POST /runtime/webhooks/connector?functionName={FunctionName}&code={connector_extension_key}
{FunctionName}이(가) [Function] 속성의 이름과 일치합니다.
{connector_extension_key} 는 다음 실행 방식으로 가져오는 시스템 키의 값입니다:
{FunctionName}은(는) @app.function_name 데코레이터의 이름과 일치합니다.
{connector_extension_key} 는 다음 실행 방식으로 가져오는 시스템 키의 값입니다:
{FunctionName} 사용자의 트리거 등록에 있는 이름과 일치합니다.
{connector_extension_key} 는 다음 실행 방식으로 가져오는 시스템 키의 값입니다:
az functionapp keys list \
--resource-group <resource-group> \
--name <function-app> \
--query "systemKeys.connector_extension" \
--output tsv
커넥터 네임스페이스의 트리거 구성은 콜백 URL을 저장하고 각 콜백마다 시스템 키를 보여줍니다. Functions 런타임은 함수를 실행하기 전에 키를 검증합니다. 공유 비밀이 없는 환경에서는 함수 앱 앞에 App Service 내장 인증을 두고 커넥터 네임스페이스에서 관리 신원 토큰을 검증할 수 있습니다. 전체 패턴은 .NET 샘플: 관리 신원이 적용된 내장 인증을 참조하세요.
Tip
미리 보기 기간에는 커넥터로 트리거되는 함수에 Flex Consumption 플랜을 사용하세요. Flex Consumption는 커넥터 플랫폼의 인증 모델과 일치하는 인스턴스별 크기 조정 및 관리 ID 지원을 제공합니다.
요청 페이로드는 이벤트 본문과 트리거 구성, 연결, 이벤트 유형 및 상관 관계 ID를 식별하는 헤더 집합 x-ms-* 을 전달합니다. 관리되는 커넥터가 SDK 모델을 가질 경우, 런타임은 페이로드를 해당 모델로 직접 디직렬라이즈합니다. 클라이언트 SDK가 없는 관리형 커넥터의 경우, 함수는 원시 JSON 본문을 받습니다.
다음 예제에서는 새 전자 메일이 Office 365 Outlook 사서함에 도착할 때 발생하는 함수를 보여 줍니다. 트리거 등록은 언어별로 이루어집니다; 커넥터 네임스페이스의 트리거 구성은 모든 경우에 동일합니다.
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Azure.Functions.Worker.Extensions.Connector;
using Azure.Connectors.Sdk.Office365.Models;
using Microsoft.Extensions.Logging;
public class OnNewEmail
{
private readonly ILogger<OnNewEmail> _logger;
public OnNewEmail(ILogger<OnNewEmail> logger) => _logger = logger;
[Function("OnNewEmail")]
public IActionResult Run(
[ConnectorTrigger()] Office365OnNewEmailTriggerPayload payload)
{
var emails = payload?.Body?.Value ?? [];
foreach (var email in emails)
{
_logger.LogInformation(
"Received email from {From} with subject '{Subject}'.",
email.From, email.Subject);
}
return new OkResult();
}
}
Office365OnNewEmailTriggerPayload 모델 및 기타 작업 페이로드 형식은 Azure.Connectors.Sdk.Office365.Models에서 가져옵니다. 전체 운영-페이로드 매핑은 'Operations to Azure Functions 서명 매핑'을 참조하세요.
import azure.functions as func
import json
import logging
app = func.FunctionApp()
@app.function_name(name="OnNewEmail")
@app.connector_trigger(arg_name="payload")
def on_new_email(payload: str) -> None:
data = json.loads(payload)
emails = data.get("body", {}).get("value", [])
for email in emails:
logging.info(
"Received email from %s with subject '%s'.",
email.get("from"), email.get("subject"))
특히 Office 365 OnNewEmailV3 작업의 경우 azurefunctions-extensions-connectors 형식화된 데코레이터를 사용할 수 있습니다.
import azure.functions as func
import azurefunctions.extensions.connectors.office365 as office365
import logging
app = func.FunctionApp()
@app.function_name(name="OnNewEmail")
@app.connector_trigger(arg_name="email")
def on_new_email(email: office365.ClientReceiveMessage) -> None:
logging.info(
"Received email from %s with subject '%s'.",
email.from_, email.subject)
import { InvocationContext } from '@azure/functions';
import {
connectors,
EmailTriggerContext,
} from '@azure/functions-extensions-connectors';
connectors.office365.onNewEmail('OnNewEmail', {
handler: async (
context: EmailTriggerContext,
invocationContext: InvocationContext,
) => {
for (const email of context.emails) {
invocationContext.log(
`Received email from '${email.from}' with subject '${email.subject}'.`,
);
}
},
});
아직 형식화된 진입점이 없는 모든 커넥터의 경우 app.connectorTrigger의 일반 @azure/functions을 사용하세요.
import { app, InvocationContext } from '@azure/functions';
app.connectorTrigger('OnNewItem', {
handler: async (payload: unknown, context: InvocationContext) => {
const data = typeof payload === 'string' ? JSON.parse(payload) : payload;
const items: Record<string, unknown>[] = (data as any)?.body?.value ?? [];
for (const item of items) {
context.log(`Item ID: ${item.Id}`);
}
},
});
Important
커넥터 트리거는 공개 미리 보기에서 이 언어로 사용할 수 없습니다.
커넥터 네임스페이스에서 Azure CLI, ARM 또는 Bicep를 사용하여 트리거 구성을 만듭니다. 이 단계는 커넥터 플랫폼의 일부이며 커넥터 콘텐츠 세트에 문서화되어 있습니다. 함수는 트리거 등록을 위한 자체 구성 명령을 제공하지 않습니다.
함수를 커넥터 네임스페이스에 인증하세요
메모
이 섹션에서는 커넥터 네임스페이스와 함수 앱 간의 인증에 대해 다룹니다. 커넥터 네임스페이스가 상위 서비스(Microsoft 365, Teams, SharePoint)에 어떻게 인증되는지에 대해서는 Azure 커넥터 개요를 참조하세요.
기본 인증 모델은 커넥터 네임스페이스가 각 콜백에서 제공하는 공유 시스템 키(connector_extension)를 사용합니다. 하지만 공유 키는 트리거별로 스코프를 지정할 수 없으며, 함수 앱과 커넥터 네임스페이스 간에 조정된 회전이 필요합니다. 운영 작업의 경우, 관리 신원과 함께 App Service 내장 인증 (Easy Auth라고도 함)을 사용합니다.
이 패턴에서 커넥터 네임스페이스는 자체 시스템 할당 또는 사용자 지정 관리 식별 정보를 사용하여 매 콜백마다 Entra ID 토큰을 요청합니다. 함수 앱은 요청이 Functions 호스트에 도달하기 전에 대상 그룹, 발급자 및 호출자의 개체 ID를 포함한 토큰의 유효성을 검사합니다. 공유 키도 없고 클라이언트 비밀도 없습니다.
처음부터 끝까지 작동하는 예제는 다음 저장소를 참조하세요: functions-connectors-net-builtinauth.
함수 앱 구성
내장 인증은 Functions 런타임이 요청을 수신하기 전에 App Service 워커 경계 지점에서 실행됩니다. ARM 속성이나 Bicep의 동등한 기능을 통해 authsettingsV2 설정하면 됩니다.
| Setting | Purpose |
|---|---|
requireAuthentication: true |
유효한 토큰 없이 요청을 거부합니다(401 반환). |
identityProviders.azureActiveDirectory.enabled: true |
Entra ID 토큰의 유효성을 검사합니다. |
registration.clientId |
기본 제공 인증이 토큰을 검증할 때 사용하는 Entra 앱 등록의 앱(클라이언트) ID입니다. |
registration.openIdIssuer |
테넌트의 발급자 URL: https://login.microsoftonline.com/{tenantId}/v2.0. |
validation.allowedAudiences |
Entra 앱의 클라이언트 ID 및 식별자 URI입니다. 토큰은 aud 클레임에 다음 대상 중 하나를 포함해야 합니다. |
validation.defaultAuthorizationPolicy.allowedPrincipals.identities |
함수를 호출하도록 허용된 관리형 ID의 개체(보안 주체) ID. 여기에는 커넥터 네임스페이스의 관리 신원만 나열되어야 합니다. 다른 oid 클레임이 있는 모든 토큰은 403을 가져옵니다. |
함수 앱에는 Entra 앱 등록에 페더레이션된 사용자 할당 관리 ID도 필요합니다. 기본 제공 인증은 클라이언트 비밀을 저장하지 않고 해당 페더레이션 ID 자격 증명(FIC)을 사용하여 Entra 앱용 클라이언트 어설션을 생성합니다. Bicep 패턴은 clientSecretSettingName를 사용자 할당 MI의 클라이언트 ID를 저장하는 앱 설정으로 설정하여, 기본 제공 인증이 비밀 대신 FIC를 사용하도록 합니다.
내장 인증이 이미 모든 요청을 검증하기 때문에, 중복 시스템 키 검사 host.json를 비활성화할 수 있습니다. 이 기능은 다음과 같은 JSON 조각과 같습니다:
{
...
"extensions": {
"connector": {
"system": {
"webhookAuthorizationLevel": "Anonymous"
}
}
}
}
커넥터 네임스페이스 구성
커넥터 네임스페이스에는 시스템 할당 또는 사용자 할당 관리형 ID가 사용하도록 설정되고 연결되어 있어야 합니다. 트리거 구성을 만들 때 사용자 할당 ID의 경우 authentication.identity = <resource-id-of-managed-identity> 및 authentication.type = ManagedServiceIdentity을 지정하고, 시스템 할당 ID의 경우 identity를 생략하세요. 또한 커넥터 런타임이 토큰에서 어떤 오디언스를 요청할지 알 수 있도록 지정 authentication.audience = <entra-app-client-id> 하세요.
커넥터 런타임은 해당 관리 아이덴티티를 사용해 매번 콜백할 때마다 Entra ID 토큰을 생성합니다. 이 토큰에서 iss는 (issuer) 사용자의 테넌트이고, aud는 (audience) Entra 앱 클라이언트 ID이며, oid는 (object ID) ID의 보안 주체 ID입니다. 기본 제공 인증은 세 가지 모두의 유효성을 검사합니다.
커넥터 네임스페이스 리소스도 예를 들어 office365 연결과 같은 연결에 액세스할 수 있어야 합니다. 관리 신원의 주 ID를 나열하는 접근 정책을 통해 이 접근을 부여하세요. 샘플 bicep 파일은 네임스페이스 식별과 연결 접근 정책의 전체 구성을 보여줍니다.
적용되는 사항
기본 제공 인증은 토큰의 유효성을 순서대로 검사합니다.
- 토큰 현재 상태 - 401에 → 누락되거나 만료된 토큰
- 서명 - 해당 테넌트의 발급자 JWKS를 기준으로 검증됨
-
iss(발급자) - 일치해야 합니다.openIdIssuer -
aud(대상) -allowedAudiences에 있어야 함 -
oid(개체/보안 주체 ID) -allowedPrincipals.identities의 ID 중 하나와 일치해야 합니다. 다른 ID → 403
이 검사가 App Service 엣지에서 실행되기 때문에, 함수 코드는 커넥터 네임스페이스의 관리 신원에서 오지 않은 요청을 절대 인식하지 못합니다. 출입 조회에 신청 코드는 필요 없습니다.
인증 흐름
┌─────────────────────────────────────────────────────────────────┐
│ Connector namespace │
│ • System-assigned or user-assigned managed identity enabled │
│ • Trigger config: authentication.type = ManagedServiceIdentity │
│ authentication.audience = <Entra app ID> │
│ callbackUrl = https://<func>/runtime/… │
└────────────────────────┬───────────────────────────────────────┘
│
│ POST callbackUrl
│ Authorization: Bearer <AAD token>
│ iss = your tenant
│ aud = Entra app clientId
│ oid = managed identity principalId
▼
┌──────────────────────────────────────────────────────────────┐
│ Function App │
│ │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ Built-in authentication (App Service edge) │ │
│ │ • Validates signature, iss, aud, exp │ │
│ │ • Checks oid ∈ allowedPrincipals.identities │ │
│ │ → No token → 401 │ │
│ │ → Wrong oid → 403 │ │
│ └────────────────────┬─────────────────────────────────┘ │
│ │ pass │
│ ▼ │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ /runtime/webhooks/connector │ │
│ │ (webhookAuthorizationLevel = Anonymous) │ │
│ └────────────────────┬─────────────────────────────────┘ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ Your function(payload) │ │
│ └──────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────┘
▲
│ FIC (federated identity credential)
┌───────────────┴────────────────┐
│ Entra app registration │
│ (federated to function-app MI) │
└─────────────────────────────────┘
관련 콘텐츠
- Azure App Service와 Azure Functions의 인증 및 권한 부여
- Microsoft Entra 로그인을 사용하도록 App Service 또는 Azure Functions 앱 구성
- Azure App Service 인증의 파일 기반 구성
- Microsoft Entra ID의 워크로드 ID 페더레이션
- Azure 리소스에 대한 관리 ID
코드에서 커넥터 사용
커넥터 SDK는 함수가 커넥터 연산을 아웃바운드 액션으로 호출할 수 있게 해줍니다. 클라이언트 서피스는 트리거 사용과 동일한 커넥터 네임스페이스 내에서 동일한 관리 커넥터를 사용하므로, 하나의 관리 커넥터가 동일한 서비스 계정에 대한 인바운드 트리거와 아웃바운드 호출을 모두 지원할 수 있습니다.
.NET에서는 각 커넥터에 Office365Client의 형식 지정 클라이언트(예: Office365UsersClient, TeamsClient, Azure.Connectors.Sdk.{Service})가 포함되어 있습니다. 클라이언트 생성자는 연결의 런타임 URL과 자격 증명을 받습니다.
다음 패턴은 엔드 투 엔드 이메일 사용자 조회 Teams 샘플입니다.
using Azure.Core;
using Azure.Identity;
using Azure.Connectors.Sdk.Office365;
using Azure.Connectors.Sdk.Office365Users;
using Azure.Connectors.Sdk.Teams;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
var credential = new DefaultAzureCredential(new DefaultAzureCredentialOptions
{
ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_CLIENT_ID")
});
var host = new HostBuilder()
.ConfigureFunctionsWebApplication()
.ConfigureServices(services =>
{
services.AddSingleton<TokenCredential>(credential);
services.AddSingleton(sp => new Office365Client(
new Uri(Environment.GetEnvironmentVariable("OFFICE365_CONNECTION_RUNTIME_URL")!),
sp.GetRequiredService<TokenCredential>()));
services.AddSingleton(sp => new Office365UsersClient(
new Uri(Environment.GetEnvironmentVariable("OFFICE365USERS_CONNECTION_RUNTIME_URL")!),
sp.GetRequiredService<TokenCredential>()));
services.AddSingleton(sp => new TeamsClient(
new Uri(Environment.GetEnvironmentVariable("TEAMS_CONNECTION_RUNTIME_URL")!),
sp.GetRequiredService<TokenCredential>()));
})
.Build();
host.Run();
설정은 *_CONNECTION_RUNTIME_URL 커넥터 네임스페이스의 각 연결별 런타임 엔드포인트를 가리킵니다. 클라이언트를 함수에 주입하고 UserProfileAsync, GetEmailsAsync, FlagAsync와 같은 형식이 지정된 메서드를 호출합니다. 커넥터가 아닌 트리거(예: Teams에 게시되는 HTTP 트리거)에서 SDK 클라이언트를 호출할 수도 있습니다.
Python 형식화된 클라이언트에 azure-connectors 설치합니다(예: office365, teams, office365Users). 클라이언트는 연결별 런타임 URL 및 자격 증명을 수락합니다. SDK 액션 범위가 확대되고 있습니다.
Node.js에서 형식화된 클라이언트용으로 @azure/connectors를 설치합니다(예: office365, teams, office365Users). 클라이언트는 연결별 런타임 URL 및 자격 증명을 수락합니다. SDK 액션 범위가 확대되고 있습니다.
Important
커넥터 SDK는 공개 미리보기에서 이 언어들로 제공되지 않습니다.