こんにちは、ニフクラエンジニアの b:id:nifcloud-developers です。
まず皆さま、ニフクラ SDK をご存じでしょうか?
現在、ニフクラでは Python と Go の2言語に対応した、以下の2種類の SDK を提供しています。
この SDK を用いることで、一部のニフクラリソースに対してAPIの操作が可能です。
【ニフクラ 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 のご紹介
ニフクラ 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 を使ってみてください。