AWS::Lambda::Function
リソースの更新
生成されたテンプレートに AWS::Lambda::Function
リソースが含まれる場合、Code/S3Bucket
、Code/S3Key
プロパティが MUTUALLY_EXCLUSIVE_PROPERTIES
として認識されたことを伝える警告が表示されます。さらに、Code/S3ObjectVersion
プロパティは UNSUPPORTED_PROPERTIES
の警告を受け取ります。生成されたテンプレートには Code/ImageUri
と Code/ZipFile
のプロパティがありません。これは、これらが相互排他的な書き込み専用のプロパティであるためです。どの AWS::Lambda::Function
リソースも、これらの排他的なプロパティのセットを 1 つしか持つことができません。
-
Code/S3Bucket
とCode/S3Key
のプロパティ、およびオプションでCode/S3ObjectVersion
のプロパティです。 -
Code/ImageUri
プロパティ -
Code/ZipFile
プロパティ
IaC ジェネレーターは、リソースの作成または更新に排他的な書き込み専用プロパティのどのセットが使用されたのかを特定することはできません。そのため、IaC ジェネレーターには、生成されたテンプレートの最初のプロパティのセットのみが含まれます。生成されたテンプレートに AWS::Lambda::Function
リソースを含めるには、生成されたテンプレートをダウンロードして、Lambda コードの正しい情報を使ってこれを更新する必要があります。
Lambda コードを Amazon S3 バケットに保存し、S3ObjectVersion
プロパティを使用しない場合、生成されたテンプレートを修正せずにそのままインポートすることができます。IaC ジェネレーターは、インポートオペレーション中に、テンプレートのパラメータとして Amazon S3 バケットとキーを要求します。
Lambda コードを Amazon ECR リポジトリとして保存する場合は、以下の手順に従ってテンプレートを更新します。
-
生成されたテンプレートをダウンロードします。
-
生成されたテンプレートから、
Code/S3Bucket
およびCode/S3Key
プロパティのプロパティと対応するパラメータを削除します。 -
生成されたテンプレートで削除したプロパティを
Code/ImageUri
プロパティに置き換え、Amazon ECR リポジトリの URL を指定します。 -
生成されたテンプレートを IaC ジェネレーターのコンソールで開き、[編集したテンプレートをインポート] をクリックします。
Lambda コードを zip ファイルとして保存する場合は、以下の手順に従ってテンプレートを更新します。
-
生成されたテンプレートをダウンロードします。
-
生成されたテンプレートから、
Code/S3Bucket
およびCode/S3Key
プロパティのプロパティと対応するパラメータを削除します。 -
生成されたテンプレートの削除されたプロパティを
Code/ZipFile
プロパティに置き換えます。 -
生成されたテンプレートを IaC ジェネレーターのコンソールで開き、[編集したテンプレートをインポート] をクリックします。
Lambda コードのコピーがない場合は、以下の手順に従ってテンプレートを更新します。
-
AWS Lambda
GetFunction
API アクションを使用します (aws lambda get-function
AWS CLI コマンドを使用するなど)。 -
レスポンスの
RepositoryType
パラメータは、コードが Amazon S3 バケットにある場合はS3
、コードが Amazon ECR リポジトリにある場合はECR
です。 -
レスポンスの
Location
パラメータには、デプロイパッケージを 10 分間ダウンロードするときに使用できる、署名付き URL が含まれています。コードをダウンロードします。 -
このコードを Amazon S3 バケットにファイルをアップロードします。
-
生成されたテンプレートを使ってインポートオペレーションを実行し、パラメータ値としてバケット名とキーを指定します。