投稿者: sumito.tsukada

  • AWSコマンドでCloudFrontのキャッシュを消す

    AWSコマンドでCloudFrontのキャッシュを消す

    AWSコマンドでCloudFrontのキャッシュを消す方法

    AWSコマンドラインインターフェース(CLI)を使用してCloudFrontのキャッシュを無効化(Invalidation)する方法を説明します。

    手順

    以下のコマンドを実行します。

    aws cloudfront create-invalidation --distribution-id <distribution-id> --paths "<path1>" "<path2>" ...

    パラメータの説明

    • <distribution-id>: キャッシュを無効化したいCloudFrontディストリビューションのIDを指定します。
    • "<path1>" "<path2>" ...: キャッシュを無効化したいオブジェクトのパス(複数可)を指定します。パスはダブルクォーテーションで囲みます。

    ディストリビューションIDがEDFDVBD6EXAMPLEで、/index.html/images/logo.jpgのキャッシュを無効化したい場合は、以下のようになります。

    aws cloudfront create-invalidation --distribution-id EDFDVBD6EXAMPLE --paths "/index.html" "/images/logo.jpg"

    すべてのオブジェクトのキャッシュを無効化したい場合は、"/*"を指定します。

    aws cloudfront create-invalidation --distribution-id EDFDVBD6EXAMPLE --paths "/*"

    注意点

    • Invalidationリクエストには料金がかかります。
    • Invalidationが完了するまでには数分かかる場合があります。
    • 無効化されたオブジェクトは、次のリクエスト時に再びキャッシュされます。

    これにより、指定したパスのオブジェクトのキャッシュが無効化され、次のリクエスト時に新しいバージョンのオブジェクトがCloudFrontにキャッシュされます。

    以上で、AWSコマンドを使用してCloudFrontのキャッシュを消す方法の説明を終わります。ご不明な点があればお気軽にお問い合わせください。

  • Resource handler returned message: “The runtime parameter of nodejs14.x is no longer supported for creating or updating AWS Lambda functions. We recommend you use the new runtime (nodejs20.x) while creating or updating functions.

    Resource handler returned message: “The runtime parameter of nodejs14.x is no longer supported for creating or updating AWS Lambda functions. We recommend you use the new runtime (nodejs20.x) while creating or updating functions.

    AWS CDKでLambdaランタイムのアップグレードエラーを解決する

    AWS Cloud Development Kit (CDK)を使用してサーバーレスアプリケーションをデプロイする際に、Lambdaランタイムのバージョンアップによるエラーに遭遇することがあります。本記事では、そのようなエラーの原因と解決策について説明します。

    問題の概要

    CDKでLambda関数をデプロイしようとしたところ、以下のようなエラーが発生しました。

    Resource handler returned message: "The runtime parameter of nodejs14.x is no longer supported for creating or updating AWS Lambda functions. We recommend you use the new runtime (nodejs20.x) while creating or updating functions. (Service: Lambda, Status Code: 400, Request ID: 9xxx)" (RequestToken: e3c5cxxxx, HandlerErrorCode: InvalidRequest)
    

    このエラーは、AWS LambdaがNode.js 14.xランタイムのサポートを終了し、Node.js 20.xへの移行を推奨しているために発生しています。

    原因の特定

    エラーの原因を特定するために、プロジェクトの依存関係を確認したところ、package.jsonファイルに@aws-cdk/coreなどのCDK v1のパッケージが含まれていました。

    "dependencies": {
      "@aws-cdk/core": "^1.x.x",
      // ...
    }

    CDK v1はNode.js 14.xをデフォルトのランタイムとして使用していたため、これが原因でLambda関数のランタイムがNode.js 14.xになっていたのです。

    解決策

    この問題を解決するには、以下の手順を実行します。

    1. package.jsonファイルから、CDK v1の古いモジュール(@aws-cdk/coreなど)を削除します。
    2. CDK v2の新しいモジュール(aws-cdk-lib)をpackage.jsonファイルの依存関係に追加します。
    "dependencies": {
      "aws-cdk-lib": "^2.x.x",
      // ...
    }
    1. CDKのコード内で、@aws-cdk/coreなどの古いモジュールをインポートしている箇所を、aws-cdk-libからのインポートに変更します。
    2. npm installを実行して、更新された依存関係をインストールします。
    npm install
    1. CDKアプリケーションを再度合成し、CloudFormationテンプレートを生成します。
    cdk synth
    1. 生成されたCloudFormationテンプレートを確認し、Lambda関数のランタイムがNode.js 20.xに更新されていることを確認します。
    2. CDKアプリケーションをデプロイします。
    cdk deploy

    これで、Lambda関数のランタイムがNode.js 20.xに更新され、エラーが解消されるはずです。

    予防策

    今回の問題を予防するには、以下の点に注意が必要です。

    1. CDKのバージョンを最新のものに保つ
      • CDKは常に進化しており、新しいバージョンではモジュールの構造や名前が変更されることがあります。定期的にCDKのバージョンを更新することで、最新のベストプラクティスに沿ったアプリケーションを構築できます。
    2. 依存関係を定期的に確認する
      • プロジェクトの依存関係に古いモジュールが含まれていないか、定期的に確認することが重要です。古いモジュールを使用し続けると、セキュリティの問題や非互換性の問題が発生する可能性があります。
    3. AWS公式ドキュメントを参照する
      • AWSのサービスは常に進化しており、サポートされるランタイムやベストプラクティスも変化します。定期的にAWS公式ドキュメントを確認し、最新の情報を把握することが重要です。

    まとめ

    AWS CDKを使用する際に、古いCDKバージョンの依存関係が含まれていることが原因で、Lambdaランタイムのバージョンアップによるエラーに遭遇することがあります。このようなエラーは、古いモジュールを削除し、新しいモジュールを使用することで解決できます。また、CDKとAWSのサービスの進化に合わせて、定期的にアプリケーションの依存関係を見直すことが重要です。

    本記事が、同様の問題に直面した開発者の助けになれば幸いです。

  • ゲームのセリフで学ぶ法廷英語「We shall first hear the testimony of the defense」

    ゲームのセリフで学ぶ法廷英語「We shall first hear the testimony of the defense」

    この記事を読んで学べること:

    • ゲームのセリフを通じて法廷で使われる英語表現を学ぶ。
    • 法律関連の英語のイディオムや専門用語を理解する。
    • 文脈に合わせた表現のニュアンスを把握する。

    今回の表現: “We shall first hear the testimony of the defense.”

    日本語訳: 我々はまず被告側の証言を聞くことになる。

    文法解析:

    • “We shall” は、未来の予定や意図を示す表現で、ここでは法廷の次の手続きを告げる形で使われています。
    • “First” は副詞で、行われる順序を示しています。
    • “Hear” は動詞で、「聞く」という意味です。
    • “The testimony” は「証言」という意味の名詞で、”the” は特定の証言を指しています。
    • “Of the defense” は前置詞 “of” と名詞 “defense”(被告側)を組み合わせた句で、どの証言を聞くかを明確にしています。

    他の表現との違い:

    オリジナルの表現似た表現使い方の違い例文
    We shall first hear the testimony of the defense.Let’s start by hearing the defense’s testimony.“Let’s start by” はもっとカジュアルな表現で、グループに行動を促す際に使われます。Let’s start by hearing what the defense has to say.

    英語学習者として覚えておくべきポイント: 「Shall」は法律や正式な場における決定的な行動を示す時に用いられます。日常英会話ではあまり使われませんが、法廷ドラマや法的な文書でよく見かける表現です。また、「testimony」は法廷における証言を指し、特に証人が宣誓の下で行う発言を意味します。この表現は、法律の文脈において非常に重要です。

  • ゲームから学ぶ:英語の表現「Or…shall we employ the guillotine?」

    ゲームから学ぶ:英語の表現「Or…shall we employ the guillotine?」

    この記事を読んで学べること:

    • ゲームのテキストを通して、効果的な英語のイディオムや表現を学ぶ。
    • 文脈に応じた表現の使い方を理解する。
    • 英文の文法構造を分析する。

    今回の表現: “Or…shall we employ the guillotine?”

    日本語訳: それとも…ギロチンを使うべきか?

    文法解析:

    • “Or” は、選択肢や代替案を導くために使われる接続詞です。
    • “Shall” は、提案や将来の行動を導入する助動詞です。
    • “We” は一人称複数の主語です。
    • “Employ” は動詞で、「使用する」や「雇う」という意味ですが、ここでは「使う」の意味です。
    • “The guillotine” は定冠詞 “the” と名詞 “guillotine”(ギロチン)から成り立っています。

    他の表現との違い:

    オリジナルの表現似た表現使い方の違い例文
    Or…shall we employ the guillotine?Should we use the guillotine?“Shall”はより公式な提案を示し、”should”は一般的な質問や提案を示します。Should we use the guillotine instead?

    英語学習者として覚えておくべきポイント: 「Shall」はフォーマルな状況や法的な文脈、または堅苦しい提案で使われることが多いです。日常会話では「Should we…?」のような表現がより一般的ですが、「Shall」を使うことで話者の意図がより強調されることがあります。また、「employ」は「use」のよりフォーマルな同義語であり、特定の文脈で選ばれることがあります。

  • 法廷ドラマに見る英語のフレーズ

    法廷ドラマに見る英語のフレーズ

    この記事を読んで学べること: 「What shall be his fate? To burn at the stake, perhaps? To feel the Tickler, or hang upside down?」という表現の意味と法廷シーンでの使用 今回の表現: What shall be his fate? To burn at the stake, perhaps? To feel the Tickler, or hang upside down? 日本語訳: 彼の運命はどうなるのでしょうか? 火あぶりにするのでしょうか? それともくすぐり刑を受ける、あるいは逆さ吊りにされるのでしょうか? 文法解析: この文は、将来形を示す助動詞「shall」を使用して、疑問形で始まります。3つの異なる運命の選択肢が提示されており、それぞれが「to」で始まる無限定詞句によって表現されています。

    他の表現との違い:

    オリジナルの表現似た表現使い方の違い例文
    burn at the stakeexecute「burn at the stake」は特定の死刑方法、「execute」は死刑を実行する一般的な動詞The criminal was executed at dawn.
    feel the Ticklerbe tortured「feel the Tickler」はくすぐりという特定の拷問方法、「be tortured」は拷問されること一般を指すPrisoners were tortured for information.
    hang upside downbe punished「hang upside down」は特定の罰、「be punished」は罰を受けることを一般的に表すThe mischievous boy was punished.

    英語学習者として覚えておくべきポイント: 法廷や歴史的な文脈では、特定の刑罰や拷問方法を指す表現が使われます。これらは、その時代の法と文化を反映しています。「shall」は法的な意志や決定を表す際に今でも使われています。

    ビジネスでは、このような厳しい表現は使用されませんが、歴史的な文脈や法律の文書での正確な用語の使用が重要です。また、将来の意図や決定を表す際には、適切な助動詞を選ぶことが肝心です。

  • 法廷の場面での英語フレーズの使い方

    法廷の場面での英語フレーズの使い方

    この記事を読んで学べること: 「I will now bring forth the defendant, Crono, who is charged with the abduction of Princess Nadia.」という英語表現の理解と法廷での使用 今回の表現: I will now bring forth the defendant, Crono, who is charged with the abduction of Princess Nadia. 日本語訳: ここに被告人クロノを呼び出します。彼はナディア姫の誘拐で告発されています。 文法解析: この文は「I will now bring forth」という未来形の表現で始まり、「the defendant, Crono」という具体的な被告人を指名しています。「who is charged with the abduction of Princess Nadia」という関係代名詞節が被告人の罪状を説明しています。

    他の表現との違い:

    オリジナルの表現似た表現使い方の違い例文
    bring forth the defendantcall the accused「bring forth」は正式な文脈で使われる、「call」はより一般的な呼び出しWe will call the accused to the stand.
    charged withaccused of「charged with」は正式な告発、「accused of」は一般的な非難He was accused of theft but never charged.

    英語学習者として覚えておくべきポイント: 「bring forth」というフレーズは、特に法廷などの公式の場で使われ、ある人物を目立たせるために用います。「charged with」という表現は、正式な告発や罪状を示す際に使用されます。

    ビジネスや法律の文脈では、これらの正式で具体的な表現を使用することで、話し手の意図を明確にし、聞き手に信頼性を与えます。特に法廷関連のドキュメントや議論で、適切な語彙の選択が求められます。

  • 法廷用語とドラマティックな英語表現

    法廷用語とドラマティックな英語表現

    この記事を読んで学べること: 「I, your Chancellor, shall serve as prosecutor!」という英語表現の意味と文脈 今回の表現: I, your Chancellor, shall serve as prosecutor! 日本語訳: 私、あなた方の宰相が、検察官として務めます! 文法解析: この文は、主語「I, your Chancellor」(私、あなた方の宰相)と、助動詞「shall」を使用しています。「serve as prosecutor」は「検察官として務める」という意味の動詞句です。

    他の表現との違い:

    オリジナルの表現似た表現使い方の違い例文
    shall serve aswill act as「shall」はより公式または堅い文脈で使われ、「will」はより一般的She will act as our guide.
    prosecutordistrict attorney「prosecutor」は一般的な検察官、「district attorney」は特定の地域を担当する検察官The district attorney is reviewing the case.

    英語学習者として覚えておくべきポイント: 「shall」はフォーマルな文脈や法的な文書で未来の意図を表す時に使われます。また、「as prosecutor」という表現は、特定の役割や職務を指す時に使うことができます。

    ビジネス文書では、明確な役割や責任を伝える際に「shall」や「as prosecutor」のような言葉を使用すると、公式かつ正確な意図が伝わります。特に法的な文脈や公式の宣言で、これらの表現は役立ちます。適切な言葉選びは、専門性と信頼性を示すために重要です。

  • ドラマチックな状況を英語で表現する

    ドラマチックな状況を英語で表現する

    この記事を読んで学べること: 「Seize him! Seize the filthy terrorist! He deceived our Princess and plotted to overthrow the Crown!」という英語表現の意味と使い方 今回の表現: Seize him! Seize the filthy terrorist! He deceived our Princess and plotted to overthrow the Crown! 日本語訳: 彼を捕まえろ!その汚いテロリストを!彼は私たちの姫を欺き、王冠を覆す陰謀を企てたのだ! 文法解析: 「Seize him!」は命令形で、行動を要求しています。「the filthy terrorist」は侮辱的な形容詞を含む名詞句です。「He deceived our Princess and plotted to overthrow the Crown」という文は、過去形の動詞「deceived」と「plotted」を含み、2つの独立した行為を述べています。

    他の表現との違い:

    オリジナルの表現似た表現使い方の違い例文
    seizecapture「seize」は力強く捕まえること、「capture」は捕らえること一般を指すPolice managed to capture the suspect.
    filthydirty「filthy」は極めて汚い、または道徳的に不潔、「dirty」は一般的な汚れを指すThe room was left in a dirty state.
    plotted to overthrowschemed to topple「plotted to overthrow」は計画的な反乱、「schemed to topple」は陰謀による権力の転覆The rebels schemed to topple the government.

    英語学習者として覚えておくべきポイント: 強い感情を表現する場合や緊急の行動を要求する場合には「seize」や「filthy」のような言葉が効果的です。「plot」は悪意のある計画を立てる際に使われ、政治的な文脈や緊張感のあるシナリオでよく見られます。

    ビジネスコミュニケーションでは、通常、これらの言葉は使用されませんが、クリエイティブなライティングや表現が必要な場面ではこれらの言葉を使うことで強い印象を与えることができます。言葉の選択は、意図するトーンや文脈に適している必要があります。

  • 英語の「探す」を表す表現を学ぶ

    英語の「探す」を表す表現を学ぶ

    この記事を読んで学べること: 「We’d heard you were abducted! We had soldiers combing the entire kingdom for you!」という英語表現の理解と使い方 今回の表現: We’d heard you were abducted! We had soldiers combing the entire kingdom for you! 日本語訳: 君が誘拐されたと聞いていたよ!君を探して兵士たちが王国中をくまなく捜索したんだ! 文法解析: この文は、過去完了形「We’d heard」(私たちは聞いていた)と過去形「you were abducted」(あなたは誘拐された)で始まります。「We had soldiers combing」は因果関係を表す構造で、「combing the entire kingdom for you」は行動の目的を示しています。

    他の表現との違い:

    オリジナルの表現似た表現使い方の違い例文
    combingsearching「combing」は非常に詳細に探すこと、「searching」は一般的な探索The police are searching for clues.
    the entire kingdomeverywhere「the entire kingdom」は広範囲を指し、「everywhere」はより広い範囲を指す可能性があるI looked everywhere for my keys.

    英語学習者として覚えておくべきポイント: 「combing」は「くまなく探す」という意味で、物事を非常に慎重にまたは詳細に調べるときに使用します。また、「the entire kingdom」のように具体的な場所を指定すると、話がより具体的になり、聞き手に強い印象を与えることができます。

    ビジネスの文脈では、細部にわたって調査や分析を行う際には「combing」という言葉が有効です。例えば、市場調査やデータ分析など、詳細な情報を必要とする場面で使われます。場所を指定する際にも、具体性が求められる場合には正確な表現を用いることが大切です。

  • Git: 特定のファイルだけを別のブランチにマージする方法

    Git: 特定のファイルだけを別のブランチにマージする方法

    Git: 特定のファイルだけを別のブランチにマージする方法

    Gitを使用していると、あるブランチの特定のファイルだけを別のブランチにマージしたい場合があります。この記事では、そのような状況で役立つGitコマンドについて説明します。

    ステップバイステップガイド

    1. まず、マージ先のブランチ(例: developブランチ)をローカルに最新の状態に更新します。

      git checkout develop git pull origin develop
    2. 次に、新しいブランチを作成し、そのブランチに切り替えます。

      git checkout -b merge-specific-file
    3. マージ元のブランチ(例: features/new-featureブランチ)から特定のファイル(例: path/to/file.txt)を現在のブランチにコピーします。

      git checkout features/new-feature -- path/to/file.txt
    4. 変更をステージングしてコミットします。

      git add path/to/file.txt git commit -m "Merge specific file from features/new-feature"
    5. 新しいブランチをリモートリポジトリにプッシュします。

      git push -u origin merge-specific-file
    6. GitHubやGitLabなどのWebインターフェースを使用して、merge-specific-fileブランチからdevelopブランチへのプルリクエストを作成します。

    7. プルリクエストがレビューされ、承認されたら、マージを完了します。

    8. 最後に、ローカルのdevelopブランチを更新します。

      git checkout develop git pull origin develop

    以上のステップにより、特定のブランチの特定のファイルのみを別のブランチにマージするためのプルリクエストを作成できます。

    まとめ

    Gitの柔軟性により、様々な状況に対応できます。特定のファイルだけをマージする必要がある場合は、上記のステップに従うことで、簡単にその目的を達成できます。このテクニックを活用して、Gitワークフローをさらに効率化しましょう。