Azure Data Factory ve Azure Synapse Analytics'te web etkinliği
UYGULANANLAR: Azure Data Factory Azure Synapse Analytics
İpucu
Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!
Web Etkinliği bir Azure Data Factory veya Synapse işlem hattından özel bir REST uç noktasını çağırmak için kullanılabilir. Etkinlik tarafından kullanılacak ve erişilecek veri kümelerini ve bağlı hizmetleri geçirebilirsiniz.
Not
Web Etkinliği hem özel sanal ağda barındırılan URL'leri çağırmak için hem de şirket içinde barındırılan tümleştirme çalışma zamanı tarafından desteklenir. Tümleştirme çalışma zamanının URL uç noktasında bir görüş alanı olmalıdır.
Not
Desteklenen çıktı yanıtı yük boyutu üst sınırı 4 MB'tır.
Kullanıcı arabirimiyle Web etkinliği oluşturma
İşlem hattında Web etkinliği kullanmak için aşağıdaki adımları tamamlayın:
İşlem hattı Etkinlikleri bölmesinde Web'i arayın ve bir Web etkinliğini işlem hattı tuvaline sürükleyin.
Tuvalde henüz seçili değilse yeni Web etkinliğini ve ayrıntılarını düzenlemek için Ayarlar sekmesini seçin.
Değişmez BIR URL dizesi veya dinamik ifadelerin, işlevlerin, sistem değişkenlerinin veya diğer etkinliklerden gelen çıkışların herhangi bir bileşimi olabilecek bir URL belirtin. İstekle birlikte gönderilecek diğer ayrıntıları sağlayın.
Etkinliğin çıkışını başka herhangi bir etkinliğe giriş olarak kullanın ve hedef etkinlikte dinamik içeriğin desteklendiği her yerde çıkışa başvurun.
Sözdizimi
{
"name":"MyWebActivity",
"type":"WebActivity",
"typeProperties":{
"method":"Post",
"url":"<URLEndpoint>",
"httpRequestTimeout": "00:01:00"
"connectVia": {
"referenceName": "<integrationRuntimeName>",
"type": "IntegrationRuntimeReference"
}
"headers":{
"Content-Type":"application/json"
},
"authentication":{
"type":"ClientCertificate",
"pfx":"****",
"password":"****"
},
"datasets":[
{
"referenceName":"<ConsumedDatasetName>",
"type":"DatasetReference",
"parameters":{
...
}
}
],
"linkedServices":[
{
"referenceName":"<ConsumedLinkedServiceName>",
"type":"LinkedServiceReference"
}
]
}
}
Tür özellikleri
Özellik | Açıklama | İzin verilen değerler | Zorunlu |
---|---|---|---|
Adı | Web etkinliğinin adı | String | Yes |
Tür | WebActivity olarak ayarlanmalıdır. | String | Yes |
yöntemi | Hedef uç nokta için REST API yöntemi. | Dizgi. Desteklenen Türler: "GET", "POST", "PUT", "PATCH", "DELETE" |
Yes |
url | Hedef uç nokta ve yol | Dize (veya dizenin resultType değeriyle ifade). Etkinlik, uç noktadan yanıt almazsa bir hatayla 1 dakikada zaman aşımına uğradı. httpRequestTimeout özelliğini güncelleştirerek bu yanıt zaman aşımını 10 dk'ya kadar artırabilirsiniz | Yes |
httpRequestTimeout | Yanıt zaman aşımı süresi | En yüksek değer 00:10:00 olarak hh:mm:ss. Açıkça belirtilmezse varsayılan değer 00:01:00'dır | Hayır |
üst bilgiler | İsteğe gönderilen üst bilgiler. Örneğin, bir isteğin dilini ve türünü ayarlamak için: "headers" : { "Accept-Language": "en-us", "Content-Type": "application/json" } . |
Dize (veya dizenin resultType değeriyle ifade) | Hayır |
gövde | Uç noktaya gönderilen yükü temsil eder. | Dize (veya dizenin resultType değeriyle ifade). İstek yükü şemasını İstek yükü şeması bölümünde bulabilirsiniz. |
POST/PUT/PATCH yöntemleri için gereklidir. DELETE yöntemi için isteğe bağlı. |
kimlik doğrulaması | Uç noktayı çağırmak için kullanılan kimlik doğrulama yöntemi. Desteklenen Türler şunlardır: "Temel, İstemci Sertifikası, Sistem Tarafından Atanan Yönetilen Kimlik, Kullanıcı Tarafından Atanan Yönetilen Kimlik, Hizmet Sorumlusu." Daha fazla bilgi için kimlik doğrulaması bölümüne bakın. Kimlik doğrulaması gerekli değilse bu özelliği hariç tutun. | Dize (veya dizenin resultType değeriyle ifade) | Hayır |
turnOffAsync | HTTP 202 Yanıtının yanıt üst bilgisinde konum alanında HTTP GET çağrısını devre dışı bırakma seçeneği. True olarak ayarlanırsa, yanıt üst bilgisinde verilen http konumunda HTTP GET çağrısını durdurur. False olarak ayarlanırsa http yanıt üst bilgilerinde verilen konumda HTTP GET çağrısını çağırmaya devam eder. | İzin verilen değerler false (varsayılan) ve true değerleridir. | Hayır |
disableCertValidation | Sunucu tarafı sertifika doğrulamasını kaldırır (standart CA sertifikası kullanmayan güvenilir bir sunucuya bağlanmıyorsanız önerilmez). | İzin verilen değerler false (varsayılan) ve true değerleridir. | Hayır |
veri kümeleri | Uç noktaya geçirilen veri kümelerinin listesi. | Veri kümesi başvuruları dizisi. Boş bir dizi olabilir. | Yes |
linkedServices | Uç noktaya geçirilen bağlı hizmetlerin listesi. | Bağlı hizmet başvuruları dizisi. Boş bir dizi olabilir. | Yes |
connectVia | Veri deposuna bağlanmak için kullanılacak tümleştirme çalışma zamanı . Azure tümleştirme çalışma zamanını veya şirket içinde barındırılan tümleştirme çalışma zamanını (veri deponuz özel bir ağdaysa) kullanabilirsiniz. Bu özellik belirtilmezse, hizmet varsayılan Azure tümleştirme çalışma zamanını kullanır. | Tümleştirme çalışma zamanı başvurusu. | Hayır |
Not
Web etkinliğinin çağırdığı REST uç noktaları JSON türünde bir yanıt döndürmelidir. Etkinlik uç noktadan yanıt almazsa, 1 dakikanın sonunda zaman aşımına uğrar ve hata verir. Zaman Uyumsuz İstek-Yanıt düzenini destekleyen uç noktalar için web etkinliği zaman aşımına uğramadan (7 güne kadar) veya uç noktalar işin tamamlandığını belirtene kadar beklemeye devam eder.
Aşağıdaki tabloda JSON içeriğinin gereksinimleri gösterilmektedir:
Değer türü | Request body | Yanıt gövdesi |
---|---|---|
JSON nesnesi | Desteklenir | Desteklenir |
JSON dizisi | Destekli (Şu anda JSON dizileri bir hatanın sonucu olarak çalışmıyor. Bir düzeltme devam ediyor.) |
Desteklenmeyen |
JSON değeri | Desteklenir | Desteklenmeyen |
JSON olmayan tür | Desteklenmeyen | Desteklenmeyen |
Kimlik Doğrulaması
Aşağıda web etkinliğinde desteklenen kimlik doğrulama türleri yer almaktadır.
Hiçbiri
Kimlik doğrulaması gerekli değilse , "authentication" özelliğini eklemeyin.
Temel
Temel kimlik doğrulamasıyla kullanılacak kullanıcı adını ve parolayı belirtin.
"authentication":{
"type":"Basic",
"username":"****",
"password":"****"
}
İstemci sertifikası
PFX dosyasının base64 ile kodlanmış içeriğini ve parolasını belirtin.
"authentication":{
"type":"ClientCertificate",
"pfx":"****",
"password":"****"
}
Sertifikanın bir x509 sertifikası olması gerekir. PFX dosyasına dönüştürme için sık kullandığınız yardımcı programı kullanabilirsiniz. Base-64 kodlaması için aşağıdaki PowerShell kod parçacığını kullanabilirsiniz.
$fileContentBytes = get-content 'enr.dev.webactivity.pfx' -AsByteStream
[System.Convert]::ToBase64String($fileContentBytes) | Out-File ‘pfx-encoded-bytes.txt’
Yönetilen Kimlik
Veri fabrikası veya Synapse çalışma alanı örneği için yönetilen kimlik kullanılarak erişim belirtecinin isteneceği kaynak uri'sini belirtin. Azure Kaynak Yönetimi API'sini çağırmak için kullanın https://management.azure.com/
. Yönetilen kimliklerin nasıl çalıştığı hakkında daha fazla bilgi için Azure kaynakları için yönetilen kimliklere genel bakış sayfasına bakın.
"authentication": {
"type": "MSI",
"resource": "https://management.azure.com/"
}
Not
Veri fabrikanız veya Synapse çalışma alanınız bir git deposuyla yapılandırılmışsa, temel veya istemci sertifikası kimlik doğrulamasını kullanmak için kimlik bilgilerinizi Azure Key Vault'ta depolamanız gerekir. Hizmet, parolaları git'te depolamaz.
Hizmet sorumlusu
İstemci gizli dizisi için güvenli bir dize kullanarak kiracı kimliğini, hizmet sorumlusu kimliğini ve hizmet sorumlusu anahtarını belirtin.
"authentication": {
"type": "ServicePrincipal",
"tenant": "your_tenant_id",
"servicePrincipalId": "your_client_id",
"servicePrincipalKey": {
"type": "SecureString",
"value": "your_client_secret"
},
"resource": "https://management.azure.com/"
}
İstek yükü şeması
POST/PUT yöntemini kullandığınızda gövde özelliği uç noktaya gönderilen yükü temsil eder. Yükün bir parçası olarak bağlı hizmetleri ve veri kümelerini geçirebilirsiniz. Yükün şeması aşağıdadır:
{
"body": {
"myMessage": "Sample",
"datasets": [{
"name": "MyDataset1",
"properties": {
...
}
}],
"linkedServices": [{
"name": "MyStorageLinkedService1",
"properties": {
...
}
}]
}
}
Örnek
Bu örnekte, işlem hattındaki web etkinliği bir REST uç noktası çağırır. Uç noktaya bir Azure SQL bağlı hizmeti ve bir Azure SQL veri kümesi geçirir. REST uç noktası, mantıksal SQL sunucusuna bağlanmak için Azure SQL bağlantı dizesi kullanır ve SQL server örneğinin adını döndürür.
İşlem hattı tanımı
{
"name": "<MyWebActivityPipeline>",
"properties": {
"activities": [
{
"name": "<MyWebActivity>",
"type": "WebActivity",
"typeProperties": {
"method": "Post",
"url": "@pipeline().parameters.url",
"headers": {
"Content-Type": "application/json"
},
"authentication": {
"type": "ClientCertificate",
"pfx": "*****",
"password": "*****"
},
"datasets": [
{
"referenceName": "MySQLDataset",
"type": "DatasetReference",
"parameters": {
"SqlTableName": "@pipeline().parameters.sqlTableName"
}
}
],
"linkedServices": [
{
"referenceName": "SqlLinkedService",
"type": "LinkedServiceReference"
}
]
}
}
],
"parameters": {
"sqlTableName": {
"type": "String"
},
"url": {
"type": "String"
}
}
}
}
İşlem hattı parametre değerleri
{
"sqlTableName": "department",
"url": "https://adftes.azurewebsites.net/api/execute/running"
}
Web hizmeti uç noktası kodu
[HttpPost]
public HttpResponseMessage Execute(JObject payload)
{
Trace.TraceInformation("Start Execute");
JObject result = new JObject();
result.Add("status", "complete");
JArray datasets = payload.GetValue("datasets") as JArray;
result.Add("sinktable", datasets[0]["properties"]["typeProperties"]["tableName"].ToString());
JArray linkedServices = payload.GetValue("linkedServices") as JArray;
string connString = linkedServices[0]["properties"]["typeProperties"]["connectionString"].ToString();
System.Data.SqlClient.SqlConnection sqlConn = new System.Data.SqlClient.SqlConnection(connString);
result.Add("sinkServer", sqlConn.DataSource);
Trace.TraceInformation("Stop Execute");
return this.Request.CreateResponse(HttpStatusCode.OK, result);
}
İlgili içerik
Desteklenen diğer denetim akışı etkinliklerine bakın: