如何处理cloudformation函数名中的随机字符串

问题描述 投票:0回答:1

我构建了一个用于创建仪表板的 cloudformation 脚本。我遇到的问题是处理 lambda 函数名称。

在我的cloudformation脚本中

[ "AWS/Lambda", "Invocations", "FunctionName, "SC-accountNumber-*-FunctionName" ]

我替换了帐号和函数名称,并保留了通配符。还有其他一些东西。这不起作用。

我已经粘贴了函数的全名,仪表板工作正常。类似的东西

SC-0123456789-qw-sjdu5bd73hsn6-MyApiName

但我担心的是,当我们部署新版本时,随机字符串会发生变化。

如果类型对如何处理随机字符串产生影响,则该类型是公制的

amazon-web-services aws-lambda aws-cloudformation amazon-cloudwatch
1个回答
0
投票

不幸的是,Cloudwatch 在 FunctionName 维度中本身并不支持通配符 (*)。您只能指定确切的函数名称。

Lambda 函数似乎也是由 cloudformation 堆栈创建的,因此如果可能的话,最好对 lambda 函数名称进行硬编码。或者您可以从主堆栈导出它,然后将其导回仪表板堆栈

导出

Outputs:
  LambdaFunctionName:
    Description: "The name of the Lambda function"
    Value: !Ref MyLambdaFunction
    Export:
      Name: MyLambdaFunctionName

导入

Parameters:
  LambdaFunctionName:
    Type: String
    Default: !ImportValue MyLambdaFunctionName

您还可以创建一个SSM参数作为主堆栈的一部分,并将函数名称存储在那里,然后每当您部署新版本时,您也需要重新部署仪表板脚本。

最后您可以创建一个

Custom Resource
可以在
CloudFormation
堆栈(Dashbaord)创建或更新期间以编程方式查询函数名称。

© www.soinside.com 2019 - 2024. All rights reserved.