CFNリソースからLambda関数をどのように「DependsOn」しますか?

ジェフリー・ウェン

サーバーレスでは、AWS::Lambda::PermissionCognitoがカスタムメッセージラムダハンドラーを呼び出せるようにするCFNリソースを作成しています

AWS::Lambda::Permissionラムダに依存します。ラムダが最初に作成されるようにするにはどうすればよいですか?

運が悪かったのでDependsOnAWS::Lambda::PermissionCFNリソースにプロパティを追加しようとしました

以下は、ラムダを呼び出すためにCognitoにパーミッションを追加しようとしている私のCFNリソースです。

UserPoolLambdaInvokePermission:
  Type: AWS::Lambda::Permission
  Properties:
    Action: lambda:invokeFunction
    Principal: cognito-idp.amazonaws.com
    FunctionName: arn:aws:lambda:${self:provider.region}:#{AWS::AccountId}:function:${self:service}-${self:provider.stage}-cognitoCustomMessage
    SourceArn: arn:aws:cognito-idp:${self:provider.region}:#{AWS::AccountId}:userpool/${self:provider.environment.USER_POOL_ID}

これが私のラムダが私の中でどのように見えるかserverless.ymlです:

cognitoCustomMessage:
  handler: src/main/lambdas/users_handler.cognitoCustomMessage

これが私のラムダが非常に基本的なレベルで行っていることです:

cognitoCustomMessage(event, next) {
  if (event.triggerSource === 'CustomMessage_ForgotPassword') {
    // do stuff
  }
  return next(null, event);
}

上記から得られるエラーは次のとおりです。

エラーが発生しました:CognitoCustomMessageLambdaFunction-関数が見つかりません:arn:aws:lambda:us-west-2:1234567890:my-service-dev-cognitoCustomMessage(サービス:AWSLambdaInternal;ステータスコード:404;エラーコード:ResourceNotFoundException;リクエストID:e2a98525 -5090-4d0f-a1f5-20610474f93b)。

私が追加した場合DependsOn

UserPoolLambdaInvokePermission:
  Type: AWS::Lambda::Permission
  DependsOn: arn:aws:lambda:${self:provider.region}:#{AWS::AccountId}:function:${self:service}-${self:provider.stage}-cognitoCustomMessage
  ...
  ....

上記のエラーは次のとおりです。

CloudFormationテンプレートが無効です:テンプレート形式エラー:DependsOnは文字列または文字列のリストである必要があります。

私も試しました:

UserPoolLambdaInvokePermission:
  Type: AWS::Lambda::Permission
  DependsOn: CognitoCustomMessageLambdaFunction
  ...
  ....

上記のエラーは次のとおりです。

エラーが発生しました:CognitoCustomMessageLambdaFunction-関数が見つかりません:arn:aws:lambda:us-west-2:1234567890:my-service-dev-cognitoCustomMessage(サービス:AWSLambdaInternal;ステータスコード:404;エラーコード:ResourceNotFoundException;リクエストID:b888ae82 -a0d7-4d69-888e-9e63027925c1)。

CFNリソースがラムダ関数を使用する前に、最初にラムダ関数を作成する方法があるはずですが、これはそうではないようですDependsOn

ハイダーアリ

DependsOn属性には、Lambda関数のARNではなく、クラウド形成テンプレート内のLambda関数の論理名を指定する必要があります。たとえば、クラウドフォーメーションテンプレートでのLambda関数の論理名がMyLambdaの場合、DependsOnは次のようになります。

UserPoolLambdaInvokePermission:
  Type: AWS::Lambda::Permission
  DependsOn: MyLambda 

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

サーバーレスを使用して、Lambda関数の承認者をリソースからCognitoユーザープールに設定するにはどうすればよいですか?

分類Dev

PHP 7はどのようにして通常のリストからリソースを削除しますか?

分類Dev

Lambda関数でCloudFormationリソースを使用するにはどうすればよいですか?

分類Dev

どのように複数のパラメータを持つメソッドは、リストを取る関数に渡されますでしょうか?

分類Dev

ファクトリ関数のメソッドから `this`キーワードをどのように削除しますか?

分類Dev

Azureタイマートリガー関数からblobをどのように参照しますか?

分類Dev

Python Azure関数でHTTPリクエストメソッドをどのように区別しますか?

分類Dev

dplyr関数をリスト列にどのように適用しますか?

分類Dev

この関数はどのようにバイナリツリーをトラバースしますか?

分類Dev

このスクリプトはリソースを大量に消費しますか?もしそうなら、どのように改善しますか?

分類Dev

haskellの関数パラメーターでリストをどのように渡しますか?

分類Dev

ソースツリーでGoogleCloudをどのように使用しますか?

分類Dev

Ubuntuのリソースをどのように解放しますか?

分類Dev

プロセスメモリスペース、関数から値はどのように返されますか?

分類Dev

Azure Queueトリガー関数をローカルでどのようにテストしますか?

分類Dev

Dockerはどのようにリソースを共有しますか

分類Dev

Jinja2でリストをどのようにソートしますか?

分類Dev

xamlで静的リソースをどのように使用しますか?

分類Dev

怠惰な「take」関数はどのようにしてScalaストリームをさらに計算しますか?

分類Dev

名前を保持したまま、関数から複数のリストを返すにはどうすればよいですか?

分類Dev

serverless.ymlのLambda関数トリガーイベントとしてDynamoDBストリームを参照するにはどうすればよいですか?

分類Dev

関数からObservable <T>をどのように返しますか

分類Dev

AsParallel()はどのように「ソース」を分割しますか?

分類Dev

createStoreはreduxのレデューサー関数からinitialStateをどのように抽出しますか?

分類Dev

コンパイラはLAMBDA式からデリゲート型をどのように推測しますか?

分類Dev

Java で記述された EBS から AWS Lambda 関数をトリガーできますか? パラメータを渡すことはできますか? Lambda を使用するには、他にどのようなサービスを使用する必要がありますか?

分類Dev

マルチスレッドMEX関数でコンソールにどのように印刷しますか?

分類Dev

ラムダ関数を含むコールスタックが与えられた場合、そのソースをどのように決定できますか?

分類Dev

更新されたグローバルクラス変数をあるメソッドから別のメソッドにどのように渡しますか?

Related 関連記事

  1. 1

    サーバーレスを使用して、Lambda関数の承認者をリソースからCognitoユーザープールに設定するにはどうすればよいですか?

  2. 2

    PHP 7はどのようにして通常のリストからリソースを削除しますか?

  3. 3

    Lambda関数でCloudFormationリソースを使用するにはどうすればよいですか?

  4. 4

    どのように複数のパラメータを持つメソッドは、リストを取る関数に渡されますでしょうか?

  5. 5

    ファクトリ関数のメソッドから `this`キーワードをどのように削除しますか?

  6. 6

    Azureタイマートリガー関数からblobをどのように参照しますか?

  7. 7

    Python Azure関数でHTTPリクエストメソッドをどのように区別しますか?

  8. 8

    dplyr関数をリスト列にどのように適用しますか?

  9. 9

    この関数はどのようにバイナリツリーをトラバースしますか?

  10. 10

    このスクリプトはリソースを大量に消費しますか?もしそうなら、どのように改善しますか?

  11. 11

    haskellの関数パラメーターでリストをどのように渡しますか?

  12. 12

    ソースツリーでGoogleCloudをどのように使用しますか?

  13. 13

    Ubuntuのリソースをどのように解放しますか?

  14. 14

    プロセスメモリスペース、関数から値はどのように返されますか?

  15. 15

    Azure Queueトリガー関数をローカルでどのようにテストしますか?

  16. 16

    Dockerはどのようにリソースを共有しますか

  17. 17

    Jinja2でリストをどのようにソートしますか?

  18. 18

    xamlで静的リソースをどのように使用しますか?

  19. 19

    怠惰な「take」関数はどのようにしてScalaストリームをさらに計算しますか?

  20. 20

    名前を保持したまま、関数から複数のリストを返すにはどうすればよいですか?

  21. 21

    serverless.ymlのLambda関数トリガーイベントとしてDynamoDBストリームを参照するにはどうすればよいですか?

  22. 22

    関数からObservable <T>をどのように返しますか

  23. 23

    AsParallel()はどのように「ソース」を分割しますか?

  24. 24

    createStoreはreduxのレデューサー関数からinitialStateをどのように抽出しますか?

  25. 25

    コンパイラはLAMBDA式からデリゲート型をどのように推測しますか?

  26. 26

    Java で記述された EBS から AWS Lambda 関数をトリガーできますか? パラメータを渡すことはできますか? Lambda を使用するには、他にどのようなサービスを使用する必要がありますか?

  27. 27

    マルチスレッドMEX関数でコンソールにどのように印刷しますか?

  28. 28

    ラムダ関数を含むコールスタックが与えられた場合、そのソースをどのように決定できますか?

  29. 29

    更新されたグローバルクラス変数をあるメソッドから別のメソッドにどのように渡しますか?

ホットタグ

アーカイブ