amazon-web-services - AWS CloudFormation:仅在角色不存在时创建角色
问题描述
我们使用 Jenkins 来自动化我们的 EC 部署。
在第一次成功部署后,后续部署失败,因为 CF 抱怨我们尝试在 CF 模板中创建的角色已经存在。
在文档中发现如果角色资源被命名,这些更新是不可能的,我尝试删除名称,并收到与尝试创建角色的 Jenkins 用户相关的权限失败。
条件文档没有向我清楚地描述检查角色是否已经存在的条件语法应该是什么。
我曾想过使用 aws cli 在单独的 Jenkins 步骤中删除该角色,但被现有实例的行为吓跑了iam delete-role
(这些应该是不间断的更新)。
如何根据角色是否已存在有条件地创建角色资源?
我发现的最接近的问题是this,但它与 DynamoDB 有关。
用于创建角色的现有 YAML(策略定义上方和下方是样板文件):
Resources:
MySESRole:
Type: AWS::IAM::Role
Properties:
RoleName: MySESRole
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Action: "sts:AssumeRole"
Principal:
Service: ["ecs-tasks.amazonaws.com", "ecs.amazonaws.com"]
Effect: "Allow"
ManagedPolicyArns:
- arn:aws:iam::aws:policy/AmazonSESFullAccess
解决方案
推荐阅读
- nginx - nginx转发同域请求
- pyqt5 - PyQt5 获取具有多个值的输入
- puppeteer - 如何记录发送到 Puppeteer/Chrome 开发者的每个事件
- math - 使用 DrRacket(方案)在偶数个垫子上跳蛙
- azure - 如何将 Azure 测试计划与管道相结合?
- visual-studio - 如何使用 WSL 从 Bash 构建现有的仅限 Windows 的 Visual Studio 项目
- python - Python脚本调用api并返回json输出
- c# - pt-BR 的 Bot Framework Emulator 语言环境问题
- terminal - Iterm2 首选项:显示带有目录、日期和 git 的栏
- java - 一次不能发出一件物品,每次我发出一件物品时,它总是发出所有剩下的物品,而不是只发出一件物品