Upgrade to Pro — share decks privately, control downloads, hide ads and more …

青森県新型コロナウイルス感染症対策サイトのデータ更新をCircleCIで自動化!/covid19-aomori-circleci

 青森県新型コロナウイルス感染症対策サイトのデータ更新をCircleCIで自動化!/covid19-aomori-circleci

2020年6月3日
【オンライン】【最強CircleCI利用術編】CircleCI ユーザーコミュニティミートアップ
で発表したスライドです。

Takuya Tachibana

June 03, 2020
Tweet

More Decks by Takuya Tachibana

Other Decks in Technology

Transcript

  1. ヘプタゴン ⽴花 拓也
    #CircleCIJP
    新型コロナウイルス感染症対策サイトの
    データ更新をCircleCIで⾃動化!

    View Slide

  2. ࣗݾ঺հ
    ཱՖ ୓໵ (35)
    @biatunky
    ੨৿ग़਎ઋ୆ܦ༝੨৿ݝࡏॅ݁ߏઋ୆
    ϔϓλΰϯ୅දऔక໾
    JAWS-UG౦๺
    (ݩ)JAWS-UGશࠃ୅ද
    AWS Summit ι΢ϧ/๺ژ εϐʔΧʔ
    CircleCIͷษڧձΛ౦๺Ͱ΋΍Γ͍ͨ(౦๺ͰҰॹʹ΍Γ͍ͨํͥͻʂ)

    View Slide

  3. ໊ࣾ גࣜձࣾϔϓλΰϯ IFQUBHPOJOD

    ཧ೦
    إΛ஌Βͳ͍ສਓͷ޾ͤΑΓ΋
    ࣗ෼ͨͪͷ਎ۙͳਓΛςΫϊϩδʔͰ޾ͤʹ
    ୅ද ཱՖ୓໵
    ڌ఺ ੨৿ݝࡾ୔ࢢɺٶ৓ݝઋ୆ࢢ
    ૑ۀ ೥݄̓
    ࣄۀ
    Ϋϥ΢υಋೖʹؔ͢ΔίϯαϧςΟϯά
    Ϋϥ΢υͷߏஙอकӡ༻
    Ϋϥ΢υωΠςΟϒͳ։ൃ
    ձࣾ֓ཁ
    גࣜձࣾϔϓλΰϯ͸
    ϕΨϧλઋ୆ɺγϯτʹτϩΠσϯVV
    ΛԠԉ͍ͯ͠·͢ɻ

    View Slide

  4. ࢲͨͪͷಇ͖ํ
    ࣾ಺ͰͷνϟϨϯδ
    ษڧձɺΠϕϯτ͸ࢀՃඅ͸શֹαϙʔτ
    ࣾһͷίϛϡχςΟ΁ͷࢀՃߩݙΛαϙʔτ
    TFMGIBDLUJNF िʹ࣌ؒɺबۀ࣌ؒதʹۀ຿Ҏ֎ͷ޷͖ͳ͜ͱΛ΍Δ

    ࣾ֎ͷਓΛೖΕͨࣾ಺ϛʔςΟϯά
    ࣾ಺৘ใϑϧΦʔϓϯʢ΍ΓͱΓച্څྉʣ
    ܾࡋ͸ͳ͘શ͕ͯࣗݾࡋྔɹ बۀ࣌ؒٳՋܦඅग़ுϑϧϦϞʔτϫʔΫ

    ਓؒੑ͕ߴ͍খ͞ͳνʔϜͰ͋Ε͹
    ׬શίϛϡχςΟܕͷձࣾӡӦ͕Ͱ͖Δ͸ͣ

    View Slide

  5. ஍ݩͷITίϛϡχςΟͰ΋ษڧձΛ։࠵

    View Slide

  6. ஍ݩֶੜΛ஍ݩاۀ͕ࢧԉͯ͠ւ֎Πϕϯτʹ࿈Ε͍ͯ͘ϓϩδΣΫτ

    View Slide

  7. ͦΕ͸3݄23೔໷…

    View Slide

  8. ͜ͷลͷৄ͍͠࿩͸෱Ҫ͞Μͷnoteʹ -> https://note.com/r82/n/n63bb34b83cc9

    View Slide

  9. ౦ژ౎৽ܕίϩφ΢Πϧεײછ঱ରࡦα
    Πτͷιʔε͕HJUIVCͰެ։͞Ε͍ͯ
    ͯɺ͜ΕΛϑΥʔΫͯ͠શࠃ֤஍Ͱ৘ใ
    αΠτ্ཱ͕͕͍ͪͬͯΔ
    ϑϩϯτΤϯυ͸/VYUKTɺάϥϑ΍ද
    ͷσʔλ͸+40/Ͱ࣮૷͞Εͨ41"
    /FUMJGZͰϗεςΟϯά͞Ε͍ͯΔέʔ
    ε͕ଟ͍
    https://stopcovid19.metro.tokyo.lg.jp/

    View Slide

  10. ੨৿ݝ಺Ͱͷײછऀൃද
    ෱Ҫ͞Μ͕͟Θ͟Θ࢝͠ΊΔ
    ฐࣾϝϯόʔ͕+0*/։ൃ४උ։࢝
    4/4Ͱ։ൃϝϯόʔΛืΓ࢝ΊΔ
    ݝ಺*5ؔ܎ऀΛத৺ʹϝϯόʔ͕ἧ͍ɺ໾ׂ෼୲ΛܾΊΔ

    ͦͷޙͻͨ͢Β։ൃ

    େ࿮͕ग़དྷ্͕Δ

    ݝிͷํʹ΋֬ೝͯ͠΋Β͍ͭͭඍௐ੔

    ϩʔϯνʂʂ


    View Slide

  11. πʔϧ
    4MBDL ίϛϡχέʔγϣϯ

    (JU)VC λεΫ؅ཧ

    ϩʔϯν·Ͱͷओͳϝϯόʔ
    ϑϩϯτɿ໊
    Πϯϑϥɿ໊
    σβΠϯɿ໊
    ϨϏϡʔɿ໊
    1.ɿ໊
    ৘ใऩूɿ໊
    ݝிͱͷௐ੔໊
    ֦ࢄ෦ୂɿͨ͘͞Μ
    νʔϜ໊"PNPSJ)BDLFST
    ϩʔϯνޙ͸ೖΕସΘΓཱͪସΘΓͰ
    ࠷ऴతʹTMBDLʹࢀՃͨ͠ϝϯόʔ͸໊

    View Slide

  12. ϩʔϯν࣌ͷϖʔδ
    ೔ʑσʔλΛߋ৽͍ͯ͘͠
    ද΍άϥϑɺϖʔδΛ௥Ճ͍ͯͬͨ͠

    View Slide

  13. ͓஌Βͤάϥϑදͷσʔλ͸͜Μͳײ͡
    news.json
    data.json

    View Slide

  14. ϩʔϯν౰ॳͷσʔλߋ৽
    ެ։͞ΕΔpdfΛ
    ໨ࢹνΣοΫ
    build & deploy
    dev
    prod
    ϨϏϡʔ
    ख࡞ۀͰJSON࡞੒
    ੨৿ݝαΠτ
    dev
    ίʔυ؅ཧ
    JSON؅ཧ
    PRͰىಈ
    non-dev

    View Slide

  15. View Slide

  16. ϩʔϯν౰ॳͷσʔλߋ৽
    ެ։͞ΕΔpdfΛ
    ໨ࢹνΣοΫ
    build & deploy
    dev
    prod
    ϨϏϡʔ
    ख࡞ۀͰJSON࡞੒
    ੨৿ݝαΠτ
    ίʔυ؅ཧ
    JSON؅ཧ
    PRͰىಈ
    non-dev
    ͭΒ͍ʜ
    dev

    View Slide

  17. WFS
    prod
    ੨৿ݝαΠτ
    RSS
    ίϩφؔ࿈ͷRSSͷΈ௨஌
    εϓϨουγʔτΛߋ৽
    JSONੜ੒
    build࣌ʹJSONΛऔಘ
    PRͰىಈ
    build & deploy
    ίʔυ؅ཧ
    dev
    ϨϏϡʔ
    non-dev
    JSON؅ཧ
    dev

    View Slide

  18. WFS
    prod
    ੨৿ݝαΠτ
    RSS
    ίϩφؔ࿈ͷRSSͷΈ௨஌
    εϓϨουγʔτΛߋ৽
    JSONੜ੒
    build࣌ʹJSONΛऔಘ
    PRͰىಈ
    build & deploy
    ίʔυ؅ཧ
    dev
    ϨϏϡʔ
    non-dev
    JSON؅ཧ
    dev

    View Slide

  19. ผͷ$*$%πʔϧΛ୳͢͜ͱʹʜ

    View Slide

  20. ͜͜ͰΑ͏΍͘ొ৔ʂ
    ແྉ࿮ͷൣғ͕େ͖͔ͬͨ
    "1*͕෼͔Γ΍͔ͬͨ͢ ࠓޙ֦ு͢Δͱ͖ͷͨΊʹ

    View Slide

  21. WFS build
    deploy
    prod
    ੨৿ݝαΠτ
    RSS
    ίϩφؔ࿈ͷRSSͷΈ௨஌
    εϓϨουγʔτΛߋ৽
    JSONੜ੒
    build࣌ʹJSONΛऔಘ
    APIͰىಈ
    ίʔυ؅ཧ
    non-dev
    JSON؅ཧ
    εϓϨουγʔτ͑͞ߋ৽͢Ε͹σʔλ͕൓өʂ
    S3
    Lambda

    View Slide

  22. ͞Βʹ੨৿ݝிଆͰײછऀ৘ใΛDTWͰ഑৴ͯ͘͠Εͨʂ
    ʢͦΕ·Ͱ͸1%'ʣ
    https://opendata.pref.aomori.lg.jp/dataset/1531.html
    ͜ΕͰউͭΔ

    View Slide

  23. 'JOBMWFS
    scheduleͰىಈ
    build࣌ʹJSON΋ੜ੒
    deploy
    prod
    ੨৿ݝαΠτ
    RSS
    ৽ண৘ใ΋
    RSS͔Βࣗಈੜ੒
    CSVऔಘ
    ੨৿ݝΦʔϓϯσʔλ
    ίʔυ؅ཧ
    JOBΛఆظىಈͤͯ͞ɺ
    JSON΋CircleCI಺Ͱ
    Ͱࣗಈੜ੒͢Δߏ੒ʹʂ
    ਓखΛհͣ͞ʹࣗಈͰ
    σʔλߋ৽ʂ

    View Slide

  24. 'JOBMWFS
    ੨৿ݝαΠτ
    ੨৿ݝΦʔϓϯσʔλ
    ࠷৽χϡʔεΛදࣔ
    ࠷৽σʔλΛදࣔ
    'JOBMWFS
    ͜͜·Ͱϲ݄

    View Slide

  25. ໘ࣝͷແ͍ํʑ͔Β΋ଟ͘ͷ*TTVF΍ϓϧϦΫΤετΛ͍͖ͨͩ·ͨ͠
    https://github.com/covid19-aomori/

    View Slide

  26. ͳΜͱதͷਓ͔Β΋

    View Slide

  27. ʢ͔ͭͯ͸ʣ౦๺ͷελʔτΞοϓͷελʔܦӦऀ

    ͜ͷޙ࿩͢5BLB͞Μ

    View Slide

  28. View Slide

  29. View Slide

  30. ٸʹθϩʹʜ

    View Slide

  31. ੨৿ݝ΁ιʔείʔυΛৡ౉͠
    ੨৿ݝެࣜͷαΠτ͕Φʔϓϯ
    IUUQTTUPQDPWJEQSFGBPNPSJMHKQ
    ݝிͷ୲౰ऀͷํͷ͓ؾݣ͍Ͱ
    "PNPSJ)BDLFSTͷ໊͕࢒ͬͨ

    View Slide

  32. ஍ݩࢴʹ΋औΓ্͛ΒΕͨ

    View Slide

  33. ݝ஌ࣄ͔Βʂ

    View Slide

  34. ·ͱΊ
    ςΫϊϩδʔͱίϛϡχςΟͷྗͰੈͷதΛྑ͘͢Δ͜ͱ͕Ͱ͖Δ͔΋͠Εͳ͍
    ίϛϡχςΟͱ࣏ࣗମͷ৽͍ؔ͠܎ͷҰาʹͳ͔ͬͨ΋
    $JSDMF$*࠷ߴʂ

    View Slide