当前位置:  开发笔记 > 编程语言 > 正文

使用多个UserParameters从CodePipeline调用Lambda

如何解决《使用多个UserParameters从CodePipeline调用Lambda》经验,为你挑选了1个好方法。

本教程介绍如何从CodePipeline调用Lambda传递单个参数:

http://docs.aws.amazon.com/codepipeline/latest/userguide/how-to-lambda-integration.html

我已经构建了一个需要获得2个参数的slackhook lambda:

webhook_url

信息

通过CodePipeline编辑器传入JSON会导致JSON块被发送,因此无法直接解析.

UserParameter传入:

{
  "webhook":"https://hooks.slack.com/services/T0311JJTE/3W...W7F2lvho",
  "message":"Staging build awaiting approval for production deploy"
}

Event有效内容中的用户参数

UserParameters: '{
  "webhook":"https://hooks.slack.com/services/T0311JJTE/3W...W7F2lvho",
  "message":"Staging build awaiting approval for production deploy"
}'

当尝试直接在CLoudFormation中应用多个UserParameters时,如下所示:

Name: SlackNotification
  ActionTypeId:
    Category: Invoke
    Owner: AWS
    Version: '1'
    Provider: Lambda
  OutputArtifacts: []
  Configuration:
    FunctionName: aws-notify2
    UserParameters:
       - webhook: !Ref SlackHook
       - message: !Join [" ",[!Ref app, !Ref env, "build has started"]]
  RunOrder: 1

创建错误 - 配置必须只包含简单对象或字符串.

任何关于如何让多个UserParameters从CloudFormation模板传递到Lambda的猜测都将非常感激.

以下是lambda代码供参考:https: //github.com/byu-oit-appdev/aws-codepipeline-lambda-slack-webhook



1> wjordan..:

您应该能够将多个UserParameters作为单个JSON对象字符串传递,然后在收到时解析Lambda函数中的JSON.

这正是文档中的Python示例处理此案例的方式:

try:
    # Get the user parameters which contain the stack, artifact and file settings
    user_parameters = job_data['actionConfiguration']['configuration']['UserParameters']
    decoded_parameters = json.loads(user_parameters)

类似地,JSON.parse在Node.JS中使用应该可以正常工作,以将JSON对象字符串(如事件有效负载示例中所示)解析为可用的JSON对象:

> JSON.parse('{ "webhook":"https://hooks.slack.com/services/T0311JJTE/3W...W7F2lvho", "message":"Staging build awaiting approval for production deploy" }')
{ webhook: 'https://hooks.slack.com/services/T0311JJTE/3W...W7F2lvho',
  message: 'Staging build awaiting approval for production deploy' }

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有