Azure API Management
#
InstallationTo have access to the following features, you have to import the module:
PS> Install-Module -Name Arcus.Scripting.ApiManagement
#
Backing up an API Management serviceBacks up an API Management service (with built-in storage context retrieval).
Parameter | Mandatory | Description |
---|---|---|
ResourceGroupName | yes | The name of the of resource group under which the API Management deployment exists. |
StorageAccountResourceGroupName | yes | The name of the resource group under which the storage account exists. |
StorageAccountName | yes | The name of the Storage account for which this cmdlet gets keys. |
ServiceName | yes | The name of the API Management deployment that this cmdlet backs up. |
ContainerName | yes | The name of the container of the blob for the backup. If the container does not exist, this cmdlet creates it. |
BlobName | no | The 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 . |
PassThru | no | Indicates that this cmdlet returns the backed up PsApiManagement object, if the operation succeeds. |
DefaultProfile | no | The 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"# New Azure storage context for storage account 'my-storage-account' with storage key created!# Azure API management service 'my-service' in resource group 'my-resource-group' is backed-up!
#
Creating a new API operation in the Azure API Management instanceCreate an operation on an existing API in Azure API Management.
Parameter | Mandatory | Description |
---|---|---|
ResourceGroupName | yes | The resource group containing the Azure API Management instance |
ServiceName | yes | The name of the Azure API Management instance located in Azure |
ApiId | yes | The ID to identify the API running in Azure API Management |
OperationId | yes | The ID to identify the to-be-created operation on the API |
Method | yes | The method of the to-be-created operation on the API |
UrlTemplate | yes | The URL-template, or endpoint-URL, of the to-be-created operation on the API |
OperationName | no | The optional descriptive name to give to the to-be-created operation on the API (default: OperationId ) |
Description | no | The optional explanation to describe the to-be-created operation on the API |
PolicyFilePath | no | The 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' was added on Azure API Management service '$ServiceName' in resource group '$ResourceGroupName'
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' was added on Azure API Management service '$ServiceName' in resource group '$ResourceGroupName'# Updated policy of the operation '$OperationId' in API '$ApiId' of the Azure API Management service '$ServiceName' in resource group '$ResourceGroupName'
#
Creating a new user in an Azure API Management serviceSign-up or invite a new user in an existing Azure API Management instance.
Parameter | Mandatory | Description |
---|---|---|
ResourceGroupName | yes | The resource group containing the Azure API Management instance |
ServiceName | yes | The name of the Azure API Management instance located in Azure |
FirstName | yes | The first name of the user that is to be created |
LastName | yes | The last name of the user that is to be created |
MailAddress | yes | The email address of the user that is to be created |
UserId | no | The UserId that will be used to create the user |
Password | no | The password that the user will be able to login with |
Note | no | A note that will be added to the user |
SendNotification | no | Wether or not a notification will be sent to the email address of the user |
ConfirmationType | no | The confirmation type that will be used when creating the user, this can be invite (default) or signup |
ApiVersion | no | The version of the management API to be used. (default: 2021-08-01 ) |
SubscriptionId | no | The Id of the subscription containing the Azure API Management instance. When not provided, it will be retrieved from the current context (Get-AzContext). |
AccessToken | no | The access token to be used to add the user to the Azure API Management instance. When not provided, it will be retrieved from the current context (Get-AzContext). |
Example
Invite a new user in an existing Azure API Management instance.
PS> Create-AzApiManagementUserAccount `-ResourceGroupName $ResourceGroup `-ServiceName $ServiceName `-FirstName $FirstName `-LastName $LastName `-MailAddress $MailAddress# Invitation has been sent to $FirstName $LastName ($mailAddress) for Azure API Management service '$ServiceName' in resource group '$ResourceGroupName'
Invite a new user in an existing Azure API Management instance and specify a UserId.
PS> Create-AzApiManagementUserAccount `-ResourceGroupName $ResourceGroup `-ServiceName $ServiceName `-FirstName $FirstName `-LastName $LastName `-MailAddress $MailAddress `-UserId $UserId# Invitation has been sent to $FirstName $LastName ($mailAddress) for Azure API Management service '$ServiceName' in resource group '$ResourceGroupName'
Invite a new user in an existing Azure API Management instance and include a note.
PS> Create-AzApiManagementUserAccount `-ResourceGroupName $ResourceGroup `-ServiceName $ServiceName `-FirstName $FirstName `-LastName $LastName `-MailAddress $MailAddress `-Note $Note# Invitation has been sent to $FirstName $LastName ($mailAddress) for Azure API Management service '$ServiceName' in resource group '$ResourceGroupName'
Invite a new user in an existing Azure API Management instance and send a notification.
PS> Create-AzApiManagementUserAccount `-ResourceGroupName $ResourceGroup `-ServiceName $ServiceName `-FirstName $FirstName `-LastName $LastName `-MailAddress $MailAddress `-SendNotification# Invitation has been sent to $FirstName $LastName ($mailAddress) for Azure API Management service '$ServiceName' in resource group '$ResourceGroupName'
Signup a new user in an existing Azure API Management instance.
PS> Create-AzApiManagementUserAccount `-ResourceGroupName $ResourceGroup `-ServiceName $ServiceName `-FirstName $FirstName `-LastName $LastName `-MailAddress $MailAddress `-ConfirmationType signup# Account has been created for $FirstName $LastName ($mailAddress) for Azure API Management service '$ServiceName' in resource group '$ResourceGroupName'# Since no password was provided, one has been generated. Please advise the user to change this password the first time logging in
Signup a new user in an existing Azure API Management instance and specify a password.
PS> Create-AzApiManagementUserAccount `-ResourceGroupName $ResourceGroup `-ServiceName $ServiceName `-FirstName $FirstName `-LastName $LastName `-MailAddress $MailAddress `-Password $Password `-ConfirmationType signup# Account has been created for $FirstName $LastName ($mailAddress) for Azure API Management service '$ServiceName' in resource group '$ResourceGroupName'
#
Removing a user from an Azure API Management serviceRemove a user from an existing Azure API Management instance based on e-mail address.
Parameter | Mandatory | Description |
---|---|---|
ResourceGroupName | yes | The resource group containing the Azure API Management instance |
ServiceName | yes | The name of the Azure API Management instance located in Azure |
MailAddress | yes | The email address of the user that is to be removed |
SubscriptionId | no | The Id of the subscription containing the Azure API Management instance. When not provided, it will be retrieved from the current context (Get-AzContext). |
AccessToken | no | The access token to be used to add the user to the Azure API Management instance. When not provided, it will be retrieved from the current context (Get-AzContext). |
Example
Remove a user from an existing Azure API Management instance.
PS> Remove-AzApiManagementUserAccount `-ResourceGroupName $ResourceGroup `-ServiceName $ServiceName `-MailAddress $MailAddress# Removed the user account with e-mail '$MailAddress' and ID '1' for the Azure API Management service '$ServiceName' in resource group '$ResourceGroupName'
#
Importing a policy to a product in the Azure API Management instanceImports a policy from a file to a product in Azure API Management.
Parameter | Mandatory | Description |
---|---|---|
ResourceGroupName | yes | The resource group containing the Azure API Management instance |
ServiceName | yes | The name of the Azure API Management instance located in Azure |
ProductId | yes | The ID to identify the product in Azure API Management |
PolicyFilePath | yes | The path to the file containing the to-be-imported policy |
PS> Import-AzApiManagementProductPolicy `-ResourceGroupName $ResourceGroup `-ServiceName $ServiceName `-ProductId $ProductId `-PolicyFilePath $PolicyFilePath# Successfully updated the product policy for the Azure API Management service $ServiceName in resource group $ResourceGroupName
#
Importing a policy to an API in the Azure API Management instanceImports a base-policy from a file to an API in Azure API Management.
Parameter | Mandatory | Description |
---|---|---|
ResourceGroupName | yes | The resource group containing the Azure API Management instance |
ServiceName | yes | The name of the Azure API Management instance located in Azure |
ApiId | yes | The ID to identify the API running in Azure API Management |
PolicyFilePath | yes | The path to the file containing the to-be-imported policy |
PS> Import-AzApiManagementApiPolicy `-ResourceGroupName $ResourceGroup `-ServiceName $ServiceName `-ApiId $ApiId `-PolicyFilePath $PolicyFilePath# Successfully updated API policy for the Azure API Management service '$ServiceName' in resource group '$ResourceGroupName'
#
Importing a policy to an operation in the Azure API Management instanceImports a policy from a file to an API operation in Azure API Management.
Parameter | Mandatory | Description |
---|---|---|
ResourceGroupName | yes | The resource group containing the Azure API Management instance |
ServiceName | yes | The name of the Azure API Management service located in Azure |
ApiId | yes | The ID to identify the API running in Azure API Management |
OperationId | yes | The ID to identify the operation for which to import the policy |
PolicyFilePath | yes | The path to the file containing the to-be-imported policy |
PS> Import-AzApiManagementOperationPolicy `-ResourceGroupName $ResourceGroup `-ServiceName $ServiceName `-ApiId $ApiId `-OperationId $OperationId `-PolicyFilePath $PolicyFilePath# USuccessfully updated the operation policy for the Azure API Management service $ServiceName in resource group $ResourceGroupName
#
Removing all Azure API Management defaults from the instanceRemove all default API's and products from the Azure API Management instance ('echo-api' API, 'starter' & 'unlimited' products), including the subscriptions.
Parameter | Mandatory | Description |
---|---|---|
ResourceGroupName | yes | The resource group containing the Azure API Management instance |
ServiceName | yes | The name of the Azure API Management instance located in Azure |
PS> Remove-AzApiManagementDefaults `-ResourceGroupName $ResourceGroup `-ServiceName $ServiceName# Removed 'echo' API in the Azure API Management service $ServiceName in resource group $ResourceGroupName# Removed 'starter' product in the Azure API Management service '$ServiceName' in resource group '$ResourceGroupName'# Removed 'unlimited' product in the Azure API Management service '$ServiceName' in resource group '$ResourceGroupName'
#
Restoring an API Management serviceThe Restore-AzApiManagement cmdlet restores an API Management Service from the specified backup residing in an Azure Storage blob.
Parameter | Mandatory | Description |
---|---|---|
ResourceGroupName | yes | The name of resource group under which API Management exists. |
StorageAccountResourceGroupName | yes | The name of the resource group that contains the Storage account. |
StorageAccountName | yes | The name of the Storage account for which this cmdlet gets keys. |
ServiceName | yes | The name of the API Management instance that will be restored with the backup. |
ContainerName | yes | The name of the Azure storage backup source container. |
BlobName | yes | The name of the Azure storage backup source blob. |
PassThru | no | Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output. |
DefaultProfile | no | The credentials, account, tenant, and subscription used for communication with azure. |
PS> Restore-AzApiManagementService `-ResourceGroupName $ResourceGroupName `-$StorageAccountResourceGroupName `-StorageAccountName $StorageAccountName `-ServiceName $ServiceName `-ContainerName $ContainerName `-BlobName $BlobName# Azure API Management service '$ServiceName' in resource group '$ResourceGroupName' is restored!
#
Setting authentication keys to an API in the Azure API Management instanceSets the subscription header/query parameter name to an API in Azure API Management.
Parameter | Mandatory | Description |
---|---|---|
ResourceGroupName | yes | The resource group containing the Azure API Management instance |
ServiceName | yes | The name of the Azure API Management instance located in Azure |
ApiId | yes | The ID to identify the API running in Azure API Management |
HeaderName | no | The name of the header where the subscription key should be set. (default: x-api-key ) |
QueryParamName | no | The 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# Using API Management instance '$ServiceName' in resource group '$ResourceGroup'# Subscription key header 'x-api-key' was assigned# 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"# Subscription key header 'my-api-key' was assigned for the Azure API Management service '$ServiceName' in resource group '$ResourceGroupName'# Subscription key query parameter 'myApiKey' was assigned for the Azure API Management service '$ServiceName' in resource group '$ResourceGroupName'
#
Uploading private certificates to the Azure API Management certificate storeUploads a private certificate to the Azure API Management certificate store, allowing authentication against backend services.
Parameter | Mandatory | Description |
---|---|---|
ResourceGroupName | yes | The resource group containing the Azure API Management instance |
ServiceName | yes | The name of the Azure API Management instance |
CertificateFilePath | yes | The full file path to the location of the private certificate |
CertificatePassword | yes | The 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"# Uploaded private certificate at 'C:\temp\certificate.pfx' for the Azure API Management service 'my-api-management-instance' in resource group 'my-resource-group'