Invoke-AzRestMethod ile Azure kaynaklarını yönetme
Invoke-AzRestMethod Az PowerShell modülü sürüm 4.4.0’da tanıtılan bir Azure PowerShell cmdlet’idir. Az bağlamını kullanarak Azure Resource Manager (ARM) uç noktasına özel HTTP istekleri göndermenizi sağlar.
Henüz Az PowerShell modülünde kullanıma sunulmamış özellikler için Azure hizmetlerini yönetmek istediğinizde bu cmdlet’ten faydalanabilirsiniz.
Invoke-AzRestMethod metodunu kullanma
Örneğin, Azure Container Registry’ye (ACR) yalnızca belirli ağlar için erişim izni verebilir veya genel erişimi reddedebilirsiniz. Az PowerShell modülü 4.5.0 sürümü itibarıyla bu özellik henüz Az.ContainerRegistry PowerShell modülünde kullanıma sunulmamıştır. Ancak, geçici olarak Invoke-AzRestMethod
metoduyla yönetilebilir.
GET işlemleriyle Invoke-AzRestMethod yöntemini kullanma
Aşağıdaki örnekte, Invoke-AzRestMethod
cmdlet’inin bir GET işlemiyle nasıl kullanıldığı gösterilmektedir:
$getParams = @{
ResourceGroupName = 'myresourcegroup'
ResourceProviderName = 'Microsoft.ContainerRegistry'
ResourceType = 'registries'
Name = 'myacr'
ApiVersion = '2019-12-01-preview'
Method = 'GET'
}
Invoke-AzRestMethod @getParams
En yüksek düzeyde esnekliğe olanak tanımak amacıyla, Invoke-AzRestMethod
parametrelerinin çoğu isteğe bağlıdır.
Ancak, bir kaynak grubu içindeki kaynakları yönetirken, kaynağa tam kimliği veya kaynak grubu, kaynak sağlayıcısı ve kaynak türü gibi parametreleri sağlamanız gerekir.
ResourceType
ve Name
parametreleri, birden fazla ad gerektiren kaynakları hedeflerken birden çok değer alabilir. Örneğin, Log Analytics çalışma alanında kayıtlı bir aramayı değiştirmek için parametreler şu örneğe benzer: -ResourceType @('workspaces', 'savedsearches') -Name @('my-la', 'my-search')
.
Cmdlet, dizideki konuma göre bir eşleme kullanarak şu kaynağı oluşturur: Id:'/workspaces/my-la/savedsearches/my-search'
.
APIVersion
parametresi, önizleme sürümleri dahil olmak üzere belirli bir API sürümünü kullanmanıza olanak verir. Azure kaynak sağlayıcıları için desteklenen API sürümleri azure-rest-api-specs adlı GitHub deposunda bulunabilir.
ACR API sürümünün 2019-12-01-preview
tanımını şu konumda bulabilirsiniz: azure-rest-api-specs/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/preview/.
PATCH işlemleriyle Invoke-AzRestMethod yöntemini kullanma
Invoke-AzRestMethod
cmdlet’ini kullanarak myresourcegroup
kaynak grubundaki myacr
adlı mevcut ACR’ye yönelik genel erişimi devre dışı bırakabilirsiniz.
Genel ağ erişimini devre dışı bırakmak için, aşağıdaki resimde gösterildiği şekilde publicNetwokAccess
parametresinin değerini değiştiren API’ye bir PATCH çağrısı yapmanız gerekir:
$patchParams = @{
ResourceGroupName = 'myresourcegroup'
Name = 'myacr'
ResourceProviderName = 'Microsoft.ContainerRegistry'
ResourceType = 'registries'
ApiVersion = '2019-12-01-preview'
Payload = '{ "properties": {
"publicNetworkAccess": "Disabled"
} }'
Method = 'PATCH'
}
Invoke-AzRestMethod @patchParams
Payload
özelliği, değiştirilecek özelliğin yolunu gösteren bir JSON dizesidir.
Bu API’ye yönelik tüm parametreler, bu API’yle ilişkili rest-api-spec dosyasında açıklanmıştır.
publicNetworkAccess parametresinin özel tanımı, API sürümü için 2019-12-01-preview
kapsayıcı kayıt defteri JSON dosyasında bulunabilir.
Kayıt defterine yalnızca belirli bir IP adresinden erişime izin vermek için yükün aşağıdaki örnekte gösterildiği gibi değiştirilmesi gerekir:
$specificIpParams = @{
ResourceGroupName = 'myresourcegroup'
Name = 'myacr'
ResourceProviderName = 'Microsoft.ContainerRegistry'
ResourceType = 'registries'
ApiVersion = '2019-12-01-preview'
Payload = '{ "properties": {
"networkRuleSet": {
"defaultAction": "Deny",
"ipRules": [ {
"action": "Allow",
"value": "24.22.123.123"
} ]
}
} }'
Method = 'PATCH'
}
Invoke-AzRestMethod @specificIpParams
Get-AzResource, New-AzResource ve Remove-AzResource karşılaştırması
*-AzResource
cmdlet’leri kaynak türünü, API sürümünü ve güncelleştirilecek özellikleri belirterek Azure’a yapılan REST API çağrısını özelleştirmenize olanak verir. Ancak, özelliklerin önce PSObject
olarak oluşturulması gerekir. Bu işlem ek bir karmaşıklık düzeyi ekler ve karmaşık hale gelebilir.
Invoke-AzRestMethod
Azure kaynaklarını yönetmek için bir yol sunar. Önceki örnekte gösterildiği gibi, bir JSON dizesi derleyebilir ve herhangi PSObjects
bir önceden oluşturmak zorunda kalmadan REST API çağrısını özelleştirmek için kullanabilirsiniz.
*-AzResource
cmdlet’lerini zaten biliyorsanız kullanmaya devam edebilirsiniz. Onları desteklemeyi durdurmayı planlayacağız. ile Invoke-AzRestMethod
araç setinize yeni bir cmdlet ekledik.