簡體   English   中英

AWS Step Functions 使用來自輸入負載的屬性作為參數

[英]AWS Step Functions Use Properties from input payload as parameters

我正在嘗試在 Step Function/State Machine 中使用 AWS 提供的 RDS CreateSnapshot 步驟。

在輸出簡單有效負載之前立即運行的 Lambda 函數,其中兩個屬性對應於 CreateSnapshot 步驟所需的兩個參數。 在控制台中,此相同的有效負載顯示為 RDS CreateSnapshot 步驟的“步驟輸入”:

{
  "dbInstance": "mydb",
  "dbSnapshotName": "mydb-5-21-2022--17-21"
}

RDS CreateSnapshot 定義為:

Create-Snapshot:
    Type: Task
    Resource: arn:aws:states:::aws-sdk:rds:createDBSnapshot
    Parameters:
      DbInstanceIdentifier: $.dbInstance
      DbSnapshotIdentifier: $.dbSnapshotName
    Next: SNS-Finished

我收到以下錯誤:

Error

Rds.RdsException
Cause

Invalid database identifier:  $.dbInstance (Service: Rds, Status Code: 400, Request ID: 18242626-0839-4e28-920e-1c6ea13c80c6)

在我對如何從輸入中獲取值並將它們映射到參數的理解中,我似乎遺漏了一些東西。

我使用新的 AWS Workflow Studio 來引導創建我的管道; 添加 AWS 提供的 RDS CreateSnapshot 步驟時,它將 API 參數設置為靜態輸入:

在此處輸入圖像描述

但是,在這種情況下,輸入應該是動態的,因為它們都將由管道中的前面步驟提供,並作為輸入傳遞給此步驟。 需要在參數中相應地調整這些屬性的語法,以便正確提取/引用它們。

具體來說,RDS SDK API 調用的參數需要在每個參數的末尾附加“ .$ ”。

{
  "DbInstanceIdentifier.$": "$.dbInstance",
  "DbSnapshotIdentifier.$": "$.dbSnapshotName"
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM