cron - 无法将 CRON 表达式设置为 cloudFormation 堆栈的参数

标签 cron aws-cloudformation

我在将 cron 表达式作为参数传递给堆栈时遇到问题。似乎参数的评估结果与预期不同。详情如下:

  1. 从 json 文件读取 cron 表达式。

    { "CronSchedule":""cron(0 19 * * * *)""}

  2. 我的 cloudformation 堆栈的代码片段。

      ScheduledRule: 
        Type: AWS::Events::Rule 
          Properties: 
          Description: ScheduledRule 
          Name: !Sub '${Environment}-${Platform}-${AppName}-${Prefix}-SCHEDULE-CAPTURE' 
          ScheduleExpression: !Sub ${CronSchedule} 
          State: "ENABLED"
    
  3. AWS 命令​​执行:

    aws --region us-east-1 cloudformation deploy --template-file ./deployment/aws/cfn/cloudwatch-resources.yml --stack-name QA-DUMMYAPP-CLOUD-WATCH --parameter-overrides 所有者=DUMMYAPP AppID=C4E7876D-1BF6-0090-868C-A8E82D4BCBCD BU=DJI AppName=DUMMYAPP Platform=T3 LambdaStackName=QA-DUMMYAPP-LAMBDA ApiGwResourcesStackName=QA-DUMMYAPP-API-GW-RESOURCES CloudWatchStackName=QA-DUMMYAPP-CLOUD-WATCH FeedStateMachineStackName =STACK_NAME 环境=QA CronSchedule="cron(0 19 * * * *)"--no-fail-on-empty-changeset

  4. 在AWS控制台上,cronShedule在参数选项卡上显示如下。

    CronSchedule = *cron(0 19 配置部署 pom.xml README.md 脚本 src 配置部署 pom.xml README.md 脚本 src 配置部署 pom.xml README.md 脚本 src )

问题似乎是 * 被替换为执行 cloudformation 命令的目录下的目录/文件名。

如有任何帮助,我们将不胜感激。

最佳答案

它对我来说可以像这样传递变量:

CronSchedule="'cron(0 19 * * * *)'"

关于cron - 无法将 CRON 表达式设置为 cloudFormation 堆栈的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63034020/

相关文章:

amazon-web-services - 如何在CloudFormation模板中同时使用Sub和GetAtt函数?

php - while 循环在 php 中不起作用 脚本在 Crontab 中运行

cron - 在Kubernetes中的Pod中运行Cronjob

amazon-web-services - 如何使用 API 网关的 CDK 声明 $default catch-all 路由?

amazon-web-services - 我可以使用 CloudFormation 模板更新 AWS Lambda 函数吗?

amazon-web-services - CloudFormation 模板中的 Elasticache 复制组 ID

linux - cron 脚本已执行但没有输出

docker - 使用docker-compose.yaml的动态crontab

PHP 从 SQL 表邮寄数据

python - 使用 Lambda 将 StackId 写入 S3