在单独的调度程序cloudformation堆栈中使用最新的角色ARN

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

我们使用 cloudformation 来管理 AWS 部署。该部署由一个主要的整体服务组成,具有许多环境变量,位于 cloudformation 文件中。

我们想添加一个调度程序,在不同的cloudformation堆栈中管理,它运行相同的服务,具有相同的环境变量,但参数化以使用containerOverrides运行特定脚本:

Type: AWS::Scheduler::Schedule
Properties:
  [...]
  Target:
    [..]
    RoleArn: !Sub "arn:aws:iam::${AWS::AccountId}:role/app-${EnvName}-${AppServiceName}-task-role"

^^ 问题是 RoleArn。根据文档,这将在部署调度程序时使用最新的角色进行部署。

但是,当主任务中的环境变量发生更改(存储在角色中)时,我们希望调度程序使用这些变量,即:始终使用最新版本的角色 ARN。

我们已尝试:RoleArn:[...]:最新无济于事。

如何让这个cloudformation脚本始终使用最新版本的角色arn?

amazon-web-services aws-cloudformation scheduled-tasks
2个回答
0
投票
如何让这个cloudformation脚本始终使用最新版本的角色arn?

你不能。您必须手动修改调度程序模板以将其更新为最新角色。


0
投票
实际答案:TaskDefinitions 是有版本的,每个修订版都是不可变的;当没有指定版本时(如上所述),每个计划任务实例化将自动指向最新版本。

另一方面,IAM 角色是可变的,因此如果任务角色发生更改,它会自动拾取

    这仅适用于下次执行 - 即,如果有一个 cronjob 正在运行,并且进行了配置更改,则当前运行的 cronjob 将以相同的权限和任务定义完成执行
© www.soinside.com 2019 - 2024. All rights reserved.