小编maf*_*ehx的帖子

AWS Step Function Lambda 错误捕获子句带有新字段的自定义错误

该设置是一个带有 Lambda 的 AWS Step Function,它会在 catch 子句中抛出错误,并应将它们添加到链末尾的错误处理程序 Lambda 的事件负载中。这是通过添加结果路径来完成的,例如

"Catch": [ {
  "ErrorEquals": [ "States.ALL" ],
  "ResultPath": "$.error-info",
  "Next": "Error Handler"
}]
Run Code Online (Sandbox Code Playgroud)

如文档中所述: https: //docs.aws.amazon.com/step-functions/latest/dg/concepts-error-handling.html

我现在需要创建包含新字段的自定义错误,比如说一个名为“lambdaName”的新字段。

为此,我将自定义一个错误类,如下所示:

class SFLambdaError extends Error {
    constructor(message,lambdaName){
        super(message)
        this.lambdaName = lambdaName
    }
}

Run Code Online (Sandbox Code Playgroud)

直接测试 Lambda,这会输出所需的新字段并且看起来不错:

Invoke Error    {"errorType":"SFLambdaError","errorMessage":"someNumber.replace is not a function","lambdaName":"testLambdaName","stack": (...)}
Run Code Online (Sandbox Code Playgroud)

但是,当在 Step Function 的流程中实现并输出到事件的“错误信息”中时,新字段会被删除,如下所示:

"error-info": {
    "Error": "SFLambdaError",
    "Cause": "{\"errorType\":\"SFLambdaError\",\"errorMessage\":\"someNumber.replace is not a function\",\"trace\":[\"SFLambdaError: someNumber.replace is not a function\",\"    at Runtime.exports.handler (/var/task/index.js:27:23)\",\"    at Runtime.handleOnce (/var/runtime/Runtime.js:66:25)\"]}"
Run Code Online (Sandbox Code Playgroud)

因此,SF 错误结果路径似乎只允许给出标准错误类字段。

我测试的解决方法是通过错误处理程序另一端的字符串化和解析来传递 errorMessage …

amazon-web-services aws-lambda aws-step-functions

10
推荐指数
1
解决办法
3182
查看次数

React Hooks:为什么将设置状态函数传递给子组件是不好的做法?

我有一个问题来提高我对 React 钩子的理解。它说,如果将设置的状态函数或钩子传递给孩子,这是不好的做法。所以应该只将一个处理函数传递给位于父级中的子级,然后在那里使用设置状态函数。当我在开发应用程序的许多工作部分后遇到这个问题时,我想知道为什么必须避免这种情况,因为它对我来说效果很好。

我希望你们在没有代码示例的情况下理解我的问题,如果我需要澄清,我会提供一些片段。

提前致谢!

javascript reactjs react-hooks

8
推荐指数
1
解决办法
1952
查看次数

使用 Pandas 数据框作为 Pydantic 中的类型

我正在使用pydantic并想要创建包含 pandas 数据帧的类。我在网上找了很长一段时间,但没有找到任何东西。我的自定义类型代码如下所示。我将数据帧的类型命名为 pd.DataFrame 但显然它不正确。有谁知道如何声明 pandas 数据框类型?

import pandas as pd
from pydantic import BaseModel


class SubModelInput(BaseModel):
    a: pd.DataFrame
    b: pd.DataFrame

class ModelInput(BaseModel):
    SubModelInput: SubModelInput
    a: pd.DataFrame
    b: pd.DataFrame
    c: pd.DataFrame

Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

python dataframe pandas python-typing pydantic

7
推荐指数
2
解决办法
1万
查看次数

如何将 React Hook 传递给子组件

我想将 React Hook 的 setter 传递给子组件。以便子组件中的按钮通过保存在父组件中的 setter 更新状态。我尝试了以下设置,但收到一条错误消息:

类型错误:setshowOptionPC 不是 onClick 函数

我的方法甚至可能吗?如果不是,我怎么可能使用 React Hook 来做这个结构。

下面是我的代码的简化版本:

import React, { useState } from "react";

function ChildComponent({ setshowChildOptionBC, setshowChildOptionPC }) (
  <div>
    <button
      onClick={() => {
        setshowChildOptionPC(false);
        setshowChildOptionBC(true);
      }}
    >
      BC
    </button>
    <button
      onClick={() => {
        setshowChildOptionPC(true);
        setshowChildOptionBC(false);
      }}
    >
      PC
    </button>
  </div>
);


function ParentComponent() {
  const [showOptionBC, setshowOptionBC] = useState(true);
  const [showOptionPC, setshowOptionPC] = useState(false);

  return (
    <div>
      <ChildComponent
        setshowChildOptionBC={setshowOptionBC}
        setshowChildOptionPC={setshowOptionPC}
      />
      {showOptionBC && <div>BC</div>}
      {showOptionPC && <div>PC</div>}
    </div> …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

4
推荐指数
1
解决办法
7529
查看次数