Azure Data Factory ve Azure Synapse Analytics web etkinliği

ŞUNLARA UYGULANIR: Azure Data Factory Azure Synapse Analytics

İpucu

Microsoft Fabric'daki Data Factory, daha basit bir mimariye, yerleşik yapay zekaya ve yeni özelliklere sahip yeni nesil Azure Data Factory. Veri tümleştirmeyi yeni kullanmaya başladıysanız Fabric Data Factory ile başlayın. Mevcut ADF iş yükleri veri bilimi, gerçek zamanlı analiz ve raporlama genelinde yeni özelliklere erişmek için Fabric yükseltebilir.

Web Etkinliği, bir Azure Data Factory veya Synapse işlem hattından özel 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, özel bir sanal ağda barındırılan URL'leri çağırmak için ve şirket içinde barındırılan tümleştirme çalışma zamanı kullanılarak desteklenir. Tümleştirme çalışma zamanı, URL uç noktasına doğrudan erişime sahip 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:

  1. İşlem hattı Etkinlikleri bölmesinde Web'i arayın ve bir Web etkinliğini işlem hattı tuvaline sürükleyin.

  2. Tuvalde henüz seçili değilse yeni Web etkinliğini ve ayrıntılarını düzenlemek için Ayarlar sekmesini seçin.

    Bir Web etkinliğinin kullanıcı arabirimini gösterir.

  3. Sabit bir URL dizesi veya dinamik ifadeler, işlevler, sistem değişkenleri veya başka etkinliklerden gelen çıktılar arasında herhangi bir bileşim olabilecek bir URL belirtin. İstekle birlikte gönderilecek diğer ayrıntıları sağlayın.

  4. 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
Tip WebActivity olarak ayarlanmalıdır. String Yes
yöntemi Hedef uç nokta için REST API yöntemi. Dize.

Desteklenen Türler: "GET", "POST", "PUT", "PATCH", "DELETE"
Yes
url Hedef uç nokta ve yol String (veya resultType'i string olan bir ifade). Uç noktadan yanıt almazsa etkinlik, 1 dakika içinde hata vererek zaman aşımına uğrayacak. httpRequestTimeout özelliğini güncelleştirerek bu yanıt zaman aşımını 10 dk'ya kadar artırabilirsiniz Yes
HTTP İstek Zaman Aşımı Yanıt zaman aşımı süresi hh:mm:ss formatında en yüksek değer 00:10:00 olarak. 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. String (veya resultType'i string olan bir 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ı gerekmiyorsa 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
Sertifika Doğrulamasını Devre Dışı Bırak 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 seti referansları 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. Entegrasyon çalışma zamanı referansı. Hayır

Not

Web etkinliğinin çağırdığı REST uç noktaları JSON türünde bir yanıt döndürmelidir. Uç noktadan yanıt almazsa etkinlik, 1 dakika içinde hata vererek zaman aşımına uğrayacak. Asenkron İstek-Cevap deseni'ni destekleyen uç noktalar için, web etkinliği zaman aşımına uğramadan (7 güne kadar) ya da uç noktaların işin tamamlandığını bildirmesine kadar beklemeye devam eder.

Aşağıdaki tabloda JSON içeriğinin gereksinimleri gösterilmektedir:

Değer türü İstek içeriği Yanıt gövdesi
JSON nesnesi Desteklenir Desteklenir
JSON dizisi Destekleniyor
(Ş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ı gerekmiyorsa "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. Temel 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 https://management.azure.com/ kullanın. Yönetilen kimliklerin nasıl çalıştığı hakkında daha fazla bilgi için Azure kaynaklara yönelik 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 içinde depolamanız gerekir. Hizmet, parolaları git'te depolamaz.

Hizmet sorumlusu

İstemci sırrı 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 veri 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çirmek mümkündür. 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. Azure SQL bağlantılı hizmeti ve Azure SQL veri kümesini uç noktaya aktarır. REST uç noktası, mantıksal SQL sunucusuna bağlanmak için Azure SQL connection string 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);
}

Desteklenen diğer denetim akışı etkinliklerine bakın: