ニフクラ ブログ

ニフクラやクラウドの技術について、エンジニアが語るブログです。

ニフクラ SDK の ESS/DNS 機能の使い方

こんにちは、ニフクラエンジニアの b:id:nifcloud-developers です。

まず皆さま、ニフクラ SDK をご存じでしょうか?
現在、ニフクラでは Python と Go の2言語に対応した、以下の2種類の SDK を提供しています。
この SDK を用いることで、一部のニフクラリソースに対してAPIの操作が可能です。

※ご参考 クラウドとAPI・SDKの関係とは | ニフクラ

【ニフクラ SDK for Python】
・GitHub: https://github.com/nifcloud/nifcloud-sdk-python
・ドキュメント: https://nifcloud-sdk-python.readthedocs.io
・PyPI: https://pypi.python.org/pypi/nifcloud

【ニフクラ SDK for Go】
・GitHub: https://github.com/nifcloud/nifcloud-sdk-go
・ドキュメント: https://pkg.go.dev/github.com/nifcloud/nifcloud-sdk-go

今回は、2021年9月に「Developer Preview」から正式版にアップデートされたニフクラ SDK の主な追加機能である、「ESS」「DNS」に関して使い方をご紹介します。

※こちらの記事もご覧ください。
正式版ニフクラ SDK for Python とニフクラ CLI のご紹介

f:id:nifcloud-developers:20210928152532j:plain

ニフクラ ESS (メール配信)とは

ニフクラ ESS は、高い到達性と高速配信が特長の開発者のためのメール配信サービスです。
SMTPリレー/Web APIを用いてニフクラ上のシステムと容易に連携できるのはもちろん、効率的な配送制御が可能です。
API での各種操作ができるため、今回 SDK に対応しました。

詳しい仕様は、ESS(メール配信)の仕様ページ をご確認ください。

ニフクラ DNS とは

ニフクラのDNSは、お客様自身で構築・管理・運用できるDNSサーバーです。
DNSの基本的な機能に加え、GSLB(広域負荷分散)、ドメイン取得・管理などの機能を搭載しています。
こちらも API での各種操作ができるため、今回 SDK に対応しました。

詳しい仕様は、ニフクラ DNSの仕様ページ をご確認ください。

ニフクラ SDK for Python での使い方例

下記の例は、ESSでは「ListIdentities」という処理を実行し、お客様のアカウントに登録してある送信元ID(メールアドレスおよびドメイン)を返します。
DNSでは、「ListHostedZones」という処理を実行し、ゾーンの情報を一覧で取得します。

import pprint

from nifcloud import session

pp = pprint.PrettyPrinter(indent=4)

print("########## ESS ListIdentities の実行")
ess = session.get_session().create_client(
    "ess"
)
res = ess.list_identities()
pp.pprint(res)

print("########## DNS ListHostedZones の実行")
dns = session.get_session().create_client(
    "dns"
)
res = dns.list_hosted_zones()
pp.pprint(res)

ニフクラ SDK for Go での使い方例

こちも、ニフクラ SDK for Pythonの使い方例と同様の処理の実行例になります。

package main

import (
        "context"
        "fmt"
        "os"

        "github.com/nifcloud/nifcloud-sdk-go/nifcloud"
        "github.com/nifcloud/nifcloud-sdk-go/service/ess"
        "github.com/nifcloud/nifcloud-sdk-go/service/dns"
)

func main() {
        ctx := context.Background()
        cfg := nifcloud.NewConfig(
                os.Getenv("NIFCLOUD_ACCESS_KEY_ID"),
                os.Getenv("NIFCLOUD_SECRET_ACCESS_KEY"),
                "jp-east-1",
        )

        fmt.Println("########## ESS ListIdentities の実行")
        essResp, _ := ess.New(cfg).ListIdentitiesRequest(nil).Send(ctx)
        fmt.Println(essResp)

        fmt.Println("########## DNS ListHostedZones の実行")
        dnsResp, _ := dns.New(cfg).ListHostedZonesRequest(nil).Send(ctx)
        fmt.Println(dnsResp)
}

まとめ

今回は、アップデートでニフクラ SDK に追加された ESS / DNS 機能に関しての使い方を簡単にご紹介しました。

ニフクラ SDK では、ESS / DNS 機能以外にも数多くの機能をサポートしております。
ニフクラの操作をコードを用いて自動化してみたい方は、ぜひ一度ニフクラ SDK を使ってみてください。