【发布时间】:2023-01-07 00:51:03
【问题描述】:
myFunction:
Type: AWS::Serverless::Function
Properties:
FunctionName: myFunction
Handler: myFunction.lambda_handler
myOtherFunction:
Type: AWS::Serverless::Function
Properties:
FunctionName: myOtherFunction
Handler: myOtherFunction.lambda_handler
我想运行一个 yq 命令,这样对于每个 Type:AWS::Serverless::Function 资源,我想获取 Handler 的值并在名为 Environment.Variables.HANDLER 的属性下创建另一个属性。
到目前为止,我有以下命令。yq '(.Resources.[] | select(.Type=="AWS::Serverless::Function") | .Properties.Environment.Variables.HANDLER) += (.Resources.[].Properties.Handler)' test.yaml
结果是
myFunction:
Type: AWS::Serverless::Function
Properties:
FunctionName: myFunction
Handler: myFunction.lambda_handler
Environment:
Variables:
HANDLER: myOtherFunction.lambda_handler # This is wrong
myOtherFunction:
Type: AWS::Serverless::Function
Properties:
FunctionName: myOtherFunction
Handler: myOtherFunction.lambda_handler
Environment:
Variables:
HANDLER: myOtherFunction.lambda_handler
Environment.Variables.HANDLER 替换为 myOtherFunction 的所有功能的处理程序。我如何分别从要替换的特定资源中获取价值?
【问题讨论】: