小编Tho*_*lor的帖子

AWS Stepfunctions 结果路径 - 附加到 JSON 而不是嵌套

目前,我正在尝试创建一系列 Lambda,这些 Lambda 将从 StepFunctions 输入执行给定的特定负载。我一切正常;然而,这并不如我所愿。

我终于掌握了InputPath、ResultPath和OutputPath之间的区别。我现在遇到的唯一问题是允许 ResultPath “追加”返回的 JSON,而不是将其嵌套在有效负载中。

这是状态机:

{
  "StartAt": "GetDailyEmails",
  "States": {
    "GetDailyEmails": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:region:account:function:DailyEmailExtractor",
      "InputPath": "$.GetDailyEmailsInputs",
      "ResultPath": "$.TransformEmailsToCSVInputs.GetDailyEmailsResults",
      "Next": "TransformEmailsToCSV"
    },
    "TransformEmailsToCSV": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:region:account:function:EmailTransform",
      "InputPath": "$.TransformEmailsToCSVInputs",
      "End": true
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这是我提供的输入:

{
    "GetDailyEmailsInputs": {
        "secret_name": "email_password",
        "subject_contains": "stuff",
        "json_output_file_name": "test_emails",
        "bucket_name": "emails"
    },
    "TransformEmailsToCSVInputs": {
        "csv_output_file_name": "email_errors"
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我收到的输出:

{
  "GetDailyEmailsInputs": {
    "secret_name": "email_password",
    "subject_contains": "stuff",
    "json_output_file_name": "test_emails",
    "bucket_name": "emails"
  },
  "TransformEmailsToCSVInputs": {
    "csv_output_file_name": "apex_errors",
    "GetDailyEmailsResults": { …
Run Code Online (Sandbox Code Playgroud)

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

5
推荐指数
1
解决办法
5125
查看次数

列表对子列表的理解?

使用Python 3.0,我将如何创建100个索引的列表,如下所示:

grid_Sys = [['A0'],['A1'],['A2']....['A9'],['B0'],...[J9]]
Run Code Online (Sandbox Code Playgroud)

我理解如何通过使用ord()和chr()函数来增加字母的顺序.但是,我不明白在切换之前如何进行10索引chr(ord('A')+1) = B.

从本质上讲,我想达到一个可以做到这样的事情:

grid_Sys = [['A0','brown']...
Run Code Online (Sandbox Code Playgroud)

但是,这只是一个随机颜色的简单附加选项.

python list-comprehension list coordinates

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

使用列表理解在列表中查找 1 个元素?

我有一个关于 Python 最佳实践的快速问题。我已经看到在列表理解上使用 lambda + 过滤器函数的地方,但我想知道是否有更简单的方法来查找列表中的特定元素,而无需在整个列表中生成和迭代。

使用 AWS boto3 库,我通过使用列表理解来查询各种 get_x() 函数:

[i['domainName'] for i in domain_names['items'] if re.search(r'\b'+domain_name, i['domainName'])].pop()

[i['id'] for i in usage_plans['items'] if i['name']==f'{self.service}Usage'].pop()

如果没有找到一个项目,一个 IndexError 将被捕获并转发回给用户。由于这是在 AWS Lambda 函数中,我担心该函数的可扩展性和运行时计费。

我应该继续按照我的方式使用列表理解,还是有更好的方法?

python list-comprehension

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