Saya mencoba membuat fungsi lambda terjadwal menggunakan kerangka kerja Tanpa Server dan mengirimkannya parameter yang berbeda dari peristiwa yang berbeda.

Ini konfigurasi tanpa server saya:

functions:
  profile:
    timeout: 10
    handler: profile.profile
    events:
      - schedule:
          rate: rate(1 minute)
          params:
            hello: world

Masalahnya adalah ketika saya menjalankan sls deploy, saya mendapatkan kesalahan berikut:

Serverless:   at 'functions.profile.events[0]': unrecognized property 'params'

Ini pada dasarnya disalin dari dokumentasi di sini , jadi harus bekerja...

Apakah saya melewatkan sesuatu?

0
Tomer Amir 5 Januari 2021, 16:42

3 jawaban

Jawaban Terbaik

Dokumentasi yang Anda rujuk adalah untuk Apache Open Whisk.

Jika Anda menggunakan AWS, Anda harus menggunakan input seperti yang ditunjukkan di dokumentasi aws

functions:
  aggregate:
    handler: statistics.handler
    events:
      - schedule:
          rate: rate(10 minutes)
          enabled: false
          input:
            key1: value1
            key2: value2
            stageParams:
              stage: dev
2
Aaron Stuyvenberg 5 Januari 2021, 14:55

Dokumentasi yang Anda rujuk adalah untuk OpenWhisk https:/ /www.serverless.com/framework/docs/providers/openwhisk/events/schedule/#schedule/.

Cloudwatch Events (sekarang berganti nama menjadi EventBridge) ada di https://www.serverless.com/framework/docs/providers/aws/events/schedule/#enabling--disabling. Contoh kode untuk referensi

functions:
  aggregate:
    handler: statistics.handler
    events:
      - schedule:
          rate: rate(10 minutes)
          enabled: false
          input:
            key1: value1
            key2: value2
            stageParams:
              stage: dev
      - schedule:
          rate: cron(0 12 * * ? *)
          enabled: false
          inputPath: '$.stageVariables'
      - schedule:
          rate: rate(2 hours)
          enabled: true
          inputTransformer:
            inputPathsMap:
              eventTime: '$.time'
            inputTemplate: '{"time": <eventTime>, "key1": "value1"}'

Dokumen resmi di https://docs.aws.amazon.com /eventbridge/latest/userguide/scheduled-events.html

1
blr 5 Januari 2021, 15:08

Saya bisa melihat salah satu konfigurasi saya seperti di bawah ini. Di sana kami menggunakan parameter sebagai ganti param.

functions:
  test_function:
    handler: handler.test_function
    memorySize: 512
    timeout: 60
    events:
      - http:
          path: get-hello
          method: get
          request:
            parameters:
              queryStrings:
                name: true
0
J.P 5 Januari 2021, 14:22