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

cdk initで生成されるあのファイル達は何なのか/cdk-init-generated-...

cdk initで生成されるあのファイル達は何なのか/cdk-init-generated-files

AWS CDK Conference Japan 2025の登壇資料です。
https://jawsug-cdk.connpass.com/event/356357/

Avatar for tomoki10

tomoki10

July 12, 2025
Tweet

More Decks by tomoki10

Other Decks in Technology

Transcript

  1. 2 ࣗݾ঺հ • 2020೥ Ϋϥεϝιουೖࣾ AWS CDK ར༻։࢝ɹ • 2021೥

    AWS DevDayͰCDKӡ༻ϊ΢ϋ΢঺հ • 2022೥ CDKࢧ෦্ཱͪ͛ • 2023೥ AWS CDK Conference Japan ։࠵ • 2024೥ AWS CDK Conference Japan ։࠵ • 2025೥ • AWS CDK Conference Japan ։࠵ • CDKͷຊॻ͍ͯΈͨ • ෦ॺ ◦ ੡଄ϏδωεςΫϊϩδʔ෦ • ໊લʢχοΫωʔϜʣ ◦ ࠤ౻ஐथ ʢtmk2154/tomoki10ʣ
  2. ͜Μͳձ࿩ͯ͠ͳ͍Ͱ͔͢ʁ 4 ઌഐ ΤϯδχΞ δϡχΞ ΤϯδχΞ ઌഐɺCDKͷνϡʔτϦΞϧΈͯcdk initͨ͠Β ͳΜ͔ΊͬͪΌϑΝΠϧ࡞੒͞ΕͨΜͰ͚͢Ͳ ͜ΕͳΜͳΜ͔͢ʁ

    ͏ΘɺԿ͚ͩͬ͜Ε…ௐ΂ͨ͜ͱ͋Δ͚Ͳ ๨ΕͪΌͬͨɻԿ͚ͩͬͳ͋… ͳΜ͔CDKΛྑ͍ײ͡ʹಈ͔ͨ͢Ίͷ΍ͭͩΑ
  3. ໨࣍ • ͦΕͧΕͷϑΝΠϧ/σΟϨΫτϦͷ঺հ • cdk.json • package.json • package-lock.json /

    node_modules • jest.config.js • tsconfig.json • .gitignore/.npmignore 6
  4. cdk.jsonͷappϓϩύςΟ cdk synth΍cdk deployίϚϯυ࣮ߦ࣌ʹͲͷϑΝΠϧΛಡΈࠐΉͷ͔Λܾఆ͢Δ ΤϯτϦʔϙΠϯτΛࢦఆ͢ΔϓϩύςΟ • npx … ϩʔΧϧʹΠϯετʔϧ͞ΕͨύοέʔδΛ࢖༻ ҎԼ͸ࣄલτϥϯεύΠϧΛෆཁʹ͠ɺख࡞ۀʹΑΔ࣌ؒతϩεΛ๷͙ͨΊઃఆ※

    • ts-node … TypeScriptͷϑΝΠϧΛίϯύΠϧͤͣʹ௚઀࣮ߦ • --prefer-ts-exts … ϞδϡʔϧͷΠϯϙʔτ࣌ʹɺJSΑΓTSϑΝΠϧΛ༏ઌ 8 ※https://github.com/aws/aws-cdk/pull/11470
  5. cdk.jsonͷwatchϓϩύςΟ cdkίϚϯυͷwatchΦϓγϣϯΛ࢖͏࣌ͷύϥϝʔλઃ ఆ͕Մೳ include … มߋݕ஌͢ΔϑΝΠϧ exclude … มߋݕ஌͔Βআ֎͢ΔϑΝΠϧ Watchͱಉ͡֊૚ͰbuildϓϩύςΟʹ೚ҙͷίϚϯυΛ

    ઃఆ͢Δͱࣗಈ࣮ߦ͞ΕΔʢJavaͷϏϧυͳͲʣ 9 ࢀߟ৘ใɿhttps://aws.amazon.com/jp/blogs/news/increasing-development-speed-with-cdk-watch-jp/
  6. cdk.jsonͷଞͷϓϩύςΟ • build … Synthલʹ࣮ߦ͢ΔίϚϯυΛࢦఆʢྫɿLambdaʹೖΕΔJavaͷϏϧυʣ • toolkitStackName … BootstrapͰ࡞੒͞ΕΔStack໊ͷมߋ •

    toolkitBucket … BootstrapͰ࡞੒͞ΕΔόέοτͷઃఆʢbucketNameɺkmsKeyIdʣ • versionReporting … CfnςϯϓϨʔτ΁ͷCDK࣮ߦόʔδϣϯͳͲͷهࡌͷON/OFF • pathMetadata … CfnςϯϓϨʔτͷMetadataͷaws:cdk:pathͷهࡌͷON/OFF • assetMetadata … CfnςϯϓϨʔτͷMetadataͷaws:asset:*ͷهࡌͷON/OFF • notices … ίϚϯυ࣮ߦ࣌ͷ੬ऑੑɺϦάϨογϣϯͳͲͷ௨஌ͷON/OFF • output … CfnςϯϓϨʔτͳͲͷग़ྗઌͷઃఆ ͳͲͳͲ 11 ࢀߟɿhttps://github.com/aws/aws-cdk-cli/tree/main/packages/aws-cdk#json-configuration-files ɹɹɹhttps://github.com/aws/aws-cdk-cli/blob/main/packages/aws-cdk/lib/cli/cli-config.ts
  7. package.json Node.js ϓϩδΣΫτͷઃఆϑΝΠϧ • name … ϓϩδΣΫτ໊ʢ഑෍͢Δ৔߹࢖༻ʣ • version …

    ϓϩδΣΫτͷόʔδϣϯʢ഑෍͢Δ৔߹࢖༻ʣ • bin … ΞϓϦΛCLI͔Β࣮ߦ͢Δ৔߹࢖༻ʢجຊ͸ෆཁʣ • scripts … npm run **Ͱ࣮ߦͰ͖ΔεΫϦϓτͳͲΛઃఆ • devDependency … ։ൃ͚ͩʹඞཁͳύοέʔδΛઃఆ • dependency … ࣮ߦʹඞཁͳύοέʔδΛઃఆ 12 ࢀߟɿhttps://docs.npmjs.com/cli/v11/configuring-npm/package-json#bin ɹɹɹhttps://dev.classmethod.jp/articles/remove-redundant-for-cdk-init/ …
  8. jest.config.js CDK͕σϑΥϧτͰ࢖༻͢ΔςετϑϨʔϜϫʔΫͰ͋Δ JestͷઃఆΛ؅ཧ͢ΔͨΊͷϑΝΠϧ • module.exports … CommonJSܗࣜͷϞδϡʔϧΤΫεϙʔτߏจ • testEnvironment …

    ςετ࣮ߦ؀ڥͷࢦఆɻNode.jsΛ࢖༻ • roots …ςετର৅ͱ͢ΔϑΝΠϧΛݕࡧ͢ΔσΟϨΫτϦΛࢦఆ • testMatch … ࣮ߦ͢ΔςετϑΝΠϧͷύλʔϯ໊Λࢦఆ • transform … ςετϑΝΠϧͷલॲཧΛࢦఆ ɹɹɹɹɹɹɹ .ts/.tsxϑΝΠϧΛts-jestͰτϥϯεύΠϧޙʹ࣮ߦ 14 ࢀߟɿhttps://archive.jestjs.io/docs/ja/22.x/configuration ESModule΁ͷม׵ɿhttps://blog.serverworks.co.jp/2025/04/01/125304 …
  9. tsconfig.json TypeScriptίϯύΠϥͷઃఆ ts-node/ts-jestͳͲͷπʔϧ΋͜ͷઃఆΛࢀর 15 ࢀߟɿhttps://www.typescriptlang.org/tsconfig/ ɹɹɹhttps://zenn.dev/uhyo/articles/blueberry-book-catchup … • compilerOptions …

    ίϯύΠϧઃఆͷࢦఆ • target … ͲͷόʔδϣϯͷJavaScript޲͚ʹ͢Δ͔τϥϯεύΠϧ͢Δ͔ࢦఆ ྫɿES2022 ͩͱɺ ECMAScript 2022 ͷߏจͰग़ྗ • module … ϞδϡʔϧγεςϜͷࢦఆ ɹɹɹɹɹɹྫɿNodeNext ͩͱɺESModule αϙʔτʹ४ڌͨ͠ϞδϡʔϧγεςϜΛ࢖༻ • moduleResolution … import ͷղܾํ๏ͷࢦఆɻNode.js ४ڌͷํࣜͳͲ • lib … Ͳͷඪ४ϥΠϒϥϦʢྫɿDOM, ES2022 ͳͲʣͷܕఆٛΛར༻Մೳʹ͢Δ͔Λࢦఆ • declaration … *.d.tsܕఆٛϑΝΠϧΛੜ੒ • strict … ݫ֨ͳܕνΣοΫΦϓγϣϯΛ༗ޮԽ ͳͲͳͲ