![](/img/trans.png)
[英]AWS Step Function: ignore input from previous state, and use "Parameters" as input
[英]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.