Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AWS CDK Tips: 2種類のaddDependency #75

Closed
wants to merge 3 commits into from
Closed

Conversation

tmokmss
Copy link
Contributor

@tmokmss tmokmss commented Nov 15, 2023

Pull Request

  • デフォルトではランダムで reviewer がアサインされます。手動でアサインする場合は Pull Request のタイトルに "DNA" = Do Not Assign を付与してください。([DNA] = Do Not Assign (手動で reviewer の登録) #30)
  • Merge は reviewer が LGTM を出したタイミングで行ってください!

新規記事のチェックリスト

新規記事の Pull Request でない場合はスキップして問題ありません。

  • カスタマーの情報を含んでいないかチェック
  • 記事に Header の追加 (title, slug, tags, authors)
  • 記事に <!-- truncate --> の挿入
  • 手元で動作確認

Summary (generated)

AWS CDKのaddDependencyメソッドに関する記事です。Node.addDependencyとCfnResource.addDependencyの使い分けについて解説しています。CDKでリソース間の依存関係を定義する方法を紹介しているようです。

@github-actions github-actions bot requested a review from tbrand November 15, 2023 05:18
@tmokmss tmokmss added the new post 新規投稿 label Nov 15, 2023
Copy link

github-actions bot commented Nov 17, 2023

概要

AWS CDKのaddDependencyメソッドの使い方とNode.addDependencyとCfnResource.addDependencyの違いについての概要を説明した。

変更点

ファイル 概要
blog/2023-11-16-cdk-add-dependency/index.md AWS CDKのaddDependencyメソッドについての解説。Node.addDependencyとCfnResource.addDependencyの違いについて概説。

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Commits Files that changed from the base of the PR and between 6b91711 and 3207209 commits.
Files selected (1)
  • blog/2023-11-16-cdk-add-dependency/index.md (1)
Files ignored due to filter (2)
  • blog/2023-11-16-cdk-add-dependency/cfnadd.png
  • blog/2023-11-16-cdk-add-dependency/nodeadd.png
Review comments generated (5)
  • Review: 5
  • LGTM: 0

Tips

Chat with AI reviewer (/reviewbot)

  • Reply on review comments left by this bot to ask follow-up questions. A review comment is a comment on a diff or a file.
  • Invite the bot into a review comment chain by tagging /reviewbot in a reply.

Code suggestions

  • The bot may make code suggestions, but please review them carefully before committing since the line number ranges may be misaligned.
  • You can edit the comment made by the bot and manually tweak the suggestion if it is slightly off.

Pausing incremental reviews

  • Add /reviewbot: ignore anywhere in the PR description to pause further reviews from the bot.


## addDependency とは
`addDependency` メソッドは、コンストラクト間の依存関係を明示的に指定するための機能です。AWS CDKにおいては、最終的にCloudFormationリソースの依存関係として扱われます。

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

「これにより、CFnリソースの作成・更新・削除の順番を制御することが可能になります」は「これにより、CFnリソースの作成・更新・削除の順序を制御できるようになります」の方が自然な日本語だと思います。


これにより、CFnリソースの作成・更新・削除の順番を制御することが可能になります。詳細はこちらのドキュメントもご覧ください: [DependsOn 属性](https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html)

ちなみに若干非自明なのですが、 `A.addDependency(B)` で、AがBに依存していることを意味します。つまり、Bが作成されたあとにAが作成され、またAが削除されたあとにBが削除されるなどの順番になります。
Copy link

@github-actions github-actions bot Nov 17, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

「ちなみに若干非自明なのですが、」は「ちなみに少し非自明なのですが、」の方が自然な日本語だと思います。

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

「若干」はダメ?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tmokmss はい、「若干」も問題ないと思います。コメントありがとうございます。「若干非自明」でも自然な表現だと改めて確認しました。ご指摘いただいたように、「若干」と「少し」はどちらもこの文脈では適切なので、お好みで使い分けていただければと思います。ご意見いただきありがとうございました。

2つの違いを一言で表すなら、 **N対Nの依存関係か、1対1の依存関係か** と言えます。詳しく見ていきましょう。

`Node.addDependency(deps)` の場合は、そのノード (コンストラクト) の子(孫、ひ孫…)ノードに対して、再帰的に依存関係が追加されます。また、追加先のdepsについても、再帰的に処理されます。つまり、一回の操作でN対Nの依存関係を設定できます。

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

「つまり、一回の操作でN対Nの依存関係を設定できます。」は「つまり、一度の操作でN対Nの依存関係を設定できます。」の方が自然な日本語だと思います。


![Node.addDependencyの場合のコンストラクトツリー図解](nodeadd.png)

一方 `CfnResource.addDependency` の場合は、呼び出し元と引数の2つのL1コンストラクトのみに作用します。つまり、一回の操作で1対1の依存関係を設定できます。

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

「つまり、一回の操作で1対1の依存関係を設定できます。」は「つまり、一度の操作で1対1の依存関係を設定できます。」の方が自然な日本語だと思います。

これで違いが分かりましたね!

## 落とし穴に注意!
N対NはN=1なら1対1と等しいんだから、 `CfnResource` の方は使いドコロある?と思う人もいるかもしれません。

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

「落とし穴に注意!」の前に空行を入れると見出しと本文の区切りが明確になり読みやすくなると思います。

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Commits Files that changed from the base of the PR and between 3207209 and 7cab9a2 commits.
Files selected (1)
  • blog/2023-11-16-cdk-add-dependency/index.md (1)
Review comments generated (7)
  • Review: 7
  • LGTM: 0

Tips

Chat with AI reviewer (/reviewbot)

  • Reply on review comments left by this bot to ask follow-up questions. A review comment is a comment on a diff or a file.
  • Invite the bot into a review comment chain by tagging /reviewbot in a reply.

Code suggestions

  • The bot may make code suggestions, but please review them carefully before committing since the line number ranges may be misaligned.
  • You can edit the comment made by the bot and manually tweak the suggestion if it is slightly off.

Pausing incremental reviews

  • Add /reviewbot: ignore anywhere in the PR description to pause further reviews from the bot.

@@ -0,0 +1,230 @@
---
title: 'AWS CDK Tips: 2種類のaddDependency'

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

タイトルが分かりやすく良いです。

@@ -0,0 +1,230 @@
---
title: 'AWS CDK Tips: 2種類のaddDependency'
slug: cdk-add-dependency

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

slugがタイトルと一致していてSEO的に良いです。

---
title: 'AWS CDK Tips: 2種類のaddDependency'
slug: cdk-add-dependency
tags: [cdk]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cdkタグが適切です。

title: 'AWS CDK Tips: 2種類のaddDependency'
slug: cdk-add-dependency
tags: [cdk]
authors: [tmokmss]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

著者情報が正しく記載されています。

authors: [tmokmss]
---

[AWS CDK Tipsの記事](https://tmokmss.hatenablog.com/entry/aws_cdk_tips)です。

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

リンクが貼られているので、コンテキストが分かりやすいです。


CDKに `addDependency` メソッドが2種類あることをご存知でしたか?今日は2つの違いをお伝えします。

<!-- truncate -->

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

<!-- truncate -->が適切な位置に挿入されています。

blog/2023-11-16-cdk-add-dependency/index.md Show resolved Hide resolved
@tmokmss
Copy link
Contributor Author

tmokmss commented Nov 21, 2023

やっぱりこのネタは個人ブログで出すことにします 🙏  (LLMネタを書いていきたい

@tmokmss tmokmss closed this Nov 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new post 新規投稿
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant