質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.50%

  • Python 3.x

    9765questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

  • AWS(Amazon Web Services)

    2526questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

  • AWS Lambda

    126questions

  • Serverless

    14questions

serverless frameworkでcloudwatch eventsが作成されない

受付中

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 272

kachan777

score 12

お世話になります。

lambda functionを用いてec2のAMIのbackupを定期的に取得する方法を作成しています。

参考にしたサイトは以下になります。
https://qiita.com/tonishy/items/74e145f8c9cba031fa01

参考サイトに従う形でのlambda function作成は成功しました。
次のステップとしてserverless frameworkに環境を落とし込むことを検討しています。

下記のserverless.ymlでdeployするとsuccessはしています。

service: ec2-backup-new

provider:
  name: aws
  runtime: python3.6
  region: ap-northeast-1
  role: arn:aws:iam::XXXXXXXXXXXX:role/ec2-backup-test

functions:
  ec2-image-backup:
    handler: ec2-image-backup.lambda_handler
    environment:
      AWS_ACCOUNT: 'XXXXXXXXXXXX' # AWSアカウントを記述
    events:
      - schedule: cron(0 9 * * ? *) #バックアップを実行したい時間をcron式で記述
  delete_snapshot_after_ami_deregister:
    handler: delete_snapshot_after_ami_deregister.lambda_handler
    environment:
      AWS_ACCOUNT: 'XXXXXXXXXXXX' # AWSアカウントを記述
    events:
      - cloudwatchEvent:
        enabled: true
        event:
          source:
            - "aws.ec2"
          detail-type:
            - "AWS API Call via CloudTrail"
          detail:
            eventSource:
              - "ec2.amazonaws.com"
            eventName:
              - "DeregisterImage"

しかし、以下の部分だけのAWSが作成されません。
cloudformationのログを見てもこのリソースに関する出力は無いようです。

    events:
      - cloudwatchEvent:
        enabled: true
        event:
          source:
            - "aws.ec2"
          detail-type:
            - "AWS API Call via CloudTrail"
          detail:
            eventSource:
              - "ec2.amazonaws.com"
            eventName:
              - "DeregisterImage"


sls deploy時のターミナルのログです。

mac11:ec2-backup-new $ sls deploy --verbose
(node:99826) ExperimentalWarning: The fs.promises API is experimental
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Creating Stack...
Serverless: Checking Stack create progress...
CloudFormation - CREATE_IN_PROGRESS - AWS::CloudFormation::Stack - ec2-backup-new-dev
CloudFormation - CREATE_IN_PROGRESS - AWS::S3::Bucket - ServerlessDeploymentBucket
CloudFormation - CREATE_IN_PROGRESS - AWS::S3::Bucket - ServerlessDeploymentBucket
CloudFormation - CREATE_COMPLETE - AWS::S3::Bucket - ServerlessDeploymentBucket
CloudFormation - CREATE_COMPLETE - AWS::CloudFormation::Stack - ec2-backup-new-dev
Serverless: Stack create finished...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
Serverless: Uploading service .zip file to S3 (4.87 KB)...
Serverless: Validating template...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
CloudFormation - CREATE_COMPLETE - AWS::CloudFormation::Stack - ec2-backup-new-dev
CloudFormation - UPDATE_IN_PROGRESS - AWS::CloudFormation::Stack - ec2-backup-new-dev
CloudFormation - CREATE_IN_PROGRESS - AWS::Logs::LogGroup - Ec2DashimageDashbackupLogGroup
CloudFormation - CREATE_IN_PROGRESS - AWS::Logs::LogGroup - DeleteUnderscoresnapshotUnderscoreafterUnderscoreamiUnderscorederegisterLogGroup
CloudFormation - CREATE_IN_PROGRESS - AWS::Logs::LogGroup - Ec2DashimageDashbackupLogGroup
CloudFormation - CREATE_COMPLETE - AWS::Logs::LogGroup - Ec2DashimageDashbackupLogGroup
CloudFormation - CREATE_IN_PROGRESS - AWS::Logs::LogGroup - DeleteUnderscoresnapshotUnderscoreafterUnderscoreamiUnderscorederegisterLogGroup
CloudFormation - CREATE_COMPLETE - AWS::Logs::LogGroup - DeleteUnderscoresnapshotUnderscoreafterUnderscoreamiUnderscorederegisterLogGroup
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Function - Ec2DashimageDashbackupLambdaFunction
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Function - DeleteUnderscoresnapshotUnderscoreafterUnderscoreamiUnderscorederegisterLambdaFunction
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Function - Ec2DashimageDashbackupLambdaFunction
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Function - DeleteUnderscoresnapshotUnderscoreafterUnderscoreamiUnderscorederegisterLambdaFunction
CloudFormation - CREATE_COMPLETE - AWS::Lambda::Function - Ec2DashimageDashbackupLambdaFunction
CloudFormation - CREATE_COMPLETE - AWS::Lambda::Function - DeleteUnderscoresnapshotUnderscoreafterUnderscoreamiUnderscorederegisterLambdaFunction
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Version - DeleteUnderscoresnapshotUnderscoreafterUnderscoreamiUnderscorederegisterLambdaVersionF86v48XmogxGwz13oRdeqOOXvatKQma1lOtaKDnRtw
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Version - Ec2DashimageDashbackupLambdaVersionGTVn9UWPxL2FHKuc0jSf9SmjwXxvx584Bql3nYbEyM
CloudFormation - CREATE_IN_PROGRESS - AWS::Events::Rule - Ec2DashimageDashbackupEventsRuleSchedule1
CloudFormation - CREATE_IN_PROGRESS - AWS::Events::Rule - Ec2DashimageDashbackupEventsRuleSchedule1
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Version - DeleteUnderscoresnapshotUnderscoreafterUnderscoreamiUnderscorederegisterLambdaVersionF86v48XmogxGwz13oRdeqOOXvatKQma1lOtaKDnRtw
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Version - Ec2DashimageDashbackupLambdaVersionGTVn9UWPxL2FHKuc0jSf9SmjwXxvx584Bql3nYbEyM
CloudFormation - CREATE_COMPLETE - AWS::Lambda::Version - DeleteUnderscoresnapshotUnderscoreafterUnderscoreamiUnderscorederegisterLambdaVersionF86v48XmogxGwz13oRdeqOOXvatKQma1lOtaKDnRtw
CloudFormation - CREATE_COMPLETE - AWS::Lambda::Version - Ec2DashimageDashbackupLambdaVersionGTVn9UWPxL2FHKuc0jSf9SmjwXxvx584Bql3nYbEyM
CloudFormation - CREATE_COMPLETE - AWS::Events::Rule - Ec2DashimageDashbackupEventsRuleSchedule1
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Permission - Ec2DashimageDashbackupLambdaPermissionEventsRuleSchedule1
CloudFormation - CREATE_IN_PROGRESS - AWS::Lambda::Permission - Ec2DashimageDashbackupLambdaPermissionEventsRuleSchedule1
CloudFormation - CREATE_COMPLETE - AWS::Lambda::Permission - Ec2DashimageDashbackupLambdaPermissionEventsRuleSchedule1
CloudFormation - UPDATE_COMPLETE_CLEANUP_IN_PROGRESS - AWS::CloudFormation::Stack - ec2-backup-new-dev
CloudFormation - UPDATE_COMPLETE - AWS::CloudFormation::Stack - ec2-backup-new-dev
Serverless: Stack update finished...
Service Information
service: ec2-backup-new
stage: dev
region: ap-northeast-1
stack: ec2-backup-new-dev
api keys:
  None
endpoints:
  None
functions:
  ec2-image-backup: ec2-backup-new-dev-ec2-image-backup
  delete_snapshot_after_ami_deregister: ec2-backup-new-dev-delete_snapshot_after_ami_deregister

Stack Outputs
DeleteUnderscoresnapshotUnderscoreafterUnderscoreamiUnderscorederegisterLambdaFunctionQualifiedArn: arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:function:ec2-backup-new-dev-delete_snapshot_after_ami_deregister:7
Ec2DashimageDashbackupLambdaFunctionQualifiedArn: arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:function:ec2-backup-new-dev-ec2-image-backup:8
ServerlessDeploymentBucketName: ec2-backup-new-dev-serverlessdeploymentbucket-1czl9svgqonuv

serverless.ymlの記述が悪いのでしょうか。
お分かりになる方、アドバイスを頂けましたら幸いです。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

0

以下ページを見る限りでは、イベントソースでEC2はサポートされていないようです。

サポートされているイベントソース

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • Python 3.x

    9765questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

  • AWS(Amazon Web Services)

    2526questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

  • AWS Lambda

    126questions

  • Serverless

    14questions