@shinyaz

Lambda Durable Functions の呼び出しには修飾付き ARN が必須

約1分

Durable Function を普通の関数名で呼び出したら即エラーになった。

Output
An error occurred (InvalidParameterValueException) when calling the Invoke operation: You cannot invoke a durable function using an unqualified ARN.

fn-Fraud-Detection:$LATEST のようにバージョン修飾子を付ける必要がある。publish-version で作成したバージョン番号でもよい。

Terminal
# 正しい($LATEST をエスケープ)
aws lambda invoke --function-name "fn-Fraud-Detection:\$LATEST" ...
 
# 間違い($LATEST がシェル変数として展開され空文字になる)
aws lambda invoke --function-name "fn-Fraud-Detection:$LATEST" ...

シェルスクリプトでは $LATEST$ がエスケープ対象になる点も罠だ。ダブルクォート内では \$LATEST、シングルクォート内ならそのまま $LATEST で通る。通常の Lambda 関数では未修飾でも動くため、Durable Functions を初めて触るときに確実にハマるポイントだと思う。

共有する

田原 慎也

田原 慎也

ソリューションアーキテクト @ AWS

AWS ソリューションアーキテクトとして金融業界のお客様を中心に技術支援をしており、クラウドアーキテクチャや AI/ML に関する学びをこのサイトで発信しています。このサイトの内容は個人の見解であり、所属企業の公式な意見や見解を代表するものではありません。