Skip to main content
Version: v0.6.0

Azure API Management

This module provides the following capabilities:

Installation

To have access to the following features, you have to import the module:

PS> Install-Module -Name Arcus.Scripting.ApiManagement

Backing up an API Management service

Backs up an API Management service (with built-in storage context retrieval).

ParameterMandatoryDescription
ResourceGroupNameyesThe name of the of resource group under which the API Management deployment exists.
StorageAccountResourceGroupNameyesThe name of the resource group under which the storage account exists.
StorageAccountNameyesThe name of the Storage account for which this cmdlet gets keys.
ServiceNameyesThe name of the API Management deployment that this cmdlet backs up.
ContainerNameyesThe name of the container of the blob for the backup. If the container does not exist, this cmdlet creates it.
BlobNamenoThe name of the blob for the backup. If the blob does not exist, this cmdlet creates it (default value based on pattern: {Name}-{yyyy-MM-dd-HH-mm}.apimbackup.
PassThrunoIndicates that this cmdlet returns the backed up PsApiManagement object, if the operation succeeds.
DefaultProfilenoThe credentials, account, tenant, and subscription used for communication with azure.

Example

Simplest way to back up an API Management service.

PS> Backup-AzApiManagementService -ResourceGroupName "my-resource-group" -StorageAccountResourceGroupName "my-storage-account-resource-group" -StorageAccountName "my-storage-account" -ServiceName "my-service" -ContainerName "my-target-blob-container"
# Getting Azure storage account key..
# Got Azure storage key!
# Create new Azure storage context with storage key...
# New Azure storage context with storage key created!
# Start backing up API management service...
# API management service is backed-up!

Creating a new API operation in the Azure API Management instance

Create an operation on an existing API in Azure API Management.

ParameterMandatoryDescription
ResourceGroupNameyesThe resource group containing the Azure API Management instance
ServiceNameyesThe name of the Azure API Management instance located in Azure
ApiIdyesThe ID to identify the API running in Azure API Management
OperationIdyesThe ID to identify the to-be-created operation on the API
MethodyesThe method of the to-be-created operation on the API
UrlTemplateyesThe URL-template, or endpoint-URL, of the to-be-created operation on the API
OperationNamenoThe optional descriptive name to give to the to-be-created operation on the API (default: OperationId)
DescriptionnoThe optional explanation to describe the to-be-created operation on the API
PolicyFilePathnoThe path to the file containing the optional policy of the to-be-created operation on the API

Example

Creates a new API operation on the Azure API Management instance with using the default base operation policy.

PS> Create-AzApiManagementApiOperation -ResourceGroupName $ResourceGroup -ServiceName $ServiceName -ApiId $ApiId -OperationId $OperationId -Method $Method -UrlTemplate $UrlTemplate
# New API operation '$OperationName' on Azure API Management instance was added.

Creates a new API operation on the Azure API Management instance with using a specific operation policy.

PS> Create-AzApiManagementApiOperation -ResourceGroupName $ResourceGroup -ServiceName $ServiceName -ApiId $ApiId -OperationId $OperationId -Method $Method -UrlTemplate $UrlTemplate -OperationName $OperationName -Description $Description -PolicyFilePath $PolicyFilePath
# New API operation '$OperationName' on API Management instance was added.

Importing a policy to a product in the Azure API Management instance

Imports a policy from a file to a product in Azure API Management.

ParameterMandatoryDescription
ResourceGroupNameyesThe resource group containing the Azure API Management instance
ServiceNameyesThe name of the Azure API Management instance located in Azure
ProductIdyesThe ID to identify the product in Azure API Management
PolicyFilePathyesThe path to the file containing the to-be-imported policy
PS> Import-AzApiManagementProductPolicy -ResourceGroupName $ResourceGroup -ServiceName $ServiceName -ProductId $ProductId -PolicyFilePath $PolicyFilePath
# Updating policy of the product '$ProductId'

Importing a policy to an API in the Azure API Management instance

Imports a base-policy from a file to an API in Azure API Management.

ParameterMandatoryDescription
ResourceGroupNameyesThe resource group containing the Azure API Management instance
ServiceNameyesThe name of the Azure API Management instance located in Azure
ApiIdyesThe ID to identify the API running in Azure API Management
PolicyFilePathyesThe path to the file containing the to-be-imported policy
PS> Import-AzApiManagementApiPolicy -ResourceGroupName $ResourceGroup -ServiceName $ServiceName -ApiId $ApiId -PolicyFilePath $PolicyFilePath
# Updating policy of the API '$ApiId'

Importing a policy to an operation in the Azure API Management instance

Imports a policy from a file to an API operation in Azure API Management.

ParameterMandatoryDescription
ResourceGroupNameyesThe resource group containing the Azure API Management instance
ServiceNameyesThe name of the Azure API Management service located in Azure
ApiIdyesThe ID to identify the API running in Azure API Management
OperationIdyesThe ID to identify the operation for which to import the policy
PolicyFilePathyesThe path to the file containing the to-be-imported policy
PS> Import-AzApiManagementOperationPolicy -ResourceGroupName $ResourceGroup -ServiceName $ServiceName -ApiId $ApiId -OperationId $OperationId -PolicyFilePath $PolicyFilePath
# Updating policy of the operation '$OperationId' in API '$ApiId'

Removing all Azure API Management defaults from the instance

Remove all default API's and products from the Azure API Management instance ('echo-api' API, 'starter' & 'unlimited' products), including the subscriptions.

ParameterMandatoryDescription
ResourceGroupNameyesThe resource group containing the Azure API Management instance
ServiceNameyesThe name of the Azure API Management instance located in Azure
PS> Remove-AzApiManagementDefaults -ResourceGroupName $ResourceGroup -ServiceName $ServiceName
# Removing Echo Api...
# Removing Starter product...
# Removing Unlimited product...

Restoring an API Management service

The Restore-AzApiManagement cmdlet restores an API Management Service from the specified backup residing in an Azure Storage blob.

ParameterMandatoryDescription
ResourceGroupNameyesThe name of resource group under which API Management exists.
StorageAccountResourceGroupNameyesThe name of the resource group that contains the Storage account.
StorageAccountNameyesThe name of the Storage account for which this cmdlet gets keys.
ServiceNameyesThe name of the API Management instance that will be restored with the backup.
ContainerNameyesThe name of the Azure storage backup source container.
BlobNameyesThe name of the Azure storage backup source blob.
PassThrunoReturns an object representing the item with which you are working. By default, this cmdlet does not generate any output.
DefaultProfilenoThe credentials, account, tenant, and subscription used for communication with azure.
PS> Restore-AzApiManagementService -ResourceGroupName $ResourceGroupName -$StorageAccountResourceGroupName -StorageAccountName $StorageAccountName -ServiceName $ServiceName -ContainerName $ContainerName -BlobName $BlobName
# Getting Azure storage account key...
# Got Azure storage key!
# Create new Azure storage context with storage key...
# New Azure storage context with storage key created!
# Start restoring up API management service...
# API management service is restored!

Setting authentication keys to an API in the Azure API Management instance

Sets the subscription header/query parameter name to an API in Azure API Management.

ParameterMandatoryDescription
ResourceGroupNameyesThe resource group containing the Azure API Management instance
ServiceNameyesThe name of the Azure API Management instance located in Azure
ApiIdyesThe ID to identify the API running in Azure API Management
HeaderNamenoThe name of the header where the subscription key should be set. (default: x-api-key)
QueryParamNamenoThe name of the query parameter where the subscription key should be set. (default: apiKey)

Using default

PS> Set-AzApiManagementApiSubscriptionKey -ResourceGroupName $ResourceGroup -ServiceName $ServiceName -ApiId $ApiId
Write-Host "Using API Management instance '$ServiceName' in resource group '$ResourceGroup'"
Write-Host "Subscription key header 'x-api-key' was assigned"
Write-Host "Subscription key query parameter 'apiKey' was assigned"

User-defined values

PS> Set-AzApiManagementApiSubscriptionKey -ResourceGroupName $ResourceGroup -ServiceName $ServiceName -ApiId $ApiId -HeaderName "my-api-key" -QueryParamName "myApiKey"
Write-Host "Using API Management instance '$ServiceName' in resource group '$ResourceGroup'"
Write-Host "Subscription key header 'my-api-key' was assigned"
Write-Host "Subscription key query parameter 'myApiKey' was assigned"

Uploading private certificates to the Azure API Management certificate store

Uploads a private certificate to the Azure API Management certificate store, allowing authentication against backend services.

ParameterMandatoryDescription
ResourceGroupNameyesThe resource group containing the Azure API Management instance
ServiceNameyesThe name of the Azure API Management instance
CertificateFilePathyesThe full file path to the location of the private certificate
CertificatePasswordyesThe password for the private certificate

Example

PS> Upload-AzApiManagementCertificate -ResourceGroupName "my-resource-group" -ServiceName "my-api-management-instance' -CertificateFilePath "c:\temp\certificate.pfx" -CertificatePassword "P@ssw0rd"
# Using API Management instance 'my-api-management-instance' in resource group 'my-resource-group'
# Uploaded private certificate at 'c:\temp\certificate.pfx'