Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
ŞUNLARA UYGULANIR:
Azure Data Factory
Azure Synapse Analytics
Tip
Microsoft Fabric'daki
Until etkinliği, bir do-until döngü yapısının programlama dillerinde sağladığı işlevlerin aynısını sağlar. Etkinlikle ilişkili koşul true olarak değerlendirilene kadar döngüde bir etkinlik kümesi yürütür. İç etkinlik başarısız olursa, Until etkinliği durmaz. Until etkinliği için bir zaman aşımı değeri belirtebilirsiniz.
Kullanıcı arabirimiyle Until etkinliği oluşturma
İşlem hattında Until etkinliğini kullanmak için aşağıdaki adımları tamamlayın:
İşlem hattı Etkinlikleri bölmesinde Until araması yapıp Until etkinliğini işlem hattı tuvaline sürükleyin.
Tuvalde henüz seçili değilse Until etkinliğini ve ayrıntılarını düzenlemek için Ayarlar sekmesini seçin.
Until etkinliğinde tanımlanan tüm alt etkinlikler yürütüldükten sonra değerlendirilecek bir ifade girin. İfade false olarak değerlendirilirse, Until etkinliği tüm alt etkinliklerini yeniden yürütür. True olarak değerlendirildiğinde, Until etkinliği tamamlanır. İfade değişmez değer dize ifadesi veya dinamik ifadelerin, işlevlerin,sistem değişkenlerinin veya diğer etkinliklerden gelen çıkışların herhangi bir bileşimi olabilir. Aşağıdaki örnek, ['done'] olarak değerlendirilip değerlendirilmediğini görmek için TestVariable adlı önceden tanımlanmış bir işlem hattı dizisi değişkeninin değerini denetler.
Until etkinliğinde yürütülecek etkinlikleri, doğrudan Until etkinliği üzerindeki "Etkinlikleri Düzenle" düğmesini seçerek veya "Etkinlikler" sekmesini seçerek tanımlayın. Yürütülecek Until etkinliğine yönelik etkinlikleri ekleyebileceğiniz yeni bir etkinlik düzenleyicisi bölmesi görüntülenir. Bu örnekte Değişken Ayarla etkinliği, başvuruda bulunan değişkenin değerini 'bitti' olarak ayarlar. Bu nedenle Until etkinliğinin ifadesi ilk kez yürütüldüğünde doğru olur ve ardından Until etkinliği durur. Herhangi bir koşulu denetlemek için benzer değişkenler kullanabilirsiniz. Until etkinliği, koşullar karşılanana kadar ifade her değerlendirildiğinde alt etkinliklerini yürütür. Birden çok etkinlik üzerinde tekrar gerçekleştirirseniz, işlem hattı tarafından yürütülen toplama ve temizleme çalışmaları nedeniyle döngüden çıkışta gecikme olabilir.
Sözdizimi
{
"type": "Until",
"typeProperties": {
"expression": {
"value": "<expression that evaluates to true or false>",
"type": "Expression"
},
"timeout": "<time out for the loop. for example: 00:10:00 (10 minute)>",
"activities": [
{
"<Activity 1 definition>"
},
{
"<Activity 2 definition>"
},
{
"<Activity N definition>"
}
]
},
"name": "MyUntilActivity"
}
Tür özellikleri
| Özellik | Açıklama | İzin verilen değerler | Gerekli |
|---|---|---|---|
| isim | Etkinliğin Until adı. |
String | Yes |
| type | Until olarak ayarlanmalıdır. | String | Yes |
| ifade | Doğru veya yanlış olarak değerlendirilecek ifade | İfade | Yes |
| zaman aşımı | Do-until döngüsü, belirtilen süre sona erdiğinde zaman aşımına uğrar. | String.
d.hh:mm:ss (veya) hh:mm:ss. Varsayılan değer yedi gündür. En yüksek değer: 90 gün. |
Hayır |
| Etkinlikler | İfade değerlendirilebilene true kadar gerçekleştirilen etkinlikler kümesi. |
Etkinlik dizisi. | Yes |
Örnek 1
Note
Bu bölümde, işlem hattını çalıştırmak için JSON tanımları ve örnek PowerShell komutları sağlanır. Azure PowerShell ve JSON tanımlarını kullanarak işlem hattı oluşturmaya yönelik adım adım yönergeler içeren bir kılavuz için bkz. tutorial: Azure PowerShell kullanarak veri fabrikası oluşturma.
Until etkinliği ile işlem hattı
Bu örnekte işlem hattının iki etkinliği vardır: Until ve Wait. Wait etkinliği, Web etkinliğini döngüde çalıştırmadan önce belirtilen süre boyunca bekler. İfadeler ve işlevler hakkında bilgi edinmek için bkz. İfade dili ve işlevleri.
{
"name": "DoUntilPipeline",
"properties": {
"activities": [
{
"type": "Until",
"typeProperties": {
"expression": {
"value": "@equals('Failed', coalesce(body('MyUnauthenticatedActivity')?.status, actions('MyUnauthenticatedActivity')?.status, 'null'))",
"type": "Expression"
},
"timeout": "00:10:00",
"activities": [
{
"name": "MyUnauthenticatedActivity",
"type": "WebActivity",
"typeProperties": {
"method": "get",
"url": "https://www.fake.com/",
"headers": {
"Content-Type": "application/json"
}
},
"dependsOn": [
{
"activity": "MyWaitActivity",
"dependencyConditions": [ "Succeeded" ]
}
]
},
{
"type": "Wait",
"typeProperties": {
"waitTimeInSeconds": 1
},
"name": "MyWaitActivity"
}
]
},
"name": "MyUntilActivity"
}
]
}
}
Örnek 2
Bu örnekteki işlem hattı, bir giriş klasöründeki verileri döngüdeki bir çıkış klasörüne kopyalar. Döngü, repeat parametresinin değeri false olarak ayarlandığında veya bir dakika sonra zaman aşımına uğradıysa sonlandırılır.
Until etkinliğiyle işlem hattı (Adfv2QuickStartPipeline.json)
{
"name": "Adfv2QuickStartPipeline",
"properties": {
"activities": [
{
"type": "Until",
"typeProperties": {
"expression": {
"value": "@equals('false', pipeline().parameters.repeat)",
"type": "Expression"
},
"timeout": "00:10:00",
"activities": [
{
"name": "CopyFromBlobToBlob",
"type": "Copy",
"inputs": [
{
"referenceName": "BlobDataset",
"parameters": {
"path": "@pipeline().parameters.inputPath"
},
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "BlobDataset",
"parameters": {
"path": "@pipeline().parameters.outputPath"
},
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "BlobSource"
},
"sink": {
"type": "BlobSink"
}
},
"policy": {
"retry": 1,
"timeout": "00:10:00",
"retryIntervalInSeconds": 60
}
}
]
},
"name": "MyUntilActivity"
}
],
"parameters": {
"inputPath": {
"type": "String"
},
"outputPath": {
"type": "String"
},
"repeat": {
"type": "String"
}
}
}
}
Azure Storage bağlı hizmeti (AzureStorageLinkedService.json)
{
"name": "AzureStorageLinkedService",
"properties": {
"type": "AzureStorage",
"typeProperties": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=<Azure Storage account name>;AccountKey=<Azure Storage account key>"
}
}
}
Parametreli Azure Blob veri kümesi (BlobDataset.json)
İşlem hattı, folderPath değerini, outputPath1 veya outputPath2 parametrelerinden birine ayarlar.
{
"name": "BlobDataset",
"properties": {
"type": "AzureBlob",
"typeProperties": {
"folderPath": {
"value": "@{dataset().path}",
"type": "Expression"
}
},
"linkedServiceName": {
"referenceName": "AzureStorageLinkedService",
"type": "LinkedServiceReference"
},
"parameters": {
"path": {
"type": "String"
}
}
}
}
İşlem hattı parametresi JSON (PipelineParameters.json)
{
"inputPath": "adftutorial/input",
"outputPath": "adftutorial/outputUntil",
"repeat": "true"
}
PowerShell komutları
Note
Azure ile etkileşime geçmek için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell yükleme. Az PowerShell modülüne nasıl geçiş yapılacağını öğrenmek için bkz. AzureRM'den Az Azure PowerShell dağıtma.
Bu komutlar, JSON dosyalarını C:\ADF klasörüne kaydettiğinizi varsayar.
Connect-AzAccount
Select-AzSubscription "<Your subscription name>"
$resourceGroupName = "<Resource Group Name>"
$dataFactoryName = "<Data Factory Name. Must be globally unique>";
Remove-AzDataFactoryV2 $dataFactoryName -ResourceGroupName $resourceGroupName -force
Set-AzDataFactoryV2 -ResourceGroupName $resourceGroupName -Location "East US" -Name $dataFactoryName
Set-AzDataFactoryV2LinkedService -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "AzureStorageLinkedService" -DefinitionFile "C:\ADF\AzureStorageLinkedService.json"
Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "BlobDataset" -DefinitionFile "C:\ADF\BlobDataset.json"
Set-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "Adfv2QuickStartPipeline" -DefinitionFile "C:\ADF\Adfv2QuickStartPipeline.json"
$runId = Invoke-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineName "Adfv2QuickStartPipeline" -ParameterFile C:\ADF\PipelineParameters.json
while ($True) {
$run = Get-AzDataFactoryV2PipelineRun -ResourceGroupName $resourceGroupName -DataFactoryName $DataFactoryName -PipelineRunId $runId
if ($run) {
if ($run.Status -ne 'InProgress') {
Write-Host "Pipeline run finished. The status is: " $run.Status -foregroundcolor "Yellow"
$run
break
}
Write-Host "Pipeline is running...status: InProgress" -foregroundcolor "Yellow"
Write-Host "Activity run details:" -foregroundcolor "Yellow"
$result = Get-AzDataFactoryV2ActivityRun -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineRunId $runId -RunStartedAfter (Get-Date).AddMinutes(-30) -RunStartedBefore (Get-Date).AddMinutes(30)
$result
Write-Host "Activity 'Output' section:" -foregroundcolor "Yellow"
$result.Output -join "`r`n"
}
Start-Sleep -Seconds 15
}
İlgili içerik
Desteklenen diğer denetim akışı etkinliklerine bakın: