2022年1月1日土曜日

2021年の振り返り

2021年をアウトプット(コミュニティ、コントリビューション、ブログ)で振り返ります。

コミュニティ

参加:70、うち、主催:6、登壇:12、講師:2

主カテゴリーは、Go、Microsoft/MVP/Azure、GCP、Flutter、地元、その他、です。

人に関しては、主に運営陣とか登壇でお世話になった方々などを登場させて頂いております。もちろん、普段からだったりイベントに参加して知り合った方々(@spiegel_2007さんや@saki_engineerさん、など)の山盛りいらっしゃいますので、その方々にも感謝有難う!

個人


Microsoft MVP


Microsoft MVPは、同社にて同社の製品やサービスにおけるコミュニティリーダーを認定する制度。Microsoft/Azure x Goの橋渡し役となるべく活動を行なったことで、Microsoft Azure カテゴリーにてMicrosoft MVPを受賞しました。(感謝有難う:@chomadoさん、@rie_moriguchiさん)

Microsoft


Igniteは、米国Microsoft社が主催する全世界規模の技術者向け年次フラッグシップイベントで、November 2021では、自身のコミュニティ活動がセッションテーマに一致、かつ、Microsoft MVP 受賞のタイミングが重なって、フレッシュで多彩なMicrosoft MVPの方々(@hi_rom_さん、@yzhumsさん、@yamad365さん、@osatoexcelさん、@ryomaru0825さん)と共に、唯一のJapanセッションに登壇させて頂くという大変貴重な機会と経験をさせて頂くことができました。(感謝有難う:@rie_moriguchiさん、@ms_odashoさん)

日本マイクロソフト株式会社


お昼休みにラジオ感覚で開催されている社内イベントにて、Goを紹介するという大変貴重な機会を頂くことができました。勢いとしては全世界のMicrosft従業員様向けにGoを知って頂くべく全力で発表させて頂きました。(感謝有難う:@ms_odashoさん)

Go


Gophers Japan

2021年にGo Conference Tokyo 運営チームが立ち上げた団体。Go ConferenceやGo Release Partyを主催。大都会岡山県民ながら私もコッソリと参加中。

「Go Conference 2021 Spring」では、開催日までは諸々の準備、当日はオンライン配信(トラックB)のサブ要員を担当。当日は登壇者でもあったので、なかなかハードでした。前夜祭と懇親会では@tenntennさんと共に司会進行役。あとはいつものTogetter要員。(運営チーム:@ymotongpooさん、@tenntennさん、@micchiebearさん、@sinmetalさん、@__syumaiさん、@mom0tomoさん、@mikiislv09さん、@mikkegtさん、@senoueさん、@budougumi061さん)

「Go Conference 2021 Autumn」は、Kyoto.go(@luccafortさん、@yebis0942さん、@uji_rbさん)とUmeda.go(hatajoeさん、@sago35tkさん、@decafe09さん)の運営チームの皆様が中心となって開催。私は何もお手伝いできず、当日のTogetter要員が精一杯でした。


Women Who Go Tokyo

@micchiebearさん、@mom0tomoさん、@mikiislv09さん、@mikkegtさんらが運営する女性やジェンダーマイノリティーの方々を対象とした世界規模のGoコミュニティ「Women Who Go」のTokyo支部。たまにヒューマンを対象としたもくもく会なども開催され、タイミングが合った時に参加。

Go Language Specification 輪読会

@__syumaiさん、@yyh_glさん、@shino_nobishiiさん、@DQNEOさんらが運営するGo公式サイトの言語仕様を読み進める会。私は途中で脱落しましたが、運営チームや参加者の方々と知り合えたのが大きいです。

「Go Language Specification輪読会」は、12/1(水)の第32回にて無事完走されました。

「入門Go言語仕様輪読会(初心者でも丁寧にサポート)」は、仕様書を読み進めて行く上で知っておいた方が良いと思われるキーワードを運営チームの方々が厳選&解説してくださったスピンオフイベント。毎回わかりやすい解説で助かりました。

プログラミング言語Go読書会

訳者の@yoshiki_shibataさんが運営する同書の読書会。私は皆勤賞とはなりませんでしたが、6/5(土)の第13回にて無事完走されました。柴田さんや参加者の方々と会話できたのは大きいです。現在は2サイクル目が開催中。

横浜Go読書会

横浜で@yoshiki_shibataさんらが運営するGoの書籍の読書会。第36回は約1年ぶりの開催で、柴田さんが日本語訳されたGo公式サイトの「The Go Memory Model」を読み進めました。

kyoto.go

京都で@luccafortさん、@yebis0942さん、@uji_rbさんら運営する地域Goコミュニティ。あけましてLT大会では、やっとこちらで登壇することができました。

Dounan.go


北海道で@tenntennさんが運営する地域Goコミュニティ。

    Fukuoka.go

    福岡で@monochromeganeさん、@linyowsさんらが運営する地域Goコミュニティ。三宅さんがお忙しくなり、本年はこの1回が最初で最後でした。

    golang.tokyo

    東京でGoを導入している企業の有志が運営するコミュニティ。

    Gopher道場

    @tenntennさんが運営するGo学習コミュニティ。末広がりの8期生として軽く登壇。

    GDG Shikoku

    @tam_xさん、@tatsuhama50さんらが運営するGoogle Developer GroupsのShikoku支部。@tyama99999さんが主催する「はじめてのGo言語」では、講師としてGo入門ハンズオンを実施。もくもく会は主催、わいわい会は共催させて頂きました。

    GDG Tokyo

    @satoshocoさんらが運営するGoogle Developer GroupsのTokyo支部。LT大会 2021では、Goのセッションがなかったため「これはいかん!」と登壇で申し込み。

    マネーフォワード

    Kyoto.goの@luccafortさんが所属するマネーフォワード社が運営するイベント。Reject Conでは、落選したプロポーザルとは別の内容で登壇。

    DMM.com

    Go Language Specification 輪読会の@yyh_glさんが所属するDMM社が運営するイベント。

    株式会社Showcase Gig


    Showcase Gig社が運営するイベント。


    Microsoft MVP


    Hack Everything.


    @kazuyukimiyakeさん、@dz_さんらが運営するTechイベント。毎回Azure技術を深堀り。Hackだけにコーディングやデモも多く、毎回興味深く視聴させて頂いています。

    devblogラジオ


    @yuiashikagaさんらが「Microsoft Developer Blogs」の内容などを元にフリートークされるイベント。テーマや時間帯が合う時に気軽に視聴させて頂いています。

    meetup app


    大阪で@hr_saoさんが運営するTechイベント。年1回のペースで開催。最近はMicrosoft技術が多め。今回は初オンラインということで佐保さんへのご挨拶も兼ねて初参加。


    Microsoft

    日本マイクロソフト株式会社


    日本マイクロソフト社が運営するイベント。Spring Fest 2021は、バーチャル空間で開催。著名人や芸能人の方なども出演され、テレビ番組を見ている感じでした。

    Microsoft Open Tech Night


    日本マイクロソフト社が運営するICTコミュニティ向けのイベント。Dapr勉強会では、Go製OSSの分散アプリケーションランタイム「Dapr」に出会うことができました。Ignite 秋祭り 2021では、同本編イベントでの体験を伝えるべく登壇。(感謝有難う:@szkn27さん、@tmak_twさん、@kazumihiroseさん)

    Azure Rock Star


    日本マイクロソフト社が運営するAzureコミュニティ向けのイベント。LT大会では試験「AI-900」の学習内容について登壇。

    Microsoft Learn Student Ambassadors


    Microsoft社が運営する学生向けコミュニティ。1周年記念は、社会人も参加できるイベントだったため初参加。(感謝有難う:@okazukiさん)


    Microsoft Azure

    JAZUG (Japan Azure User Group)


    @yuiashikagaさんらが運営するAzureユーザーグループ。Beginners Plusは、Azure初心者の私にはピッタリでしたので今後も開催されることを期待。

    札幌 Azure もくもく会


    @DarkCrash3さんらが運営する地域Azureコミュニティ。Azureイベントを求めて初参加。自己紹介でGoでAzureに挑んでいる話をした際に皆さんが大変驚かれていたのは良い思い出。


    Google Cloud Platform (GCP)

    GCPUG 女子会

    @myoshimuさん、@megumi_takahiraさんらが運営する女性を対象としたGCPユーザーグループの女子会。男性の参加O.K.の回もあり。第12回では、@mikiislv09さんにサポートを頂いて初のオンラインで「はじめてのGo言語教室」を開催。

    GCPUG Tokyo

    @sinmetalさんらが運営するGCPユーザーグループのTokyo支部。Cloud Runを知り得るために参加。


    Flutter


    Flutter Japan User Group


    有志らが運営するFlutterユーザーグループ。主にTokyoとOsakaが活動中。「Flutter Meetup Osaka」は、大阪で@camdekkaさん、@Luz_Networkさんらが運営するFlutterコミュニティ。最新のFlutter情報を知り得るために参加。

    地元

    オープンセミナー岡山

    岡山で実行委員会(@kakeru_213さん、@a_knowさん、@razonさん、@kazuhisa1976さん、@mako_wisさん、@zephiransasさん、@mao_instantlifeさん、@r_hayakasaさん、@triringさん、@LeGenD_BeaTさん、@kasoku_kskさん)が運営するソフトウェア技術をテーマにした無料セミナー。県下最大級のICTイベントのひとつ。これまでは視聴する側でしたが、@kakeru_213さんにお声がけを頂き、2021で、ついに登壇させて頂くことに。(感謝有難う:@kakenaviさん、@sayuritokirinsaさん、@tamagawaconanさん、@patorashさん、@ici_miciさん)

    合同勉強会 in 大都会岡山

    岡山で@razonさんらが運営する岡山県周辺のICTコミュニティによる合同勉強会。県下最大級のICTイベントのひとつ。これまではWinterで登壇していましたが、初めてSummerでの登壇に挑戦。


    その他


    EngineerCafe

    以前、岡山で開催した「はじめてのGo言語教室」に福岡から参加されていた@ebiflyyyyyyyyさんからお声がけを頂き、福岡の「EngineerCafe」にてオンライン登壇することに。これを皮切りに2021年は自身のICTコミュニティ活動について発表する機会が増加。

    Qiita

    Qiita社が主催するイベント。パネルディスカッションに@mattn_jpさんが、スポンサーセッションに@chomadoさんが登場するということで参加。後発で台頭している同種サービス「Zenn」に対するQiita社の対応についても気になった会。


    コントリビューション


    プルリクエスト:13、イシュー:2、自プロジェクト:3

    Go系


    golang/go


    Microsoft系


    Azure/azure-sdk-for-go

    dapr/cli

    dapr/docs

    dotnet/docs


    a-know/pi

    コミュニティ


    osokayama/osokayama.github.io

    WomenWhoGoTokyo/webpage


    qt-luigi/go-quic-sample

    qt-luigi/jsonclient

    qt-luigi/connpassSearcher


    記事:7

    Qiita

    2020年12月29日火曜日

    2020年の振り返り「Go編」

    私が2020年に参加したGoのイベント活動について振り返ります。
    参加イベントは28個で、うち5個を主催、2つを講師、4個で登壇させて頂きました。

    GDG Shikoku

    香川県にて、GDG Shikokuさんの協力で有志にて開催されているGoイベント。
    私はいずれもテーマではなく「はじめてのGo言語教室」を担当しました。

    Go Release Party

    日本にて、毎年2月と8月のGoリリース月に開催されるGoイベント。
    今年は、両方の「What's new Go 1.1x?」を担当させて頂きました。
    後日、参加されていた方から「発表よかったです」とのお言葉を聞けて、嬉しかったです!

            発表資料:What's new Go 1.14?

            発表資料:What's new Go 1.15?
            発表資料:Go articles from Google Open Source Blog at August 27, 2020

    Go Conference

    年に1,2回開催される日本最大級のGoイベント。
    Sendaiの有志にて、夏から秋への開催時期の変更を乗り越えて開催して頂けました。
    現地集合とオンライン配信のハイブリッド開催だったため、今回も無事に参加できました。

    Goコミュニティ

    日本各地で有志にて開催されているGoコミュニティ。
    オンライン開催のおかげでSendai、Fukuoka、Shizuoka、Umedaに参加できました。
    この他にもKyotoが月一回のペースでオンライン開催されています。

            発表資料:Goでイケる!Azureサービスの紹介

            発表資料:Goをやり直そう!

    Women Who Go Tokyo

    東京にて、女性とジェンダーマイノリティの方々を対象に開催しているGoコミュニティ。
    たまにヒューマンを対象にオンラインで開催されるため、その際に参加しています。

    『プログラミング言語Go』オンライン読書会

    訳者の柴田さんが休日にオンラインで開催されている読書会。
    各自が1ページほど音読した後、必要に応じて柴田さんが解説をしてくださります。
    放課後の柴田さんと参加者の皆さんとのフリートークは貴重&充実の時間となっています。

    Go Language Specification輪読会

    有志が主催する、Go公式サイトの仕様書を音読&日本語訳して読み進めるGoイベント。
    平日の夜の開催ですが、年末になって仕事が落ち着いたことで参加できるようになりました。
    主催者の方々が仲良し&バリバリGopherさん達なので、安心して参加させて頂いています。

    メルカリ/Mercari

    有志社員が開催しているGoイベント。
    平日の日中にも、多くのGoイベントを開催しています(私は時間的に参加不可能)
    Go Fridayは毎週金曜日に社内で開催されているGoイベントで、Open付きの時は社外からも参加できます。

    tenntennさん主催

    GDE/Goのtenntennさんが開催されるGoイベント。
    Gopher道場は、募集対象が一致して休日にオンラインで開催ということで参加できました。

    Amigurumi Gopher's

    有志によるGopherのあみぐるみを編むイベント。
    私は編めないため、ガヤ要員として参加させて頂きました。
    参加者の皆さんは、お話ししながらも着実に編み上げて行かれていました。

    その他

    2020年の振り返り「Azure編」

    私が2020年に参加したAzureのイベント活動について振り返ります。
    参加イベントは12個で、うち4個で登壇させて頂きました。

    de:code夏まつり

    マイクロソフト主催の「de:code 2020」をコミュニティから盛り上げるためのイベント。
    当初、計3回の開催の予定でしたが、その盛り上がりによってthe FINALが追加で開催に。
    マイクロソフトのコミュニティにデビューさせて頂いた、私にとって大切な今夏の思い出です。

            発表資料:AzureとSDKとGoと私

            発表資料:I am gaining the skills I want!

    Hack Azure!

    ZEN ARCHITECTS社のHACK EVERYTHING.チームが主催の、Azureを深堀りするイベント。
    深すぎて全然わからないながらも、Azureを知るために参加させて頂いています。

    Azure Rock Star

    日本でのAzureコミュニティを繋ぐためのマイクロソフト公式プログラム。
    Azureおよび周辺の情報を収集をメインに、参加させて頂いています。

    Japan Azure User Group (JAZUG)

    今年で10周年を迎える、有志が主催するAzureのユーザー会。
    オンライン開催のおかげで、地方からも登壇させて頂くことが出来ています。

            発表資料:Join Azure Using Go (10 items)

            発表資料:私のExam AZ-900: Microsoft Azure Fundamentals学習記

    Japan Microsoft Learn User Group

    有志が主催する公式eラーニング「Microsoft Learn」のユーザー会。
    Learnを通じてAzureを学ぶための学習機会として、参加させて頂いています。

    Azure Tech Lab

    関西からクラウド業界を盛り上げる目的で立ち上がったAzureコミュニティ。
    第8回はAzureの入門セッションが多かったため、参加させて頂きました。

    その他

    2020年の振り返り「Go/Azure以外編」

    私が2020年に参加したGo/Azure以外のイベント活動について振り返ります。
    参加イベントは8個で、うち5個で登壇させて頂きました。

    GDG Shikoku

    四国地方で活動しているGoogle Developer Group (GDG) コミュニティ。
    Angularは、仕事で使う可能性が少しあったので事前学習のために参加させて頂きました。Firebaseは、Flutterをやり進めると絡むだろうと事前学習のために参加させて頂きました。

    GDG Devfest

    年1回、Google Developer Group (GDG) コミュニティが主催するイベント。
    今年はGDG Tokyoさんが主体となってオンラインで2日間、開催されました。
    Goのセッションも通常とLTでそれぞれ2つずつあったので、ひと安心。

            発表資料:日本のGoコミュニティ活動状況 [2020年10月版]

    Flutter Osaka

    有志によりOsakaで活動しているFlutterコミュニティ。
    Meetupでは、オンライン開催のおかげで関東の方々のお話しも聞けてよかったです。

            発表資料:Introduce Flutter Japan activities
            発表資料:Install Android Virtual Device to macOS on command line interface

    Android Bazaar and Conference

    日本Androidの会が年2回ペースで開催するAndroidイベント。
    今回は、香川県の現地会場とオンライン配信のハイブリッド開催。
    イベント名にDiverse(多様性)が付き、「ワーケーション」をテーマに開催されました。

            発表資料:今こそ始めようGoケーション

    地元「岡山」のイベント

    Rails勉強会では、「はじめてのGo言語教室」のWebアプリ編を考える際にRailsチュートリアルに取り組んだ内容で発表させて頂きました。
    毎年年末に開催される合同勉強会では、2020年の自分のAzure/Go活動の集大成と位置付けて発表させて頂きました。

            発表資料:"Railsをはじめよう"を真似てみた

            発表資料:Microsoft AzureのGo紹介

    2020年11月7日土曜日

    「[Windows] そのexeがx64かx86かを見分ける方法 Part2」をmacOSのGoで確認

    何気に遥佐保さんのブログ記事「[Windows] そのexeがx64かx86かを見分ける方法 Part2」をGoで確認してみました。

    Goはクロスコンパイルができますからね。ブログ記事投稿のツイートから20分ほどで確認できました。

    1.x64(amd64)用とx32(386)用のGoのソースコードを書く。(違いは出力メッセージのみ)

    $ cat main64.go 

    package main

    import (

    "fmt"

    )

    func main() {

    fmt.Println("GOOS=windows GOARCH=amd64")

    }

    $ cat main32.go 

    package main

    import (

    "fmt"

    )

    func main() {

    fmt.Println("GOOS=windows GOARCH=386")

    }

    2.macOS上でGoのソースコードをx64(amd64)とx32(386)でコンパイル。

    $ GOOS=windows GOARCH=amd64 go build -o main64.exe main64.go 

    $ GOOS=windows GOARCH=386 go build -o main32.exe main32.go

    3.ファイルの生成を確認。

    $ ls main*

    main32.exe main32.go  main64.exe main64.go

    4.fileコマンドで確認。

    $ file main32.exe 

    main32.exe: PE32 executable (console) Intel 80386 (stripped to external PDB), for MS Windows

    $ file main64.exe

    main64.exe: PE32+ executable (console) x86-64 (stripped to external PDB), for MS Windows

    やったね!q@w@p

    2020年11月4日水曜日

    Microsoft AzureのGo紹介

    2020年11月3日(火)にオンラインで「合同勉強会 in 大都会岡山 -2020 Winter Online-」が開催されました。今回は初のオンライン開催でしたが、バラエティ豊かなセッションが揃った、これまで通りの雰囲気だったので安心しました。

    2020年、これまでの「Azure SDK for Go」の学習の過程で知り得たMicrosoft Azureな情報のお裾分けと、裏テーマとしてお世話になった方々への恩返しとして、「Microsoft AzureのGo紹介」にて発表させて頂きました。

    直前まで何回リハをしても予定の20分を超えてしまいどうなるかと心配していましたが、いざ本番、ほぼ時間通りに終われたということで、ひと安心。

    現時点での日本のMicrosoft、Azure、コミュニティの情報と、今回は少しとなってしまった関連するGoの情報を紹介しています。あなたの知らないAzureがあるかも!?

    2020年10月4日日曜日

    Join Azure Using Go 〜GoでAzureを始めたい&知りたい方々へ〜

    2020年9月30日(水)にオンラインで「★祝★Japan Azure User Group 10周年」が開催されました。3年前の7周年の時にLTでチャレンジしたのですが失敗しており、また、Azure SDK for Goの学習を始めた今年が記念の10周年にあたるのも何かのGo縁だと思い、再度、祝辞(LT)枠にて申し込みさせて頂きました。

    今回は事前に動画を投稿し、公開された物から順に各自で閲覧するという、私も初めて体験する形式でした。

    今夏の私の「Microsoft/Azure x Go」活動の集大成として、力一杯作成したところ少々長めの動画となってしまいました。ダメ元で JAZUG のコミュニティリーダーの方々に相談させて頂いたところO.K.を頂くことができ、5分枠に対して21分の動画を採用して頂くことができました m(_ _)m

    現時点でのAzureサービスでのGoの使われ処やGoで使えるAzureサービスを目一杯紹介しています。これからGoでAzureを始めたい方や知りたい方などは、ぜひ一度みて頂けれたら!

    P.S. 18ページ目の「Web App for Contsainers」の補足:先日、Windowsコンテナーも一般提供(GA)になりました。

    2020年8月16日日曜日

    Azure SDKsのGo Guidelines(現在ドラフト版)を日本語訳

    Azure SDKに関するサイトとして「Azure SDKs」があります。

    画面右上の「ハンバーガーメニュー」から「Guidelines」-「Go (Draft)」を選択するとGoのページである「Go Guidelines」にアクセスできます。ちなみに「Go Guidelines」は現在ドラフト版です。

    また、本サイトのドキュメントはGitHubに「Azure/azure-sdk」として存在しており「Go Guidelines」のドキュメントである「Azure/azure-sdk/docs/golang」を今回もGoogle翻訳ベースで日本語訳しました。

    主要コンテンツは3つです。

    見栄えについては、GitHub形式だと少し見辛いのでAzure SDKs形式に変更しようかとも考えています。表が崩れていたりとかもあるので、ちょいちょい修正して行きます。

    日本語訳した理由は、Azure SDKのサイトであり「Azure SDK for Go」を見ていくのに読んでおいた方が良いかと思い、同じ読むなら日本語訳しておけば後の人のお役にも立てるかと。Azure SDK for Goの中の人がcommitした形跡もあるので信頼性も大丈夫です。

    内容的には、Azure SDK for Goを「提供する側の心得」という感じでした。RESTful API クライアントを作成する方とかにはオススメかと。作り手側の目線を知れたことで、ソースコードを読み進めていく際に着眼点がブレないなど収穫は大きいと思います。

    2020年8月10日月曜日

    私の「de:code夏まつり the FINAL」

    前回の「de:code夏まつり #3」から、ちょうど1ヶ月後。

    2020年8月8日(土)にオンラインで開催された「de:code夏まつり ~よりコミュニティを楽しくするためのコミュニティのすすめ the FINAL」にて、タイトル「I am gaining the skills I want! 〜What inspired me to take one step for being a "Go MVP" through de:code and summer festival〜」で発表をさせて頂きました。

    内容は、私が拝見した「de:code 2020」のセッションの内容、感想、Go情報などを紹介しています。

    以下、自分目線ながらそこに至るまでの経緯を記録として。

    「de:code夏まつり the FINAL」への参加

    2020年7月30日(木)の昼休みに「de:code夏まつり the FINAL」が土曜日開催であることに気付き、だったら参加しようかなぁと思い立ちました。

    今回はLT公募ということで集まり具合をみてみると、募集人数16名に対して6名とちょい少なめ。くしくも今日が募集締め切り日だったので、主催者のおだしょーさんに「募集締め切り日を2020年8月2日(日)までに延長できないか?」問い合わせてみました。

    なぜ2020年8月2日(日)までかというと、今回の発表条件が「de:code 2020で学んだことを共有する」のため、土日があればセッションを見る時間がとれて新たにLT申し込みする人が増えるのでは?と考えたからです。

    これは自分のためにも、という部分も含まれていました。参加ではなくLT登壇で申し込んで少しでもお助けできないかと思ったからであり、その時、私はまだ「de:code 2020」のセッションを1本も見れていませんでした!(@o@)

    その後、おだしょーさんのお力添えで、まずはLT登壇の申し込みを行い、発表内容は後日再提出することで調整して頂くことができました。

    発表資料の作成

    2020年7月31日、8月1日とで「de:code 2020」のセッションを見て行ったのですが、当初109ものセッションのどれを見ていけばよいのかと途方に...。

    「自分が普通に見るなら」と立ち返り、次の視点に絞ることにしました。

    • GoでMVP アワードを受賞するにはAzureカテゴリーのため、Azureに関するもの。
    • あとは、知っている人や知り合いの方のもの。

    発表内容としては「やはりGoは絡めたい!q@w@p」ということで、それぞれのセッションのテーマに何とかGo情報を絡めることで、発表資料を作成して行きました。

    発表タイトル

    発表資料のタイトルをどうしようかと悩みましたが、今回お世話になったおだしょーさんのセッションからお借りすることに。

    実際にセッションを見てみるとコミュニティに関する内容でしたし、まさに今回私もLT登壇でお助けできれば!と思ったので、アンサーソングならぬアンサープレゼンとさせて頂きました。(お兄さん、イヤでも受け取って頂きます!w)

    発表タイトルの副題

    発表タイトルと概要を事務局に提出後、返ってきたメールはRieさんからでした。

    RieさんはMVP Managerさんであり、その時の副題はGo MVPを目指す旨の英語の一文だったため、意味合いが違っていてはいかーん!と思い、確認させて頂きました。

    その時にReiさんの方から、こちらの方がより意味合い的に良いのでは?と、今回の一文を提案して頂き、「確かに」と思い、授からせて頂きました。

    ちなみに意味合い的に気になったのは「MVPになるための」を表現するための「becoming」と「being」でした。結果はどちらでも。(ネットをみるとbecomingは未来を表すものには使えない、とも。)

    リハーサル

    今回は2回目のリハーサルである当日2020年8月8日(土)の午前中に参加しました。

    Teamsには新しいつよつよ登壇者の皆さんの顔ぶれが並び、ちょい緊張。Rieさん、ちょまどさん、少し遅れて登場のおだしょーさん、と前回お世話になった方々の顔ぶれを見て、ひと安心。リハが始まってから配信担当のタダさんの声も聞けて、ふた安心。

    今回もつよつよな方々が集った様で順調に確認作業が進みました。

    ちなみに今回のリハで一番嬉しかったのは「岩田プロ、髪切った?」でした(乙女かよっ!w)

    いざ本番

    2020年8月8日(土)の13:00から「de:code夏まつり the FINAL」がスタート!

    前回はトップバッター&テンパリ気味だったり、初めて聞く技術名ばかりだったので、自分が発表した後の話はあまり理解できていなかったのですが(^^;)、今回は後半の2人目だったため、皆さんの発表も余裕を持って拝見することが出来ました。

    お楽しみ企画では、非マイクロソフト系コミュニティ&地方コミュニティの人という立ち位置からコメントする様に心掛けてみたのですが、空回りしていたらスミマセン。

    その後、嬉しいことに八重樫さんがAzure SDK for Goで作成したGo製自作ツールについて発表してくださりました。ガチめな内容での発表は一つの目安となり、Goということで心強かったですし、ありがたかったです!q@w@p ナカーマ

    私の発表は、今回も早口で送らせて頂くことになり、申し訳なく。 自分で何回かリハしたのですが12分の壁を越えらなかったので、もし長引いていましたらスミマセン。全部お伝えしたかったのですよぉ!

    登壇者の皆さまの発表ですが、資料も内容もしっかりされており、ネタもキッチリ消化され、やはりつよつよでしたね!今回も良い刺激を頂けました。

    さいごに

    de:code夏まつり、ホントまさか二回連続で参加&登壇とは...です。

    私にとっての「トリオ DE de:code夏まつり」である、おだしょーさん、Rieさん、ちょまどさん、山盛りお世話になりました&ありがとうございました!

    引き続き、まったりよろしくお願い致します。

    AzureでWebアプリを稼働させる「App Service」とGo

    Azureには、Webアプリを稼働させるPaaSとして「App Service」が用意されています。

    通常は、WebアプリをWindows上でネイティブに稼働させる「App Service(App Service on Windows)」となります。

    WebアプリをDocker化してLinuxコンテナーとして稼働させる「Web App for Containers(App Service on Linux)」も用意されています。

    当初、Goは「App Service」にて実験サポートされていたのですが、2017年12月に対象外となりました(T_T)

    そのため、現在Goで作成したWebアプリは「Web App for Containers」で稼働させることになっています。

    これでDockerを学ぶ理由ができたので、よしとしま、しょうか、ねぇ...q@w@p

    Gopher道場#8に入門してきました

     2020年7月5,11,18,25(x2),27,30日に開催された「Gopher道場#8」に参加しました。

    今回はこれまでと違ってオンライン開催&土日開催ということで、残業が多いサラリーマンな私でも遠方の岡山から参加することが出来ました。

    今回は「末広がりの8期生」である同期Gopherが13名も集い、slackやslide上ながら、それぞれのGoな活動を垣間見ることができて、良い刺激を受けることができました。

    内容的には、Goの文法解説が中心ですが、周辺情報や最新情報などもしっかりと交えて説明されていたの安心して受講できました。

    個人的には、主催者&講師であるtenntennさんの言葉で話を聞けたり質問できたりするのがGopher道場の一番の「旨味」だと思いました。

    2020年7月31日(金)にはオンラインで卒業式LT大会が開催されました。

    私もLT発表をさせて頂いたりして、同期全員が無事に卒業できたと信じています!

      今回のオンライン配信動画ですが、なんと「自習室」として公開されました!q@w@p

      これからGoを学びたい方は、個人でまったり、みんなとワイワイ、しっかり活用して頂けれたら私も嬉しいですし、熟練Gopherの方にも学びがあったりしますので、復習がてら見てみるのも良いかと!


      2020年7月13日月曜日

      私の「de:code夏まつり #3」[完全版]

      2020年7月8日(水)にオンラインで開催された「de:code夏まつり ~よりコミュニティを楽しくするためのコミュニティのすすめ #3」にて、タイトル「AzureとSDKとGoと私」で発表をさせて頂きました。


      以下、自分目線ながらそこに至るまでの経緯を記録として。

      de:code 2020

      今年もマイクロソフト主催のITエンジニア向け技術カンファレンス「de:code 2020」が開催されました。しかしながら世界的なコロナウィルスの流行により今年はデジタルイベントとして6月17日(水)から7月17日(金)までの1ヶ月間のオンライン開催となりました。

      de:code夏まつり

      日本では、コミュニティサイドから「de:code 2020」を盛り上げたり楽しんだりしようとMicrosoft Open Tech Night主催でコミュニティイベント「de:code夏まつり」が6月に2回、7月に1回開催されました。

      なぜ私が発表することになったのか?

      2020年6月24日(水)に第2回の「de:code夏まつり」が開催されました。

      その中で「MS Techクイズまつり」があり、第5問で「Azure Functions(3.x系のランタイム)でサポートされていない言語はどれ?」という問題が出題され、その答えは「Go」でした。

      私的には「おぉ、マイクロソフトさんのイベントで"Go"の二文字が!」と喜んだのも束の間、Goがサポートされていないことへの悔しさが湧き上がりました。


      2014年にサティア ナデラ氏がマイクロソフトCEOに就任して以降、マイクロソフトのOSSへの貢献や対応には目を見張るものがあり、Goに関してもAzureでの対応が多くなりました。

      • Azure App Service:GoでのWebアプリ作成
      • Azure SDK:Goのサポート
      • Azure Kubernetes Service:Go製OSSの採用(Docker、Kubernetes、など)

      しかしながら、他のプログラミング言語と比べて「対応サービスの少なさ」「正式リリースまでの長さ」「公式サイトへ掲載されるまでの遅さ」など、Goには出遅れ感があります。

      原因のひとつとが「Goの開発者」および「Goで使うユーザー」が少ないという現実です。

      私は「マイクロソフトにはGoもしっかりサポートして欲しい!」と願っており、マイクロソフトとGoの繋がりをもっと知ってもらおうとツイートしたり発表したりしていました。

      2018年からは、その思いは大きくなり、できるものなら「de:code」でGoを発表したい!と思うようになりました。2020年も「MS Techクイズまつり」のAzure FunctionsでのGoの未サポートを見て思わず「やはりde:codeでGoを発表したい!」とツイートしました。

      その日の夜遅く、タマコナさん(@tamagawaconan)と「de:codeでの発表、出来るものなら」「口にしたことは、実現しますよ。」と話をしていました。


      その直後、突然ちょまど(@chomado)さんから「de:code夏まつりでAzure SDK for Goについて発表できませんか?」とのお声掛けを頂きました。


      この時は「会話をしていたすぐ後に」「ちょまどさんから」「de:code関連イベントで発表」という予想だにしなかった流れが一気に押し寄せて、何が何だかで驚きまくり動揺しまくり。


      私はちょまどさんをフォローしていませんでしたが「こんな奇跡は二度と来ない!」と神速でフォロー&快諾して「de:codeでの発表」へ導いて頂くことになりました。

       
      私とAzure SDK for Go

      マイクロソフトの有識者を認定する制度「MVP アワード」において、唯一Goが絡める部分ということもあり、Azure SDK for Goは2016年のv8のころからウォッチしていました。

      2020年に入って本格的にやって行こうと、ブログやQiitaに記事を投稿したり、ツイートしたり、GitHubでドキュメントを日本語化したりコントリビュートしたりしています。

       
      発表スライドの作成

      イベントにはITエンジニア以外の方々も多く参加されるため、Azure SDK for Goはニッチ過ぎると考え、Goの紹介やAzureやSDKや私のことを交えて、お伝えしたいことをまとめることにしました。

      発表時間は10分ということで、スライド作成後に何度かリハーサルを行なったのですが、12分の壁が超えられませんでした。発表スライドは後から公開して見て頂くことが出来るため、内容の削除は行わず、当日は少し早口で詳細な部分を読み飛ばして進めることにしました。


      2日間のリハーサル

      2020年7月6日(月)、7日(火)の2日間、オンラインにて全体リハーサルが行われました。

      1日目は、主に各発表者のスライドや音声の確認、YouTube Live画面の調整などが行われました。今回はMicrosoft Teamsを使っての接続で、私は使うのが初めてでしたので、そちらの操作の確認なども行いました。

      テキストで少しやりとりをしていたちょまどさんを含めて、皆さまと顔合わせをするのは初めてで、画面越しに見ても皆さんの「つよつよさ」が伝わってきました。緊張しつつも会話できるところでは声を出したり笑ったりするなどして、少しでも早く馴染めるように心がけました。


      確認事項は1日目で完了していたのですが、新参者のことを少しでも見知りしておいて頂けた方が良いかと思い、2日目も参加しました。2日目は「MS Techクイズ」のテスト運用も行われ、準備や技術や担当者の方々のすごさを垣間見れました。


      進行役のおだしょー(@MS_odasho)さんからは、顔見知りの皆さんと分け隔てなく話かけて頂き、スムーズに会話をしたり確認事項をこなす事ができました。

      天の声役(?)のRie(@Rie_Moriguchi)さんには、内輪のハッシュタグ(?)の存在が知られていてビックリしました。


      Tadaさんチームの皆さま、配信の準備、調整、対応、お疲れ様でした!m(__)m

      いざ、開催!

      2020年7月8日(水)、ついに開催日となりました。

      雰囲気作りの意味合いも含めて、関係者は開始1時間前に集合しました。

      この時、おだしょーさんによるSpecial GuestのAI「りんな」の紹介テストが行われたのですが、ギリギリまで音声を出せずに焦りまくっていたおだしょーさんを皆さんでフォローすることで、リラックスできたり一体感が生まれたような気がしました。

      オープニングでは、そんな「りんな」の音声出力に失敗するも、二度目に成功。


      続いての「MS Techクイズ」では150人以上の方々が同時参加されて、ワイワイとお祭り気分が味わえました。

       
      いざ、発表!

      マイクロソフトな皆様にGoを知って使ってサポートして頂きたく、日本のGopherを代表する勢いで挑ませて頂きました。



      元々発表スライドのボリュームがあったのと、私が発表する時点で時間が押していたため、拍車のかかった早口になってしまったことはGo了承ください。多少なりとも緊張していたのも理由のひとつかも。


      発表後にJourneyman(@beajourneyman)さんがまとめられたTogetterにて自分の発表について確認させて頂きました。


      個別で前向きなツイートを頂いたり、概ね良い方向に捉えて頂けたようで、ツイートして頂いた皆さま、ありがとうGoざいます!q@w@p



      日本マイクロソフト公式TwitterのひとつであるMicrosoft Tech(@msdevjp)さんに「Go」をツイートして頂いたことは「Microsoft x Go」の大切な一歩を踏み出せた大事な証となりました。


      皆さんの発表

      改めて発表者の皆さんを見てみますと、MVPの方、コミュニティの関係者、社長さんなど「つよつよ」で「すごすご」の方々ばかり。お目当ての発表を見られた皆さんは、きっとご満足されたことでしょう!

       
      クロージング

      発表公募の第4回の開催告知のサプライズに、おだしょーさんの「じゃあな!」にはコミュニティ愛を感じました。

       
      初夏の夜の夢...

      携わってくださった皆さま、感謝ありがとう!引き続き、マイクロソフトにGoをサポートして頂くべく、Azure SDK for Goを中心にまったりと活動して参ります。

      サンキューコミュニティ!フォーエバーコミュニティ!q@w@p

      P.S. 個人的には、ちょまどさんから面と向かって「岩田プロ」と呼ばれる日が来るとは夢にも思っていませんでしたね...q@w@p その後、皆さんからも呼んで頂けました。

      2020年7月10日金曜日

      Azure Functions for Goの歴史

      Azure Functionsは、関数単位で処理を実行するAzureサービスです。


      2020年6月現在、Azure Functionsは

      • C#, JavaScript, F#, Java, PowerShell, Python, TypeScript

      を正式サポートしていますが、残念ながらココにGoはありません。


      Azure/azure-sdk-for-goにAzure Functions for Goに関するイシューがあります。


      このイシューを読み進めると、Azure Functions for Goの歴史を垣間見ることができます。

      2017年12月、当初、Private Preview版への招待が開始されました。


      2018年頃は、開発が停滞したり再開したりしました。

      2019年10月、開発担当者がマイクロソフト社を辞められていました。

      2019年12月、別の実装方法が模索されることになりました。

      2020年5月、その答えが「Azure Functions custom handlers」でした。


      私もリアルタイムにその流れを目撃していたのですが、azure.microsoft.comに一瞬ブログ記事が掲載されたのですが、すぐに取り消されてしまいました。

      現在「Azure Functions custom handlers」はPublic Previewであり、正式リリースされた暁には、公式サイトにも再度アナウンス記事が掲載されることでしょう。

      Goなサンプル

      2020年6月13日土曜日

      GitHubのAzure/go-autorestのREADME(v14.1.1)を日本語訳

      今後の理解のために、GitHubのAzure/go-autorestのREADME(v14.1.1)を日本語訳しました。


      go-autorestは、GoでAzureへアクセスする際の認証や、Goの基本型を変換するヘルパーを利用する際になどに使用します。

      2020年6月7日日曜日

      Azure SDK for GoのGitHubのREADMEの日本語訳をv43.0.0に最新化

      Azure SDK for GoのGitHubのREADMEを日本語訳していたものを2020年6月2日にリリースされたv43.0.0の内容で最新化しました。


      初回の v8.0.1-beta 以来、今回で2回目の更新です。

      この活動には元ネタがあって、以前 @ayatokura さんがVSCodeがリリースされる都度、リリースノートの日本語訳をGitHubに公開されていたのを見て「これはよいかも!」と私も始めてみたものです。

      今回更新した理由は、次の通りです。

      • 私自身がこれからAzure SDK for Goを触り始めるため、最新の内容を知っておきたかった。
      • Google検索にて「Azure SDK for Go」で検索すると上位に表示され、情報が古いままだとダメだと思ったため。(2020年6月7日時点:少なくとも私の環境からは公式の次に表示されています)
      2020年6月7日にGoogle検索で「Azure SDK for Go」を検索した結果のスクリーンショット


      引き続き、まったりと。

      2020年5月4日月曜日

      Azure SDK for Goでの認証方式

      Azure SDK for Go documentation」サイトの「Authentication methods in the Azure SDK for Go」ページを読み進めました。

      本セクションでは、Azure SDK for Goを使ってAzureで認証するための形式と方式が紹介されています。

      ここでは、対象ページの内容をベースに...というか結果的にGoogle翻訳による日本語翻訳状態となり、私なりの言い回しを加えています。ちなみに、"type"は"形式"に、"method"は"方式"に、日本語訳しています。

      利用可能な認証の形式と方式


      Azure SDK for Goは複数の資格情報セットと認証形式を提供し、認証形式は複数の認証方式(認証情報をSDKに取り込む操作)で呼び出せます。

      提供されている認証形式は、次の通りです。

      証明書ベース形式


      クライアント資格情報形式

      • アプリケーションに構成済みのサービスプリンシパルを組み込んで認証します。詳細については「Create a service principal with Azure CLI」を参照してください。

      AzureリソースのマネージドID形式

      • アプリケーションは、Azure ADが自動的にAzureサービスに提供したマネージドIDを使ってAzure AD認証をサポートするAzureサービスを認証します。詳細は「Managed identities for Azure resources」を参照してください。

      デバイストークン形式

      • 多要素認証を有効にしたユーザーのデバイスにトークンを渡し、WebブラウザーでMicrosoftサインインにアクセスしてAzure ADアカウントで認証します。詳細は「Use device token authentication」を参照してください。

      ユーザー名/パスワード形式

      • ユーザー名とパスワードで認証します。多要素認証が無効状態でのAzure ADサインインのため、セキュリティ面で不安があります。

      【重要】クライアント資格情報形式以外の認証形式を使用する場合、アプリケーションはAzure ADに登録されている必要があります。詳細は「Integrating applications with Azure Active Directory」を参照してください。

      【注意】特別な要件がない限り、ユーザー名/パスワード形式は避けてください。ユーザーベースのサインインが必要な場合はデバイストークン形式で対応してください。

      これらの認証形式は、さまざまな認証方式で利用できます。

      環境ベース方式

      • シェルの環境変数から資格情報を読み取ります。

      ファイルベース方式

      • サービスプリンシパルの資格情報などをファイルから読み込みます。

      クライアントベース方式

      • コード内のオブジェクトを使用し、プログラムの実行中に資格情報を提供する必要があります。

      デバイストークン方式

      • ユーザーはトークンを使用してWebブラウザーからインタラクティブにサインインする必要があります。

      すべての認証機能と認証方式は、github.com/Azure/go-autorest/autorest/azure/authパッケージで利用できます。

      【注意】特別な要件がない限り、クライアントベース方式は避けてください。認証情報をハードコード化する傾向にあり、認証要件が変更された場合のSDKリリースで機能しなくなる可能性があります。

      環境ベース方式を使用する


      アプリケーションを実行する前にシェルの環境変数を構成し、実行時にこれらの環境変数を読み取り、Azureで認証します。

      環境ベース方式は、デバイストークン形式を除くすべての認証形式をサポートしており、次の順序で評価されます。

      • クライアント資格情報形式
      • 証明書ベース形式
      • ユーザー名/パスワード形式
      • AzureリソースのマネージドID形式

      認証形式に未設定の値があるか拒否された場合、SDKは自動的に次の認証形式を試行し、形式がなくなるとエラーを返します。

      次の表は、環境ベース形式でサポートされる認証形式ごとに設定する必要がある環境変数の詳細を示しています。

      クライアント資格情報形式

              AZURE_TENANT_ID
                      サービスプリンシパルが属するActive DirectoryテナントのID。
              AZURE_CLIENT_ID
                      サービスプリンシパルの名前またはID。
              AZURE_CLIENT_SECRET
                      サービスプリンシパルに関連付けられているシークレット。

      証明書ベース形式

              AZURE_TENANT_ID
                      証明書が登録されているActive DirectoryテナントのID。
              AZURE_CLIENT_ID
                      証明書に関連付けられているアプリケーションクライアントID。
              AZURE_CERTIFICATE_PATH
                      クライアント証明書ファイルへのパス。
              AZURE_CERTIFICATE_PASSWORD
                      クライアント証明書のパスワード。

      ユーザー名/パスワード形式

              AZURE_TENANT_ID
                      ユーザーが属するActive DirectoryテナントのID。
              AZURE_CLIENT_ID
                      アプリケーションクライアントID。
              AZURE_USERNAME
                      サインインに使用するユーザー名。
              AZURE_PASSWORD
                      サインインに使用するパスワード。

      AzureリソースのマネージドID形式

              マネージドID形式に資格情報は必要ありません。
              アプリケーションは、マネージドIDを使用するように構成
              されたAzureリソースで実行されている必要があります。
              詳細については「Managed identities for Azure resources」を
              参照してください。

      既定のAzureパブリッククラウド以外のクラウドまたは管理エンドポイントに接続するには、次の環境変数を設定します。例えば、Azure Stack、別の地域のクラウド、または従来のデプロイモデルを使用している場合です。

              AZURE_ENVIRONMENT
                      接続するクラウド環境の名前。
              AZURE_AD_RESOURCE
                      接続時に使用するActive DirectoryリソースID。
                      管理エンドポイントへのURIとして使用します。

      Goコードでは、NewAuthorizerFromEnvironment関数を呼び出してオーソライザーオブジェクトを取得します。このオブジェクトは、クライアントのAuthorizerプロパティで設定され、Azureへのアクセスを許可します。

              import "github.com/Azure/go-autorest/autorest/azure/auth"
              authorizer, err := auth.NewAuthorizerFromEnvironment()

      Azure Stackでの認証


      Azure Stackで認証するには、次の環境変数を設定する必要があります。

              AZURE_AD_ENDPOINT
                      Active Directoryエンドポイント。
              AZURE_AD_RESOURCE
                      Active DirectoryリソースID。

      これらの環境変数は、Azure Stackメタデータ情報から取得できます。メタデータを取得するには、Azure Stack環境でWebブラウザーを開き、次のURLを使用します:(ResourceManagerURL)/metadata/endpoints?api-version=1.0

      ResourceManagerURLは、Azure Stackデプロイメントのリージョン名、マシン名、および外部の完全修飾ドメイン名(FQDN)によって異なります。

              開発キット
                      https://management.local.azurestack.external/
              統合システム
                      https://management.(region).ext-(machine-name).(FQDN)

      Azure StackでAzure SDK for Goを使用する方法の詳細については「Use API version profiles with Go in Azure Stack」を参照してください。

      ファイルベース方式を使用する


      ファイルベース方式では、Azure CLIによって生成されたファイル形式を使用します。--sdk-authパラメータを使用して新しいサービスプリンシパルを作成するときに、このファイルを簡単に作成できます。CLIはstdoutに出力するため、出力をファイルにリダイレクトします。

              az ad sp create-for-rbac --sdk-auth > azure.auth

      AZURE_AUTH_LOCATION環境変数を、許可ファイルが配置されている場所に設定します。この環境変数はアプリケーションによって読み取られ、その中の資格情報が解析されます。実行時に認証ファイルを選択する必要がある場合は、os.Setenvhttps://golang.org/pkg/os/#Setenv関数を使用してプログラムの環境を操作します。

      認証情報を読み込むには、NewAuthorizerFromFile関数を呼び出します。環境ベース方式とは異なり、ファイルベース方式にはリソースエンドポイントが必要です。

              import "github.com/Azure/go-autorest/autorest/azure/auth"
              authorizer, err := NewAuthorizerFromFile(azure.PublicCloud.ResourceManagerEndpoint)

      サービスプリンシパルの使用とアクセス許可の管理の詳細については「Create a service principal with Azure CLI」を参照してください。

      デバイストークン方式を使用する


      ユーザーにインタラクティブにサインインさせる場合は、デバイストークン方式が最適です。ユーザーにトークンを渡してMicrosoftサインインサイトに貼り付け、Azure Active Directory(AAD)アカウントで認証します。この認証方式は、標準のユーザー名/パスワード方式とは異なり、多要素認証が有効になっているアカウントをサポートします。

      NewDeviceFlowConfig関数を使用してDeviceFlowConfigオーソライザーを作成します。結果のオブジェクトでAuthorizerを呼び出して、認証プロセスを開始します。デバイスフロー認証は、認証フロー全体が完了するまでプログラムの実行をブロックします。

              import "github.com/Azure/go-autorest/autorest/azure/auth"
              deviceConfig := auth.NewDeviceFlowConfig(applicationID, tenantID)
              authorizer, err := deviceConfig.Authorizer()

      認証クライアントを使用する


      特定の形式の認証が必要で、プログラムがユーザーからの認証情報を読み込んで処理を進める場合は、auth.AuthorizerConfigインターフェースに準拠する任意のクライアントを使用できます。次の場合は、このインターフェースを実装する型を使用します。

      • インタラクティブなプログラムを書く
      • 専用の構成ファイルを使用する
      • 用意されている認証形式では対応できない要件である

      【警告】Azure資格情報をアプリケーションにハードコードしないでください。アプリケーションのバイナリーにシークレットを入れると、アプリケーションが実行されているかどうかにかかわらず、攻撃者がシークレットを簡単に抽出できます。これにより、資格情報が承認されているすべてのAzureリソースが危険にさらされます。

      次の表に、AuthorizerConfigインターフェースに準拠するSDKの形式を示します。

              証明書ベース形式
                      ClientCertificateConfig
              クライアント資格情報形式
                      ClientCredentialsConfig
              AzureリソースのマネージドID形式
                      MSIConfig
              ユーザー名/パスワード形式
                      UsernamePasswordConfig

      関連付けられたNew関数を使用してオーセンティケーターを作成し、結果のオブジェクトに対してAuthorizeを呼び出して認証します。たとえば、証明書ベース形式を使用するには次のようになります:

              import "github.com/Azure/go-autorest/autorest/azure/auth"
              certificateAuthorizer := auth.NewClientCertificateConfig(certificatePath, certificatePassword, clientID, tenantID)
              authorizerToken, err := certificateAuthorizer.Authorize()