LoginSignup
0

PerlでAkamai Traffic Management APIを使用してAkamai GTMから値を取得してみた

Last updated at Posted at 2016-11-18

概要

AkamaiのGlobal Traffic Management(以下、GTM)からAkamaiのTraffic Management APIを使用して、設定値などを取得できるようにしてみました。PerlのCPANに"Akamai::Edgegrid"という便利なモジュールがあったので、そのモジュールを使用して、Akamai GTMにエントリーされているドメイン名に紐づく全てのIPアドレスを取得・表示させてみることにしました。

以下、実際にAkamai Traffic Management APIでIPアドレスを表示させるために作成したサンプルコード(Perl)です。

サンプルコード

atm_api.pl

atm_api.pl
#!/usr/bin/perl
# ------------------------------------------------------------------------------
# Script Name  : atm_api.pl
# Tool Version : 1.0.0
# Argument     : -
# Options      : -
# Usage        : $0
# Return       : -
# -------------+-------------------------------------------+--------------------
# Date         | Changes                                   | Author
# -------------+-------------------------------------------+--------------------
# 2017/09/07   | New Creation                              | @bloodia
# ------------------------------------------------------------------------------
# --+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8

use strict;
use warnings;
use Akamai::Edgegrid;
use JSON;

my $client_token  = 'クライアントトークン';
my $client_secret = '秘密鍵';
my $access_token  = 'アクセストークン';
my $baseuri       = 'ベースURI';
my $config_file   = "$ENV{HOME}/.edgerc"; # 変更不要
my $section       = 'default';            # 変更不要
my $domain        = 'ドメイン名';
my $property      = 'プロパティ名';

my $ua = new Akamai::Edgegrid(
  'client_token'  => $client_token,
  'client_secret' => $client_secret,
  'access_token'  => $access_token,
  'config_file'   => $config_file,
  'section'       => $section
);

my $response = $ua->get("${baseuri}/config-gtm/v1/domains/${domain}.akadns.net/properties/${property}");

my $data = decode_json($response->content);

foreach (@{$data->{'trafficTargets'}}) {
   my $i = 1;
   foreach (@{$_->{'servers'}}) {
     print "${i}つ目にエントリーされているIPアドレスは、${_}";
     print "\n";
     $i++;
   }
}

HTTPヘッダを自動生成してくれるのでとても便利です。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0