Overview
Make calls to many of our API with a consistent interface using our PowerShell module.
Before you begin
- Make sure your contract includes access to the service (EdgeWorkers, Cloudlets, etc.) you want to use.
- Install or update to the latest version of PowerShell. For best performance, use v7 or higher.
Install
Install the Akamai PowerShell module using the built-in package manager or by cloning our module's repository.
PowerShell Gallery
Install through the PowerShell Gallery.
-
Open a shell instance and install at the admin level or within the limit of your current permissions.
# Admin/all users Install-Module AkamaiPowershell # Current user's scope Install-Module AkamaiPowershell -Scope CurrentUser
-
Import our module.
Import-Module AkamaiPowershell
Your shell will throw a warning that our module includes unapproved verbs. This is because we've added in verbs specific to Akamai operations like
Activate
orPurge
that aren't in the PowerShell-approved verb list.You can safely ignore this warning.
Github clone
Install using a clone of the module's GitHub repository.
-
Open a shell instance, create or navigate to a preferred project directory, and clone the repository.
git clone https://github.com/akamai/akamaipowershell.git
This creates an
akamaipowershell
subdirectory. -
Import our module.
Import-Module ./akamaipowershell
If you are on Powershell 5.1, you also need to specify the module file directly.
Import-Module ./akamaipowershell/akamaipowershell.psm1
Your shell will throw a warning that our module includes unapproved verbs. This is because we've added in verbs specific to Akamai operations like
Activate
orPurge
that aren't in the PowerShell-approved verb list.You can safely ignore this warning.
Authenticate
Authentication credentials for the majority of our API use a hash-based message authentication code or HMAC-SHA-256 created through an API client. We recommend each member of your team use their own client set up locally to prevent accidental exposure of credentials.
If you're using the NetStorage Usage API, you also need an API key.
API clients
There are different types of API clients that grant access based on your need, role, or how many accounts you manage.
API client type | Description |
---|---|
Basic | Access to the first 99 API associated with your account without any specific configuration. Individual service read/write permissions are based on your role. |
Advanced | Configurable permissions to limit or narrow down scope of the API associated with your account. |
Managed | Configurable permissions that work for multiple accounts. |
Create a basic API client
-
Navigate to the Identity and Access Management section of Akamai Control Center and click Create API Client.
-
Click Quick and then Download in the Credentials section.
-
Open the downloaded file with a text editor and add
[default]
as a header above all text.[default] client_secret = C113nt53KR3TN6N90yVuAgICxIRwsObLi0E67/N8eRN= host = akab-h05tnam3wl42son7nktnlnnx-kbob3i3v.luna.akamaiapis.net access_token = akab-acc35t0k3nodujqunph3w7hzp7-gtm6ij client_token = akab-c113ntt0k3n4qtari252bfxxbsl-yvsdj
-
Save your credentials as an EdgeGrid resource file named
.edgerc
in your local home directory.// Linux $ /home/{username}/.edgerc // MacOS $ /Users/{username}/.edgerc // Windows C:\Users\{username}\.edgerc
If you choose to place your resource file in any other location or use a different heading:
- Add the
-EdgeRCFile
parameter and provide the path to its location,~/my.edgerc
to your commands. - Use the
-Section
parameter and provide a value.
All functions in our module support
EdgeRCFile
,Section
andAccountSwitchKey
parameters except the NetStorage Usage API commands. - Add the
Use environment variables
As an alternative to creating an .edgerc
file, you can use environment variables to hold your credentials. The following variables can be used by default:
AKAMAI_HOST
AKAMAI_CLIENT_TOKEN
AKAMAI_ACCESS_TOKEN
AKAMAI_CLIENT_SECRET
To switch between multiple sets of variables, insert the name of your credentials section between AKAMAI_
and the attribute and supply the -Section
parameter when calling your function. For example, this set of variables uses credentials named PAPI
.
AKAMAI_PAPI_HOST
AKAMAI_PAPI_CLIENT_TOKEN
AKAMAI_PAPI_ACCESS_TOKEN
AKAMAI_PAPI_CLIENT_SECRET
List-Groups -Section Papi
The environment variable names are in all caps and are case sensitive, but the
-Section
parameter value is not.
API keys
The NetStorage Usage API does not use an API client. To use the service, create or use an existing NetStorage upload account with HTTP API access and generate an API key.
-
Navigate to the NetStorage Upload Accounts section of Akamai Control Center and click Add Upload Account to add a new account and provide the needed information.
-
Choose the NetStorage HTTP CMS API tab from the Access Methods's content panel. Click Add HTTP API Key and then Yes to confirm. A valid API key is automatically generated and applied to your account.
-
Create an authentication file located at
~/.akamai-cli/.netstorage/auth
, and under a section heading of[default]
, add your API key and the:- ID of your upload account exactly as it appears in the UI
- Storage group name
- HTTP domain dame of the storage group
- Upload directory CP code
[default] key=ACC35sk3YT2ll1H4dXWx5itGhpc7FlSbvvOvky10 id=exampleuploadaccountid group=X112233 host=example.com cpcode= 1234567
If you choose to place your resource file in any other location or use a different heading:
- Add the
AuthFile
parameter to any NetStorage API command. - Use the
-Section
parameter and provide a value.
Use environment variables
As an alternative to creating an authentication file, you can use environment variables to hold your credentials. The following variables can be used by default:
NETSTORAGE_KEY
NETSTORAGE_ID
NETSTORAGE_HOST
NETSTORAGE_GROUP
NETSTORAGE_CPCODE
To switch between multiple sets of variables, insert the name of your credentials section between NETSTORAGE_
and the attribute and supply the -Section
parameter when calling your function. For example, this set of variables uses credentials named LOGS
.
NETSTORAGE_LOGS_KEY
NETSTORAGE_LOGS_ID
NETSTORAGE_LOGS_HOST
NETSTORAGE_LOGS_GROUP
NETSTORAGE_LOGS_CPCODE
Download-NetstorageFile -RemotePath /123456/log.txt -LocalPath log.txt -Section Logs
The environment variable names are in all caps and are case sensitive, but the
-Section
parameter value is not.
Account Switching
When managing multiple accounts using a managed API client, you need to associate your actions to a specific account with its switch key.
Your API client must have access to the Identity Management API to use these commands.
-
Find account keys with the
List-IDMAccountSwitchKeys
function.List-IDMAccountSwitchKeys -SearchString "My Account Name"
-
Use a switch key with the
-AccountSwitchKey
to apply your actions to the identified account.
Reference
Similar to typical online PowerShell module help, clicking on the reference button above will take you to a list of the help files for our module's commands.
Help is arranged alphabetically by service and in standard REST API CRUD order.
Updated 5 months ago