Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
DOTYCZY:
Azure Data Factory
Azure Synapse Analytics
Wskazówka
Data Factory w usłudze Microsoft Fabric jest następną generacją Azure Data Factory z prostszą architekturą, wbudowaną sztuczną inteligencją i nowymi funkcjami. Jeśli dopiero zaczynasz integrować dane, zacznij od Fabric Data Factory. Istniejące obciążenia ADF można zaktualizować do Fabric, aby uzyskać dostęp do nowych możliwości w zakresie nauki o danych, analiz w czasie rzeczywistym oraz raportowania.
Działanie Web może służyć do wywoływania niestandardowego punktu końcowego REST z potoku Azure Data Factory lub Synapse. Można przekazywać zestawy danych i połączone usługi do wykorzystania i dostępu przez działanie.
Uwaga
Działanie internetowe jest obsługiwane w przypadku wywoływania adresów URL hostowanych w prywatnej sieci wirtualnej, a także przy użyciu własnego środowiska Integration Runtime. Środowisko Integration Runtime powinno mieć bezpośredni dostęp do punktu końcowego adresu URL.
Uwaga
Maksymalny obsługiwany rozmiar ładunku odpowiedzi wyjściowej to 4 MB.
Tworzenie działania internetowego za pomocą interfejsu użytkownika
Aby wykorzystać działanie sieci Web w potoku, wykonaj następujące kroki:
Wyszukaj Web w okienku Działania potoku i przeciągnij aktywność Web na kanwę potoku.
Wybierz nową aktywność sieci Web na kanwie, jeśli nie jest jeszcze wybrana, oraz jej kartę Ustawienia w celu edycji szczegółów.
Określ adres URL, który może być ciągiem adresu URL literału lub dowolną kombinacją wyrażeń dynamicznych , funkcji, zmiennych systemowych lub danych wyjściowych z innych działań. Podaj inne szczegóły, które mają zostać przesłane z żądaniem.
Użyj danych wyjściowych z działania jako danych wejściowych do dowolnego innego działania i odwołuj się do danych wyjściowych w dowolnym miejscu zawartości dynamicznej obsługiwanej w działaniu docelowym.
Składnia
{
"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"
}
]
}
}
Właściwości typu
| Właściwości | opis | Dozwolone wartości | Wymagane |
|---|---|---|---|
| nazwa | Nazwa działania internetowego | String | Tak |
| typ | Musi być ustawiona wartość WebActivity. | String | Tak |
| metoda | Metoda interfejsu API REST dla docelowego punktu końcowego. | Struna. Obsługiwane typy: "GET", "POST", "PUT", "PATCH", "DELETE" |
Tak |
| Adres URL | Docelowy punkt końcowy i ścieżka | Ciąg (lub wyrażenie z wartością resultType ciągu). Działanie zostanie przerwane po 1 minucie z błędem, jeśli nie otrzyma odpowiedzi z punktu końcowego. Ten limit czasu odpowiedzi można zwiększyć do 10 minut, aktualizując właściwość httpRequestTimeout | Tak |
| limit czasu żądania HTTP | Czas trwania limitu czasu na odpowiedź | hh:mm:ss z maksymalną wartością 00:10:00. Jeśli nie określono jawnie, ustawia się na wartość domyślną 00:01:00. | Nie. |
| nagłówki | Nagłówki wysyłane z zapytaniem. Aby na przykład ustawić język i typ żądania: "headers" : { "Accept-Language": "en-us", "Content-Type": "application/json" }. |
Ciąg (lub wyrażenie z wartością resultType ciągu) | Nie. |
| obudowa | Reprezentuje ładunek, który jest wysyłany do punktu końcowego. | Ciąg (lub wyrażenie z wartością resultType ciągu). Zobacz schemat treści żądania w sekcji Schemat treści żądania. |
Wymagane dla metod POST/PUT/PATCH. Opcjonalnie dla metody DELETE. |
| uwierzytelnianie | Metoda uwierzytelniania używana do wywoływania punktu końcowego. Obsługiwane typy to "Podstawowe, Certyfikat klienta, Tożsamość zarządzana przypisana przez system, Tożsamość zarządzana przypisana przez użytkownika, oraz Podmiot usługi." Aby uzyskać więcej informacji, zobacz sekcję Uwierzytelnianie. Jeśli uwierzytelnianie nie jest wymagane, wyklucz tę właściwość. | Ciąg (lub wyrażenie z wartością resultType ciągu) | Nie. |
| turnOffAsync | Opcja wyłączenia wywoływania żądania HTTP GET względem pola lokalizacji w nagłówku odpowiedzi HTTP 202. Jeśli ustawiono wartość true, zatrzyma wywołanie żądania HTTP GET w lokalizacji http podanej w nagłówku odpowiedzi. Jeśli ustawisz wartość false, nadal wywołuje wywołanie HTTP GET w lokalizacji podanej w nagłówkach odpowiedzi http. | Dozwolone wartości to false (wartość domyślna) i true. | Nie. |
| disableCertValidation (wyłącz walidację certyfikatu) | Usuwa weryfikację certyfikatu po stronie serwera (niezalecane, chyba że nawiązujesz połączenie z zaufanym serwerem, który nie używa standardowego certyfikatu urzędu certyfikacji). | Dozwolone wartości to false (wartość domyślna) i true. | Nie. |
| zestawy danych | Lista zestawów danych przekazanych do punktu końcowego. | Tablica odwołań do zestawu danych. Może być pustą tablicą. | Tak |
| linkedServices | Lista połączonych usług przekazanych do punktu końcowego. | Tablica odwołań do połączonych usług. Może być pustą tablicą. | Tak |
| connectVia | Środowisko Integration Runtime do nawiązania połączenia z magazynem danych. Możesz użyć środowiska Integration Runtime Azure lub własnego środowiska Integration Runtime (jeśli magazyn danych znajduje się w sieci prywatnej). Jeśli ta właściwość nie zostanie określona, usługa używa domyślnego Azure integration runtime. | Dokumentacja środowiska Integration Runtime. | Nie. |
Uwaga
Punkty końcowe interfejsu REST, które wywołują działanie w sieci Web, muszą zwracać odpowiedź typu JSON. Działanie zostanie przerwane po 1 minucie z błędem, jeśli nie otrzyma odpowiedzi z punktu końcowego. W przypadku punktów końcowych, które obsługują wzorzec asynchronicznego Request-Reply, aktywność sieciowa nadal czeka, nie przekraczając limitu czasu (do 7 dni), lub dopóki punkty końcowe nie sygnalizują ukończenia zadania.
W poniższej tabeli przedstawiono wymagania dotyczące zawartości JSON:
| Typ wartości | Treść żądania | Treść odpowiedzi |
|---|---|---|
| Obiekt JSON | Obsługiwane | Obsługiwane |
| Tablica JSON | Obsługiwane (Obecnie tablice JSON nie działają w wyniku usterki. Poprawka jest w toku). |
Nieobsługiwane |
| Wartość JSON | Obsługiwane | Nieobsługiwane |
| Typ innego niż JSON | Nieobsługiwane | Nieobsługiwane |
Uwierzytelnianie
Poniżej przedstawiono obsługiwane typy uwierzytelniania w działaniu internetowym.
Brak
Jeśli uwierzytelnianie nie jest wymagane, nie uwzględniaj właściwości "uwierzytelnianie".
Basic
Określ nazwę użytkownika i hasło do użycia z uwierzytelnianiem podstawowym.
"authentication":{
"type":"Basic",
"username":"****",
"password":"****"
}
Certyfikat klienta
Określ zakodowaną w formacie base64 zawartość pliku PFX i hasło.
"authentication":{
"type":"ClientCertificate",
"pfx":"****",
"password":"****"
}
Certyfikat musi być certyfikatem x509. Do konwersji na plik PFX możesz użyć ulubionego narzędzia. W przypadku kodowania base-64 można użyć następującego fragmentu kodu programu PowerShell.
$fileContentBytes = get-content 'enr.dev.webactivity.pfx' -AsByteStream
[System.Convert]::ToBase64String($fileContentBytes) | Out-File ‘pfx-encoded-bytes.txt’
Tożsamość zarządzana
Określ identyfikator URI zasobu, dla którego będzie żądany token dostępu, używając tożsamości zarządzanej dla Data Factory lub wystąpienia Synapse Workspace. Aby wywołać interfejs API zarządzania zasobami Azure, użyj https://management.azure.com/. Aby uzyskać więcej informacji na temat sposobu działania tożsamości zarządzanych, zobacz stronę przeglądową tożsamości zarządzanych dla zasobów Azure
"authentication": {
"type": "MSI",
"resource": "https://management.azure.com/"
}
Uwaga
Jeśli fabryka danych lub obszar roboczy usługi Synapse jest skonfigurowany przy użyciu repozytorium git, musisz przechowywać poświadczenia w Azure Key Vault, aby używać uwierzytelniania podstawowego lub certyfikatu klienta. Usługa nie przechowuje haseł w usłudze git.
Obiekt usługi
Określ identyfikator dzierżawy, identyfikator jednostki usługi oraz klucz jednostki usługi, używając bezpiecznego ciągu dla sekretu klienta.
"authentication": {
"type": "ServicePrincipal",
"tenant": "your_tenant_id",
"servicePrincipalId": "your_client_id",
"servicePrincipalKey": {
"type": "SecureString",
"value": "your_client_secret"
},
"resource": "https://management.azure.com/"
}
Schemat ładunku żądania
Jeśli używasz metody POST/PUT, właściwość body reprezentuje ładunek, który jest wysyłany do punktu końcowego. Połączone usługi i zestawy danych można przekazywać w ramach ładunku. Oto schemat ładunku:
{
"body": {
"myMessage": "Sample",
"datasets": [{
"name": "MyDataset1",
"properties": {
...
}
}],
"linkedServices": [{
"name": "MyStorageLinkedService1",
"properties": {
...
}
}]
}
}
Przykład
W tym przykładzie działanie internetowe w procesie odwołuje się do punktu końcowego REST. Przekazuje ona połączoną usługę Azure SQL i zestaw danych Azure SQL do punktu końcowego. Punkt końcowy REST używa Azure SQL connection string do nawiązania połączenia z serwerem logicznym SQL i zwraca nazwę wystąpienia programu SQL Server.
Definicja potoku
{
"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"
}
}
}
}
Wartości parametrów procesu rurociągowego
{
"sqlTableName": "department",
"url": "https://adftes.azurewebsites.net/api/execute/running"
}
Kod punktu końcowego usługi internetowej
[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);
}
Powiązana zawartość
Zobacz inne obsługiwane działania przepływu sterowania: