Rozšíření prostředků o vlastní poskytovatele prostředků
V tomto kurzu nasadíte do Azure vlastního poskytovatele prostředků, který rozšiřuje rozhraní API azure Resource Manager o typ prostředku Microsoft.CustomProviders/associations. V tomto kurzu se dozvíte, jak rozšířit existující prostředky, které jsou mimo skupinu prostředků, ve které se nachází instance vlastního poskytovatele prostředků. V tomto kurzu používá vlastní poskytovatel prostředků technologii aplikace logiky Azure, ale můžete použít libovolný veřejný koncový bod rozhraní API.
Požadavky
Abyste mohli absolvovat tento kurz, nezapomeňte si projít následující:
- Možnosti vlastních poskytovatelů prostředků Azure.
- Základní informace o onboardingu prostředků s vlastními poskytovateli prostředků
Začínáme s onboardingem prostředků
V tomto kurzu je potřeba nasadit dvě části: vlastního poskytovatele prostředků a přidružení. Pokud chcete tento proces zjednodušit, můžete volitelně použít jednu šablonu, která nasadí obojí.
Šablona bude používat tyto prostředky:
- Microsoft.CustomProviders/resourceProviders
- Microsoft.Logic/workflows
- Microsoft.CustomProviders/associations
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"allowedValues": [
"australiaeast",
"eastus",
"westeurope"
],
"metadata": {
"description": "Location for the resources."
}
},
"logicAppName": {
"type": "string",
"defaultValue": "[uniqueString(resourceGroup().id)]",
"metadata": {
"description": "Name of the logic app to be created."
}
},
"customResourceProviderName": {
"type": "string",
"defaultValue": "[uniqueString(resourceGroup().id)]",
"metadata": {
"description": "Name of the custom resource provider to be created."
}
},
"customResourceProviderId": {
"type": "string",
"defaultValue": "",
"metadata": {
"description": "The resource ID of an existing custom resource provider. Provide this to skip deployment of new logic app and custom resource provider."
}
},
"associationName": {
"type": "string",
"defaultValue": "myAssociationResource",
"metadata": {
"description": "Name of the custom resource that is being created."
}
}
},
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2021-04-01",
"condition": "[empty(parameters('customResourceProviderId'))]",
"name": "customProviderInfrastructureTemplate",
"properties": {
"mode": "Incremental",
"template": {
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"logicAppName": {
"type": "string",
"defaultValue": "[parameters('logicAppName')]"
}
},
"resources": [
{
"type": "Microsoft.Logic/workflows",
"apiVersion": "2019-05-01",
"name": "[parameters('logicAppName')]",
"location": "[parameters('location')]",
"properties": {
"state": "Enabled",
"definition": {
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
"actions": {
"Switch": {
"cases": {
"Case": {
"actions": {
"CreateCustomResource": {
"inputs": {
"body": {
"properties": "@addProperty(triggerBody().Body['properties'], 'myDynamicProperty', 'myDynamicValue')"
},
"statusCode": 200
},
"kind": "Http",
"type": "Response"
}
},
"case": "CREATE"
}
},
"default": {
"actions": {
"DefaultHttpResponse": {
"inputs": {
"statusCode": 200
},
"kind": "Http",
"type": "Response"
}
}
},
"expression": "@triggerBody().operationType",
"type": "Switch"
}
},
"contentVersion": "1.0.0.0",
"outputs": {},
"parameters": {},
"triggers": {
"CustomProviderWebhook": {
"inputs": {
"schema": {}
},
"kind": "Http",
"type": "Request"
}
}
}
}
},
{
"type": "Microsoft.CustomProviders/resourceProviders",
"apiVersion": "2018-09-01-preview",
"name": "[parameters('customResourceProviderName')]",
"location": "[parameters('location')]",
"properties": {
"resourceTypes": [
{
"name": "associations",
"mode": "Secure",
"routingType": "Webhook,Cache,Extension",
"endpoint": "[[listCallbackURL(concat(resourceId('Microsoft.Logic/workflows', parameters('logicAppName')), '/triggers/CustomProviderWebhook'), '2019-05-01').value]"
}
]
}
}
],
"outputs": {
"customProviderResourceId": {
"type": "string",
"value": "[resourceId('Microsoft.CustomProviders/resourceProviders', parameters('customResourceProviderName'))]"
}
}
}
}
},
{
"type": "Microsoft.CustomProviders/associations",
"apiVersion": "2018-09-01-preview",
"name": "[parameters('associationName')]",
"location": "global",
"properties": {
"targetResourceId": "[if(empty(parameters('customResourceProviderId')), reference('customProviderInfrastructureTemplate').outputs.customProviderResourceId.value, parameters('customResourceProviderId'))]",
"myCustomInputProperty": "myCustomInputValue",
"myCustomInputObject": {
"Property1": "Value1"
}
}
}
],
"outputs": {
"associationResource": {
"type": "object",
"value": "[reference(parameters('associationName'), '2018-09-01-preview', 'Full')]"
}
}
}
Nasazení infrastruktury vlastního poskytovatele prostředků
První část šablony nasadí vlastní infrastrukturu poskytovatele prostředků. Tato infrastruktura definuje účinek prostředku přidružení. Pokud nejste obeznámeni s vlastními poskytovateli prostředků, projděte si přehled vlastních poskytovatelů prostředků Azure.
Pojďme nasadit vlastní infrastrukturu poskytovatele prostředků. Buď zkopírujte, uložte a nasaďte předchozí šablonu, nebo postupujte podle pokynů a nasaďte infrastrukturu pomocí Azure Portal.
Přejděte na Azure Portal.
Vyhledejte šablony ve všech službách nebo pomocí hlavního vyhledávacího pole:
V podokně Šablony vyberte Přidat:
V části Obecné zadejte Název a Popis nové šablony:
Vytvořte šablonu Resource Manager tak, že zkopírujete šablonu JSON z části Začínáme s onboardingem prostředků v tomto článku:
Vyberte Přidat a vytvořte šablonu. Pokud se nová šablona nezobrazí, vyberte Aktualizovat.
Vyberte nově vytvořenou šablonu a pak vyberte Nasadit:
Zadejte nastavení pro požadovaná pole a pak vyberte předplatné a skupinu prostředků. Pole ID vlastního poskytovatele prostředků můžete nechat prázdné.
Název nastavení Povinné? Description Umístění Ano Umístění prostředků v šabloně. Název aplikace logiky No Název aplikace logiky. Název vlastního poskytovatele prostředků No Název vlastního poskytovatele prostředků. ID vlastního poskytovatele prostředků No Existující vlastní poskytovatel prostředků, který podporuje prostředek přidružení. Pokud zadáte hodnotu, přeskočí se nasazení aplikace logiky a vlastního poskytovatele prostředků. Název přidružení No Název prostředku přidružení. Ukázkové parametry:
Přejděte k nasazení a počkejte, až se dokončí. Měli byste vidět něco podobného jako na následujícím snímku obrazovky. Jako výstup by se měl zobrazit nový prostředek přidružení:
Tady je skupina prostředků s vybranou možností Zobrazit skryté typy :
Prozkoumejte kartu Historie spuštění aplikace logiky a podívejte se na volání pro vytvoření přidružení:
Nasazení dalších přidružení
Po nastavení infrastruktury vlastního poskytovatele prostředků můžete snadno nasadit více přidružení. Skupina prostředků pro další přidružení nemusí být stejná jako skupina prostředků, do které jste nasadili vlastní infrastrukturu poskytovatele prostředků. Pokud chcete vytvořit přidružení, musíte mít oprávnění Microsoft.CustomProviders/resourceproviders/write pro zadané ID vlastního poskytovatele prostředků.
Přejděte k prostředku vlastního poskytovatele prostředků Microsoft.CustomProviders/resourceProviders ve skupině prostředků předchozího nasazení. Musíte zaškrtnout políčko Zobrazit skryté typy :
Zkopírujte vlastnost ID prostředku vlastního poskytovatele prostředků.
Vyhledejte šablony ve všech službách nebo pomocí hlavního vyhledávacího pole:
Vyberte dříve vytvořenou šablonu a pak vyberte Nasadit:
Zadejte nastavení požadovaných polí a pak vyberte předplatné a jinou skupinu prostředků. Pro nastavení ID vlastního poskytovatele prostředků zadejte ID prostředku, které jste zkopírovali z vlastního poskytovatele prostředků, kterého jste nasadili dříve.
Přejděte k nasazení a počkejte, až se dokončí. Teď by měl nasadit jenom nový prostředek přidružení:
Můžete se vrátit do historie spuštění aplikace logiky a podívat se, že bylo provedeno další volání aplikace logiky. Aplikaci logiky můžete aktualizovat a rozšířit tak další funkce pro každé vytvořené přidružení.
Další kroky
V tomto článku jste do Azure nasadili vlastního poskytovatele prostředků, který rozšiřuje rozhraní API azure Resource Manager o typ prostředku Microsoft.CustomProviders/associates. Další informace o poskytovateli vlastních prostředků najdete v tématech: