AWS CloudFormation 用户数据传递

2024-01-12

如何将参数输入数据传递给 AWS cloudformation 中的用户数据。 示例:我有一个参数 EnvType,在运行 CFT 时我将传递“qa”作为该参数的输入。我希望读取此参数值“qa”并将其传递给用户数据,以便我可以将其写入实例磁盘。

Parameters: {
    "EnvType": {
        "Description": "Environment type",
        "Type": "String",
        "AllowedValues": [
            "prod",
            "qa"
        ]
    }

我尝试在用户数据中使用它:

export STACK_TYPE='",
{
"Ref": "EnvType"
},
"'\n",
"echo \"$STACK_TYPE\" > stacktypes\n

我想将 EnvType 的输入附加到实例中名为 stacktypes 的文件中。


你必须使用Fn::Join实际将用户数据字符串与 CloudFormation 的其他内在函数的结果“连接”(例如Ref)。下面是它是如何完成的示例:

...  
  "MyInstance": {
    "Type": "AWS::EC2::Instance",
    "Properties": {
      "UserData": {
        "Fn::Base64": {
          "Fn::Join": [
            "",
            [
              "#cloud-config\n\nrepo_upgrade: all\n\n\nwrite_files:\n- path: /root/init.sh\n  owner: root:root\n  permissions: '0755'\n  content: |\n    #!/bin/bash\n\n    EC2_INSTANCE_ID=`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id`\n    aws cloudformation signal-resource --stack-name ",
              {
                "Ref": "AWS::StackName"
              },
              " --status SUCCESS --logical-resource-id AutoScalingGroup --unique-id $EC2_INSTANCE_ID --region ",
              {
                "Ref": "AWS::Region"
              }
            ]
          ]
        }
      }
      ...
    }
  }
...

这可能是一项乏味的任务,我们在内部开发了一个工具来处理 UserData 的生成,但我知道有一些开源工具可以提供帮助(例如:https://github.com/cloudtools/troposphere https://github.com/cloudtools/troposphere).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWS CloudFormation 用户数据传递 的相关文章

  • 如何在docker的keycloak中添加SSL

    我在将 SSL 证书添加到在 docker 上运行的 Keycloak 时遇到问题 我通过负载均衡器从 AWS EC2 获得了 SSL 证书 但不知道如何将其添加到 docker 上的 Keycloak 中 我正在通过谷歌搜索 但尚未找到任
  • 使用 python boto3 管理 Route53 中具有多个 IP 的 A 记录

    我的route53中有一条A记录 后面有多个IP 例子 A record dummy xyz com 点IPs 1 1 1 1 2 2 2 2 和 3 3 3 3路由策略 Simple 我使用下面的代码来更新单个 IP 的记录 Change
  • 输出和导出之间的区别

    在 CloudFormation 中 我们能够从模板输出一些值 以便其他进程 堆栈等可以检索它们 这通常是某个名称 可能是 URL 或在堆栈创建 部署 过程中生成的名称等 我们还能够从模板 导出 返回值作为 输出 与 导出 之间有什么区别
  • 如何在我的 AWS EC2 实例上安装特定字体?

    我有一个在 AWS EC2 Amazon Linux Elastic Beanstalk 实例上运行的 Python 应用程序 该实例需要某些特定字体才能生成输出 并且想知道如何在部署或实例启动过程中安装它们 我的代码在本地计算机 OS X
  • 从本地计算机连接到 AWS 上的 Neptune

    我正在尝试从办公室的本地计算机连接到 AWS 实例中的 Neptune DB 就像从办公室连接到 RDS 一样 是否可以从本地计算机连接 Neptune 数据库 Neptune 数据库是否公开可用 开发人员有什么方法可以从办公室连接 Nep
  • 每次在我的 AWS SQS 目标上推送通知时如何触发事件?

    我正在将 AWS SQS 用于 Amazon MWS 订单 API 每当有人从已将我添加为其开发人员的卖家帐户订购时 亚马逊都会将通知发送到我的 AWS SQS 应用程序 我可以从那里提取通知 但为此 我必须创建一个调度程序来提取通知 我是
  • 如何将域添加到 aws 上的现有 SSL 证书

    我有一个与 Amazon Web Services 上的负载均衡器关联的 SSL 证书 我想在该证书上有一个额外的域 我的问题是 是否可以向 aws 上现有的 ssl 证书添加额外的域 我发现您可以在创建证书时添加其他名称 但我不知道如何使
  • 如何修改 Amazon RDS 实例的 my.ini 参数

    在启动 MySQL 5 5 RDS 实例时 Amazon 使用默认参数组来配置 my ini 参数 但控制台不允许我修改它们 我怎样才能实现这个目标 例如默认将存储引擎设置为MyISAM或设置字符集 此处记录了这一点 http aws am
  • 如何在PHP中将图像从内存上传到AWS S3?

    所以我目前有一个使用 AWS S3 上传图像的上传系统 这是代码 Upload image to S3 s3 Aws S3 S3Client factory array key gt mykey secret gt myskey try s
  • 通过 boto3 承担 IAM 用户角色时访问被拒绝

    Issue 我有一个 IAM 用户和一个 IAM 角色 我正在尝试将 IAM 用户配置为有权使用 STS 承担 IAM 角色 我不确定为什么收到 访问被拒绝 错误 Details IAM 角色 arn aws iam 123456789 r
  • 如何在AWS策略中提供多个StringNotEquals条件?

    我正在尝试编写 AWS S3 存储桶策略 拒绝所有流量 除非来自两个 VPC 的流量 我正在尝试编写的策略如下所示 两者之间有逻辑与StringNotEquals 除非这是无效的政策 Version 2012 10 17 Id Policy
  • AWS lambda 是否保证将函数更新到新版本时不会出现停机?

    默认情况下 AWS 使用LATEST更新了最新 lambda 版本的别名 我假设执行以下步骤 Now LATEST别名点版本 5 用户部署新版本的 lambda 在部署新版本时 LATEST别名仍然指向版本 5 部署完成后 Lambda 只
  • AWS DynamoDB 写后读一致性 - 理论上它是如何工作的?

    大多数nosql解决方案仅使用最终一致性 并且考虑到DynamoDB将数据复制到三个数据中心 如何保持写后读一致性 解决此类问题的通用方法是什么 我认为这很有趣 因为即使在 MySQL 复制中 数据也是异步复制的 我将详细告诉您 Dynam
  • Amazon EC2 Auto Scaling CPU 利用率警报 - 数据不足

    因此 我一直在 Python 中使用 Boto 来尝试配置基于 CPUUtilization 的自动缩放 或多或少与本示例中指定的完全相同 http boto readthedocs org en latest autoscale tut
  • 在 Elastic Beanstalk 中禁用自动安全组命名

    创建新环境时 Beanstalk 往往会使用随机且非常大的字符串 例如 awseb e nhmvcuvtjh stack AWSEBSecurityGroup 1R8CUK434DLPG 来污染我们的安全组命名约定 这些字符串之后无法更改
  • ElasticBeanstalk Java,Spring 活动配置文件

    我正在尝试通过 AWS ElasticBeanstalk 启动 spring boot jar 一切正常 配置文件为 默认 有谁知道如何为 java ElasticBeanstalk 应用程序 不是 tomcat 设置活动配置文件 spri
  • 在 Python 2.7 中出现“ImportError:无法导入名称 HTTPSConnection”错误

    我正在尝试在 AWS ElasticBeanstalk 中部署 django 当我按照所示步骤操作时here http docs aws amazon com elasticbeanstalk latest dg create deploy
  • 如何授予轮换 Lambda 对 AWS Secrets Manager 的访问权限

    使用无服务器框架 我正在尝试构建定期轮换秘密的 Lambda 函数 https docs aws amazon com secretsmanager latest userguide rotating secrets html存储在 AWS
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • Nginx url 限制 502 网关

    我有一个问题 但我接受绕过此功能的其他建议 基本上 我在 get 请求中向我的服务器发送大约 3000 个字符的大行文本 然后服务器将其作为 url 中的参数发送到谷歌翻译 问题 当 url gt 1900 个字符时 Nginx 会抛出 5

随机推荐

  • 运行时将属性注入模块名称空间

    当导入我正在编写的 python 模块时 我想根据同一模块中定义的字典的内容为该模块创建一组属性 这是模块中字典的一小部分 list of constellations 0 Constellation And Andromeda 1 Con
  • Excel 公式中的变音符号标准化,无需 VBA

    如何使用正则公式将变音符号 重音字符 替换为相应的字母字符 SUBSTITUTE A1 e 无需 VBA 对于大范围的大写和小写变音符号 如下所示 a A b B c C d D etc 对于 Excel 2019 您正在使用的版本 这是相
  • 如何将 Twitter Bootstrap 选项卡制作为表单向导?

    在我的 freemarker 页面中 我创建了 4 个选项卡 我想要的 如果用户位于第四个选项卡中 只有这样他才能看到提交按钮 当他位于第一个 第二个或第三个选项卡时 他可以看到下一个和上一个按钮 如何使用 jquery 或 javascr
  • Azure Active Directory 中本机应用程序和 Web 应用程序之间的确切区别是什么

    当我们在 Azure Active Directory 中注册应用程序以使用图形 api 时 我看到应用程序有两种类型 Web 应用程序和本机应用程序 创建 Web 应用程序时 需要两个值 1 登录 URL 和 2 应用程序 ID url
  • 测试产生随机结果的方法

    我想测试一下这个方法 ArrayList
  • 为什么内存使用量没有正确更新?

    Warning 此代码最终会耗尽浏览器选项卡的内存并使选项卡崩溃 在下面的fiddle http jsfiddle net x3d48ja0 3 我设置了一个泄漏大量内存并不断报告正在使用多少内存的进程 我正在使用 Performance
  • 带有 DocumentFilter 的 CellEditor 永远不会被调用

    我听不懂这个CellEditor与一个DocumentFilter按照我的意愿工作 当我输入唯一可编辑的列时 insertStringfrom PlainDocument 永远不会被调用 documentFilter 也不会被调用 我认为我
  • Nhibernate Linq In 子句

    是否可以让 Nhibernate linq 生成带有 In 子句的查询 例如 Where AnID in x y z 我不知道 nHibernate 在生成所有潜在 LINQ 查询方面的状态 但您应该能够使用 Contains 生成IN v
  • ARIA role="menuitem" 表示
  • 我找到了两种可能的解决方案 应用 role menuitem 为 li 标签 li li a some menuitem a li 应用 role menuitem 为 a tags li a some menuitem a li 我认为第
  • 是否可以从 Google Play 获取应用程序的下载次数?

    我正在尝试获取我上传到的应用程序的下载次数Google Play 我正在寻找一个 API 或类似的东西 它可以通过用户身份验证来检索下载次数 我不想要第三方应用程序 如 AppAnnie 如果它可以在 PHP 上那就太好了 而且我发现有一个
  • 递归 AJAX 调用是一个坏主意吗?

    我有一个简单的函数来提取一组模板 function getTemplates names done templates index if index index 0 if templates templates if index names
  • 为什么同时链接 sdl2 和 udev 会导致分段错误?

    我有以下非常愚蠢的 C 程序 include
  • 如何使用 Express 从一个端点发送多个查询?

    我试图多次查询我的数据库并构造一个对象 该对象将数据库中的每个响应存储在一个字段中 这是我的代码 router post search req res gt var collection db get collection styles v
  • SQL,外键约束出现错误信息

    IF EXISTS SELECT FROM INFORMATION SCHEMA TABLES WHERE TABLE NAME animal vaccinations DROP TABLE animal vaccinations IF E
  • ggplot2移动小平面布局

    我想手动 或自动 更改 R 中 ggplot2 图形的分面图的面板布局 我已经看到了注释和分面重新排序的解决方案 但没有看到这个具体问题 这是一个可重现的示例 library ggplot2 plot lt ggplot diamonds
  • 执行 ListViewItem 命令的附加行为

    当用户双击列表项时 我尝试使用附加行为在我的 ViewModel 中执行命令 我已经审阅了有关该主题的许多文章 并尝试创建一个简单的测试应用程序 但仍然遇到问题 例如 使用 MVVM 从 WPF ListView 项目触发双击事件 http
  • 更新文本文件中特定行中的特定字段

    下面是我可以更新我的书的数量的代码 但我似乎无法更新我的其他信息 如书名 作者 价格等 代码如下 if grep q bookname author BookDB txt then read p Update Qty to what new
  • 使用 Objective-C、C 或 C++ 广播到 Icecast / SHOUTcast

    我想在不使用自己的广播公司的情况下向 SHOUTcast 或 Icecast 服务器提供音频数据 因为我将在包括移动设备在内的各种平台上使用它 我需要协议描述 开源项目或示例 以便能够使用 Objective C C 或 C 将音频数据 来
  • 如何在向 self 发布表单时保留 GET 参数?

    我有一个带有一个 GET 参数的 URL 我正在尝试发布一个简单的表单 基本上是为了简单地向 URL 添加一个 GET 参数 当前网址 mysite com page php first 123 表单 HTML
  • AWS CloudFormation 用户数据传递

    如何将参数输入数据传递给 AWS cloudformation 中的用户数据 示例 我有一个参数 EnvType 在运行 CFT 时我将传递 qa 作为该参数的输入 我希望读取此参数值 qa 并将其传递给用户数据 以便我可以将其写入实例磁盘