gpt4 book ai didi

aws-lambda - 如何抑制 aws lambda cli 输出

转载 作者:行者123 更新时间:2023-12-03 13:41:52 26 4
gpt4 key购买 nike

我想使用 aws lambda update-function-code命令来部署我的函数的代码。这里的问题是 aws CLI 总是在部署后打印出一些信息。该信息包含敏感信息,例如环境变量及其值。这是 Not Acceptable ,因为我将使用公共(public) CI 服务,并且我不希望任何人都可以使用该信息。同时,我不想通过将 AWS 命令​​中的所有内容指向 /dev/null 来解决这个问题。例如,在这种情况下,我将丢失有关错误和异常的信息,如果出现问题,这将使调试变得更加困难。我可以在这里做什么?
p.s. SAM 不是一个选项,因为它会迫使我切换到另一个框架并完全改变我正在使用的工作流程。

最佳答案

您可以通过用 jq 替换这些值来定位您想要抑制的输出
例如,如果您有 cli 命令的输出,如下所示:

{
"FunctionName": "my-function",
"LastModified": "2019-09-26T20:28:40.438+0000",
"RevisionId": "e52502d4-9320-4688-9cd6-152a6ab7490d",
"MemorySize": 256,
"Version": "$LATEST",
"Role": "arn:aws:iam::123456789012:role/service-role/my-function-role-uy3l9qyq",
"Timeout": 3,
"Runtime": "nodejs10.x",
"TracingConfig": {
"Mode": "PassThrough"
},
"CodeSha256": "5tT2qgzYUHaqwR716pZ2dpkn/0J1FrzJmlKidWoaCgk=",
"Description": "",
"VpcConfig": {
"SubnetIds": [],
"VpcId": "",
"SecurityGroupIds": []
},
"CodeSize": 304,
"FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function",
"Handler": "index.handler",
"Environment": {
"Variables": {
"SomeSensitiveVar": "value",
"SomeOtherSensitiveVar": "password"
}
}
}
您可以将其通过管道传递给 jq 并仅在键存在时替换值:
aws lambda update-function-code <args> | jq '
if .Environment.Variables.SomeSensitiveVar? then .Environment.Variables.SomeSensitiveVar = "REDACTED" else . end |
if .Environment.Variables.SomeRandomSensitiveVar? then .Environment.Variables.SomeOtherSensitiveVar = "REDACTED" else . end'
您知道哪些数据是敏感数据,并且需要进行适当的设置。您可以看到在 cli docs 中返回了哪些数据的示例,并且 API docs 也有助于理解结构的外观。

关于aws-lambda - 如何抑制 aws lambda cli 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56614404/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com