Přidání vlastních prostředků do rozhraní Azure REST API
Tento článek si projde požadavky a osvědčené postupy pro vytváření koncových bodů vlastního poskytovatele prostředků Azure, které implementují vlastní prostředky. Pokud nejste obeznámeni s vlastními poskytovateli prostředků Azure, projděte si přehled o vlastních poskytovatelích prostředků.
Jak definovat koncový bod prostředku
Koncový bod je adresa URL, která odkazuje na službu, která implementuje podkladovou smlouvu mezi ní a Azure. Koncový bod je definovaný ve vlastním poskytovateli prostředků a může to být libovolná veřejně přístupná adresa URL. Následující ukázka obsahuje typ prostředku s názvem myCustomResource
implementovaný nástrojem endpointURL
.
Ukázkový resourceprovider:
{
"properties": {
"resourceTypes": [
{
"name": "myCustomResource",
"routingType": "Proxy, Cache",
"endpoint": "https://{endpointURL}/"
}
]
},
"location": "eastus",
"type": "Microsoft.CustomProviders/resourceProviders",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}",
"name": "{resourceProviderName}"
}
Vytvoření koncového bodu prostředku
Koncový bod, který implementuje resourceType, musí zpracovat požadavek a odpověď na nové rozhraní API v Azure. Při vytvoření vlastního poskytovatele prostředků s parametrem resourceType vygeneruje v Azure novou sadu rozhraní API. V tomto případě resourceType vygeneruje nové rozhraní API prostředků Azure pro PUT
, GET
a DELETE
, které provede CRUD u jednoho prostředku a GET
načte všechny existující prostředky:
Manipulace s jedním prostředkem (PUT
, GET
a DELETE
):
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResource/{myCustomResourceName}
Načíst všechny prostředky (GET
):
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResource
Pro vlastní prostředky nabízejí vlastní poskytovatelé prostředků dva typy routingTypes: "Proxy
" a "Proxy, Cache
".
typ směrování proxy serveru
Parametr routingTypeProxy
proxy všechny metody požadavků na koncový bod zadaný ve vlastním poskytovateli prostředků. Kdy použít "Proxy
":
- Vyžaduje se úplná kontrola nad odpovědí.
- Integrace systémů se stávajícími prostředky
Další informace o prostředcích najdete v referenčních informacích kProxy
vlastnímu proxy serveru prostředků.
Typ směrování mezipaměti proxy serveru
Proxy, Cache
"" routingType proxy pouze PUT
a DELETE
metody požadavku na koncový bod zadaný ve vlastním poskytovateli prostředků. Vlastní poskytovatel prostředků bude automaticky vracet GET
požadavky na základě toho, co má uložené v mezipaměti. Pokud je vlastní prostředek označený mezipamětí, vlastní poskytovatel prostředků v odpovědi také přidá nebo přepíše pole, aby rozhraní API Azure vyhovovala. When to use "Proxy, Cache
":
- Vytvoření nového systému, který nemá žádné existující prostředky.
- Pracujte se stávajícím ekosystémem Azure.
Další informace oProxy, Cache
prostředcích najdete v referenčních informacích k mezipaměti vlastních prostředků.
Vytvoření vlastního prostředku
Existují dva hlavní způsoby, jak vytvořit vlastní prostředek z vlastního poskytovatele prostředků:
- Azure CLI
- Šablony Azure Resource Manageru
Azure CLI
Vytvoření vlastního prostředku:
az resource create --is-full-object \
--id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{resourceTypeName}/{customResourceName} \
--properties \
'{
"location": "eastus",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3": "myPropertyValue3"
}
}
}'
Parametr | Povinné | Popis |
---|---|---|
is-full-object | Ano | Označuje, že objekt properties obsahuje další možnosti, jako je umístění, značky, skladová položka nebo plán. |
id | yes | ID prostředku vlastního prostředku. Tato možnost by měla existovat mimo ResourceProvider. |
properties | yes | Text požadavku, který se odešle do koncového bodu. |
Odstranění vlastního prostředku Azure:
az resource delete --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{resourceTypeName}/{customResourceName}
Parametr | Povinné | Popis |
---|---|---|
id | yes | The resource ID of the custom resource. Tato možnost by měla existovat mimo ResourceProvider. |
Načtení vlastního prostředku Azure:
az resource show --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/{resourceTypeName}/{customResourceName}
Parametr | Povinné | Popis |
---|---|---|
id | yes | The resource ID of the custom resource. This should exist off of the ResourceProvider |
Šablona Azure Resource Manageru
Poznámka
Prostředky vyžadují, aby odpověď obsahovala odpovídající id
, name
a type
z koncového bodu.
Šablony Azure Resource Manager vyžadují, aby id
se z podřízeného koncového bodu správně vracely , name
atype
. Vrácená odpověď prostředku by měla být ve formátu:
Ukázková odpověď koncového bodu :
{
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3": "myPropertyValue3"
}
},
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{customResourceName}",
"name": "{customResourceName}",
"type": "Microsoft.CustomProviders/resourceProviders/{resourceTypeName}"
}
Ukázková šablona Azure Resource Manager:
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.CustomProviders/resourceProviders/{resourceTypeName}",
"name": "{resourceProviderName}/{customResourceName}",
"apiVersion": "2018-09-01-preview",
"location": "eastus",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3": "myPropertyValue3"
}
}
}
]
}
Parametr | Povinné | Popis |
---|---|---|
resourceTypeName | yes | NázevresourceType definovaný ve vlastním poskytovateli prostředků. |
resourceProviderName | yes | Název instance vlastního poskytovatele prostředků |
customResourceName | yes | Název vlastního prostředku. |
Další kroky
- Přehled vlastních poskytovatelů prostředků Azure
- Rychlý start: Vytvoření vlastního poskytovatele prostředků Azure a nasazení vlastních prostředků
- Kurz: Vytváření vlastních akcí a prostředků v Azure
- Postupy: Přidání vlastních akcí do rozhraní Azure REST API
- Referenční informace: Referenční dokumentace k proxy vlastním prostředkům
- Referenční informace: Referenční dokumentace k mezipaměti vlastních prostředků