7

aws cloudWatchEvent putRule & awt sdkからputTarget apiを呼び出して、クラウドウォッチルールを作成してターゲットをアタッチしています。ターゲットがラムダ関数であり、ルールが作成され、ターゲットがルールにアタッチされますが、ルールに基づいてルールがトリガーされるとき、ターゲットラムダ関数はトリガーしません。だから私はさらに見て、ラムダ関数の下のイベントソースがトリガーされないように追加されていないことを知った。 AWSコンソールでルールとターゲットを作成すると、イベントソースが作成され、すべてが機能しますが、APIは使用できません。AWS Cloudwatchイベントputターゲットがラムダイベントソースを追加していない

答えて

0

SDKを使用してこれが現在不可能であると理解している限り、CloudWatchイベントソースは、あなたが言った、またはCLIを使用してコンソールを介してlambdaに追加することができます。もし私が間違っていたら、可能なことを知りたいのですが、ここの文書は同意しているようです。 http://docs.aws.amazon.com/lambda/latest/dg/with-scheduled-events.html

+0

これは大文字小文字のように見えますが、少なくとも私の場合はそうでなければ、これをsdkに追加するのが理にかなっています。 – johnny

+0

合意。残念ながら、これは多くのAWS機能の場合のようです。 CLIを使用して行う必要がある – Squirrel

7

ターゲットを追加した後にラムダadd-permissionを呼び出す必要があります。

(私のためにboto3経由)である:

  • ラムダARN
とターゲット
  • コールラムダadd-permissionを作成するルール
  • を作成ラムダ
  • を作成

    boto3 documentationまたはcli docを参照してください。

  • +0

    ?右?私はsdk側から何かを探しています。別のことは、私は各ルールのラムダの下にeventSourceを作成したくありません。私はすべてのクラウドウォッチルールに対して一般的な許可を求めています。私は1000年代のルールを持っています。 – johnny

    +0

    私のルールを削除した後、彼らはまだLambdaイベントソースの下に残り、彼らは不明な状態でちょっと削除不可能です。 AWSの誰かがそれについて何か言ってくれることを願っています。 – johnny

    +0

    @johnny権限を削除する必要があるかもしれません。 – AdrieanKhisbe

    1

    aws sdkを介してイベントソースを追加することは可能です。私は同じ問題に直面し、javaを使用したソリューションとして以下のコードを見てください。

     AddPermissionRequest addPermissionRequest = new AddPermissionRequest(); 
           addPermissionRequest.setStatementId("12345ff"); //any unique string would go 
           addPermissionRequest.withSourceArn(ruleArn); 
           addPermissionRequest.setAction("lambda:InvokeFunction"); 
           addPermissionRequest.setPrincipal("events.amazonaws.com"); 
           addPermissionRequest.setFunctionName("name of your lambda function"); 
    
           AWSLambdaAsyncClient lambdaClient = new AWSLambdaAsyncClient(); 
           lambdaClient.withRegion(Regions.US_EAST_1); //region of your lambda's location 
    
    lambdaClient.addPermission(addPermissionRequest); 
    
    0

    私は同じ問題を抱えていましたが、@Anvita Shuklaが解決したことでこれを解決しました。

    (このiは、Webページで作成された)

    • は、ラムダを作成し、SDK

      • でルールオブジェクト
      • を作成します。

        これは私が行うときにうまく働きました

      • ターゲットオブジェクトを作成する
      • rul電子
      • ターゲット
      • のPUTリクエストARN
      • が許可オブジェクトを作成します(@Anvitaシュクラが言った)とルール を設定したルールを取得するために、ルール要求の応答オブジェクトを取得ARN
      • ラムダクライアントの許可を追加オブジェクト

      awsラムダページには、関連するトリガーイベントを持つラムダが表示されます。そして、aws cloudwatch eventsページで私は作成されたルールを見ることができます。 私はこれをjava langで書いています。もし私がコードを共有することができます。

    関連する問題