Použití vlastních parametrů s šablonou Resource Manageru
PLATÍ PRO: Azure Data Factory Azure Synapse Analytics
Tip
Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak začít používat novou zkušební verzi zdarma.
Pokud má vaše instance vývoje přidružené úložiště Git, můžete přepsat výchozí parametry šablony Resource Manageru vygenerované publikováním nebo exportem šablony. V těchto scénářích můžete chtít přepsat výchozí konfiguraci parametrů Resource Manageru:
Používáte automatizovanou CI/CD a chcete během nasazování Resource Manageru změnit některé vlastnosti, ale vlastnosti nejsou ve výchozím nastavení parametrizovány.
Vaše továrna je tak velká, že výchozí šablona Resource Manageru je neplatná, protože má více než maximální povolené parametry (256).
Pro zpracování limitu vlastního parametru 256 existují tři možnosti:
- Použijte soubor vlastních parametrů a odeberte vlastnosti, které nepotřebují parametrizaci, tj. vlastnosti, které můžou zachovat výchozí hodnotu a tím snížit počet parametrů.
- Refaktoring logiky v toku dat za účelem snížení parametrů, například parametry kanálu mají stejnou hodnotu, můžete místo toho použít globální parametry.
- Rozdělte jednu datnou továrnu na několik datových továren.
Pokud chcete přepsat výchozí konfiguraci parametrů Resource Manageru, přejděte do centra Správa a v části Správa zdrojového kódu vyberte šablonu ARM. V části Konfigurace parametrů ARM kliknutím na upravit ikonu v části Upravit konfiguraci parametrů otevřete editor kódu konfigurace parametru Resource Manageru.
Poznámka:
Konfigurace parametrů ARM je povolená pouze v režimu GIT. V režimu „živý režim" nebo „Data Factory“ je v současnosti zakázána.
Vytvoření vlastní konfigurace parametru Resource Manageru vytvoří soubor s názvem arm-template-parameters-definition.json v kořenové složce vaší větve Git. Musíte použít přesný název souboru.
Při publikování z větve pro spolupráci služba Data Factory přečte tento soubor a použije jeho konfiguraci ke generování vlastností, které se získají parametrizovány. Pokud se nenajde žádný soubor, použije se výchozí šablona.
Při exportu šablony Resource Manageru načte služba Data Factory tento soubor z jakékoli větve, na které právě pracujete, a ne z větve pro spolupráci. Soubor můžete vytvořit nebo upravit z privátní větve, kde můžete otestovat změny výběrem možnosti Exportovat šablonu ARM v uživatelském rozhraní. Soubor pak můžete sloučit do větve pro spolupráci.
Poznámka:
Vlastní konfigurace parametrů Resource Manageru nemění limit parametrů šablony ARM 256. Umožňuje zvolit a snížit počet parametrizovaných vlastností.
Syntaxe vlastních parametrů
Při vytváření souboru vlastních parametrů arm-template-parameters-definition.json postupujte podle následujících pokynů. Soubor se skládá z oddílu pro každý typ entity: trigger, kanál, propojená služba, datová sada, prostředí Integration Runtime a tok dat.
- Zadejte cestu vlastnosti pod příslušným typem entity.
- Nastavením názvu
*
vlastnosti označíte, že chcete parametrizovat všechny vlastnosti pod ní (pouze na první úroveň, ne rekurzivně). Můžete také poskytnout výjimky této konfigurace. - Nastavení hodnoty vlastnosti jako řetězce označuje, že chcete parametrizovat vlastnost. Použijte formát
<action>:<name>:<stype>
.<action>
může mít jeden z těchto znaků:=
znamená zachovat aktuální hodnotu jako výchozí hodnotu parametru.-
znamená, že neuchovávejte výchozí hodnotu parametru.|
je zvláštní případ tajných kódů ze služby Azure Key Vault pro připojovací řetězec nebo klíče.
<name>
je název parametru. Pokud je prázdná, převezme název vlastnosti. Pokud hodnota začíná znakem-
, název se zkracuje. NapříkladAzureStorage1_properties_typeProperties_connectionString
by bylo zkráceno naAzureStorage1_connectionString
.<stype>
je typ parametru. Pokud<stype>
je prázdný, výchozí typ jestring
. Podporované hodnoty:string
, ,int
securestring
,bool
,object
secureobject
, aarray
.
- Zadání pole v definičním souboru označuje, že odpovídající vlastnost v šabloně je pole. Data Factory iteruje všechny objekty v poli pomocí definice zadané v objektu Integration Runtime pole. Druhý objekt, řetězec, se stane názvem vlastnosti, která se používá jako název parametru pro každou iteraci.
- Definice nemůže být specifická pro instanci prostředku. Každá definice se vztahuje na všechny prostředky tohoto typu.
- Ve výchozím nastavení jsou všechny zabezpečené řetězce, jako jsou tajné kódy služby Key Vault, a zabezpečené řetězce, jako jsou připojovací řetězec, klíče a tokeny, parametrizovány.
Ukázková šablona parametrizace
Tady je příklad, jak může vypadat konfigurace parametrů Resource Manageru. Obsahuje příklady řady možných použití, včetně parametrizace vnořených aktivit v kanálu a změny výchozí hodnoty parametru propojené služby.
{
"Microsoft.DataFactory/factories/pipelines": {
"properties": {
"activities": [{
"typeProperties": {
"waitTimeInSeconds": "-::int",
"headers": "=::object",
"activities": [
{
"typeProperties": {
"url": "-:-webUrl:string"
}
}
]
}
}]
}
},
"Microsoft.DataFactory/factories/integrationRuntimes": {
"properties": {
"typeProperties": {
"*": "="
}
}
},
"Microsoft.DataFactory/factories/triggers": {
"properties": {
"typeProperties": {
"recurrence": {
"*": "=",
"interval": "=:triggerSuffix:int",
"frequency": "=:-freq"
},
"maxConcurrency": "="
}
}
},
"Microsoft.DataFactory/factories/linkedServices": {
"*": {
"properties": {
"typeProperties": {
"accountName": "=",
"username": "=",
"connectionString": "|:-connectionString:secureString",
"secretAccessKey": "|"
}
}
},
"AzureDataLakeStore": {
"properties": {
"typeProperties": {
"dataLakeStoreUri": "="
}
}
},
"AzureKeyVault": {
"properties": {
"typeProperties": {
"baseUrl": "|:baseUrl:secureString"
},
"parameters": {
"KeyVaultURL": {
"type": "=",
"defaultValue": "|:defaultValue:secureString"
}
}
}
}
},
"Microsoft.DataFactory/factories/datasets": {
"*": {
"properties": {
"typeProperties": {
"folderPath": "=",
"fileName": "="
}
}
}
},
"Microsoft.DataFactory/factories/credentials" : {
"properties": {
"typeProperties": {
"resourceId": "="
}
}
}
}
Tady je vysvětlení toho, jak je předchozí šablona vytvořena, rozdělená podle typu prostředku.
Pipelines
- Jakákoli vlastnost v cestě
activities/typeProperties/waitTimeInSeconds
je parametrizována. Jakákoli aktivita v kanálu, který má vlastnost na úrovni kódu s názvemwaitTimeInSeconds
(napříkladWait
aktivita), je parametrizována jako číslo s výchozím názvem. V šabloně Resource Manageru ale nebude mít výchozí hodnotu. Bude to povinný vstup během nasazení Resource Manageru. - Podobně je vlastnost s názvem
headers
(například vWeb
aktivitě) parametrizována typemobject
(JObject). Má výchozí hodnotu, což je stejná hodnota jako zdrojová továrna.
IntegrationRuntimes
- Všechny vlastnosti v cestě
typeProperties
jsou parametrizovány s příslušnými výchozími hodnotami. Ve vlastnostech typu jsou například dvě vlastnostiIntegrationRuntimes
:computeProperties
assisProperties
. Oba typy vlastností se vytvářejí s příslušnými výchozími hodnotami a typy (Object).
Aktivační události
- V části
typeProperties
, dvě vlastnosti jsou parametrizovány. První jemaxConcurrency
, který je určen tak, aby měl výchozí hodnotu a je typustring
. Má výchozí název<entityName>_properties_typeProperties_maxConcurrency
parametru . - Vlastnost
recurrence
je také parametrizována. V této části jsou všechny vlastnosti na této úrovni zadány tak, aby byly parametrizovány jako řetězce s výchozími hodnotami a názvy parametrů. Výjimkou jeinterval
vlastnost, která je parametrizována jako typint
. Název parametru je příponou<entityName>_properties_typeProperties_recurrence_triggerSuffix
.freq
Podobně je vlastnost řetězec a je parametrizován jako řetězec.freq
Vlastnost je však parametrizována bez výchozí hodnoty. Název je zkrácený a s příponou. Například<entityName>_freq
.
Propojené služby
- Propojené služby jsou jedinečné. Vzhledem k tomu, že propojené služby a datové sady mají širokou škálu typů, můžete poskytnout přizpůsobení specifické pro konkrétní typ. V tomto příkladu se pro všechny propojené služby typu
AzureDataLakeStore
použije konkrétní šablona. Pro všechny ostatní (prostřednictvím*
) se použije jiná šablona. - Vlastnost
connectionString
bude parametrizovánasecurestring
jako hodnota. Nebude mít výchozí hodnotu. Bude mít zkrácený název parametru, který má příponuconnectionString
. - Vlastnost
secretAccessKey
se stane (AzureKeyVaultSecret
například v propojené službě Amazon S3). Automaticky se parametrizuje jako tajný klíč služby Azure Key Vault a načte se z nakonfigurovaného trezoru klíčů. Můžete také parametrizovat samotný trezor klíčů.
Datové sady
- I když je pro datové sady k dispozici přizpůsobení specifické pro typ, můžete zadat konfiguraci bez explicitní konfigurace na úrovni *. V předchozím příkladu jsou všechny vlastnosti datové sady pod
typeProperties
parametrizovány.
Poznámka:
Pokud jsou pro kanál nakonfigurovaná upozornění a matice Azure, nejsou aktuálně podporované jako parametry pro nasazení ARM. Pokud chcete upozornění a matice v novém prostředí znovu použít, postupujte podle monitorování , upozornění a matic služby Data Factory.
Výchozí šablona parametrizace
Níže je aktuální výchozí šablona parametrizace. Pokud potřebujete přidat jenom několik parametrů, může být vhodné upravit tuto šablonu přímo, protože nepřijdete o existující strukturu parametrizace.
{
"Microsoft.DataFactory/factories": {
"properties": {
"globalParameters": {
"*": {
"value": "="
}
}
},
"location": "="
},
"Microsoft.DataFactory/factories/globalparameters": {
"properties": {
"*": {
"value": "="
}
}
},
"Microsoft.DataFactory/factories/pipelines": {
},
"Microsoft.DataFactory/factories/dataflows": {
},
"Microsoft.DataFactory/factories/integrationRuntimes":{
"properties": {
"typeProperties": {
"ssisProperties": {
"catalogInfo": {
"catalogServerEndpoint": "=",
"catalogAdminUserName": "=",
"catalogAdminPassword": {
"value": "-::secureString"
}
},
"customSetupScriptProperties": {
"sasToken": {
"value": "-::secureString"
}
}
},
"linkedInfo": {
"key": {
"value": "-::secureString"
},
"resourceId": "="
},
"computeProperties": {
"dataFlowProperties": {
"externalComputeInfo": [{
"accessToken": "-::secureString"
}
]
}
}
}
}
},
"Microsoft.DataFactory/factories/triggers": {
"properties": {
"pipelines": [{
"parameters": {
"*": "="
}
}
],
"pipeline": {
"parameters": {
"*": "="
}
},
"typeProperties": {
"scope": "="
}
}
},
"Microsoft.DataFactory/factories/linkedServices": {
"*": {
"properties": {
"typeProperties": {
"accountName": "=",
"username": "=",
"userName": "=",
"accessKeyId": "=",
"servicePrincipalId": "=",
"userId": "=",
"host": "=",
"clientId": "=",
"clusterUserName": "=",
"clusterSshUserName": "=",
"hostSubscriptionId": "=",
"clusterResourceGroup": "=",
"subscriptionId": "=",
"resourceGroupName": "=",
"tenant": "=",
"dataLakeStoreUri": "=",
"baseUrl": "=",
"database": "=",
"serviceEndpoint": "=",
"batchUri": "=",
"poolName": "=",
"databaseName": "=",
"systemNumber": "=",
"server": "=",
"url":"=",
"functionAppUrl":"=",
"environmentUrl": "=",
"aadResourceId": "=",
"sasUri": "|:-sasUri:secureString",
"sasToken": "|",
"connectionString": "|:-connectionString:secureString",
"hostKeyFingerprint": "="
}
}
},
"Odbc": {
"properties": {
"typeProperties": {
"userName": "=",
"connectionString": {
"secretName": "="
}
}
}
}
},
"Microsoft.DataFactory/factories/datasets": {
"*": {
"properties": {
"typeProperties": {
"folderPath": "=",
"fileName": "="
}
}
}
},
"Microsoft.DataFactory/factories/managedVirtualNetworks/managedPrivateEndpoints": {
"properties": {
"*": "="
}
}
}
Příklad: Parametrizace existujícího ID interaktivního clusteru Azure Databricks
Následující příklad ukazuje, jak přidat jednu hodnotu do výchozí šablony parametrizace. Do souboru parametrů chceme přidat pouze existující ID interaktivního clusteru Azure Databricks pro propojenou službu Databricks. Všimněte si, že tento soubor je stejný jako předchozí soubor s výjimkou přidání existingClusterId
pod pole vlastnosti pole Microsoft.DataFactory/factories/linkedServices
.
{
"Microsoft.DataFactory/factories": {
"properties": {
"globalParameters": {
"*": {
"value": "="
}
}
},
"location": "="
},
"Microsoft.DataFactory/factories/pipelines": {
},
"Microsoft.DataFactory/factories/dataflows": {
},
"Microsoft.DataFactory/factories/integrationRuntimes":{
"properties": {
"typeProperties": {
"ssisProperties": {
"catalogInfo": {
"catalogServerEndpoint": "=",
"catalogAdminUserName": "=",
"catalogAdminPassword": {
"value": "-::secureString"
}
},
"customSetupScriptProperties": {
"sasToken": {
"value": "-::secureString"
}
}
},
"linkedInfo": {
"key": {
"value": "-::secureString"
},
"resourceId": "="
}
}
}
},
"Microsoft.DataFactory/factories/triggers": {
"properties": {
"pipelines": [{
"parameters": {
"*": "="
}
}
],
"pipeline": {
"parameters": {
"*": "="
}
},
"typeProperties": {
"scope": "="
}
}
},
"Microsoft.DataFactory/factories/linkedServices": {
"*": {
"properties": {
"typeProperties": {
"accountName": "=",
"username": "=",
"userName": "=",
"accessKeyId": "=",
"servicePrincipalId": "=",
"userId": "=",
"clientId": "=",
"clusterUserName": "=",
"clusterSshUserName": "=",
"hostSubscriptionId": "=",
"clusterResourceGroup": "=",
"subscriptionId": "=",
"resourceGroupName": "=",
"tenant": "=",
"dataLakeStoreUri": "=",
"baseUrl": "=",
"database": "=",
"serviceEndpoint": "=",
"batchUri": "=",
"poolName": "=",
"databaseName": "=",
"systemNumber": "=",
"server": "=",
"url":"=",
"aadResourceId": "=",
"connectionString": "|:-connectionString:secureString",
"existingClusterId": "-"
}
}
},
"Odbc": {
"properties": {
"typeProperties": {
"userName": "=",
"connectionString": {
"secretName": "="
}
}
}
}
},
"Microsoft.DataFactory/factories/datasets": {
"*": {
"properties": {
"typeProperties": {
"folderPath": "=",
"fileName": "="
}
}
}}
}
Související obsah
- Přehled kontinuální integrace a doručování
- Automatizace kontinuální integrace pomocí vydaných verzí Azure Pipelines
- Ruční zvýšení úrovně šablony Resource Manageru do každého prostředí
- Propojené šablony Resource Manageru
- Použití produkčního prostředí oprav hotfix
- Ukázkový skript před nasazením a po nasazení