标签: amazon-cloudformation

是否可以通过 CloudFormation 模板填充 S3 存储桶?

我需要将我的 CF 模板(GraphQL 架构、Lambda 源等)的一些文件存储到 S3 存储桶中,该存储桶也(希望)在同一模板中定义,因为这似乎是直接删除内容之外的唯一方法进入模板来做。我也在尝试提前考虑 CI/CD,如果检查这些文件并且 CI/CD 工具适当地移动它们会很好。

有没有办法将文件从模板复制到 S3?大多数人如何使用 CI/CD 做到这一点?

deployment amazon-web-services continuous-integration amazon-cloudformation aws-cli

5
推荐指数
1
解决办法
2406
查看次数

如何在 CloudFormation 中连接实例

我们想为 AWS 中相当标准的堆栈创建一个模板。我们需要三层。

  1. 层:弹性负载均衡器

  2. 层:根据站点需求触发的警报创建/销毁多个Web服务器

  3. 层:数据库服务器

第 2 层上的实例应该知道数据库实例的主机名。理想情况下,我想获取数据库实例的私有 IP 并将其通过用户数据传递到 Web 服务器。

Fn::GetAtt不支持私有ip(只支持public)

我想另一种方法是构建堆栈,然后手动设置数据库私有 ip。虽然它确实使我们的设置不那么干净。理想情况下,我们希望在模板中描述所有内容。(即使这涉及通过user-data运行脚本)

有什么建议?

amazon-ec2 template amazon-web-services amazon-cloudformation

4
推荐指数
1
解决办法
939
查看次数

AWS Cloud Formation.Requires 功能:[CAPABILITY_IAM](子堆栈)

重要的

我正在动态构建 TemplateURL。

"TemplateURL" : { "Fn::Join" : ["", [  { "Ref" : "TemplateURL"}, "substack.template" ]] }
Run Code Online (Sandbox Code Playgroud)

我正在 AWS 控制台中运行 CloudFormation 模板。

直接运行堆栈

我从使用 IAM 资源的模板开始,控制台会在直接运行堆栈时提示我确认 IAM 功能。

小时候运行 Stack

然后我尝试从父堆栈调用相同的堆栈,但没有收到相同的提示。

然后堆栈失败并显示以下消息:

需要能力:[CAPABILITY_IAM]

研究

文档表明我可以通过多种方式运行 CF 脚本。有很多关于 CLI/API 和提供功能参数的文档,但似乎没有关于如何确保在通过控制台运行时应用它的信息。

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html

AWS CloudFormation 模板中的 IAM 资源

  • CF控制台
  • 命令行界面
  • 应用程序接口

我做了什么/我的想法

我现在通过论坛提出了一个问题,但没有回应(还):https : //forums.aws.amazon.com/thread.jspa?threadID=139160

我怀疑这是控制台中的一个错误,因为似乎没有任何关于如何通过控制台更改行为的文档,据我所知,这应该可以正常工作。

任何人都遇到过同样的问题,或者可以报告它对他们来说工作正常吗?

amazon-web-services amazon-cloudformation

4
推荐指数
1
解决办法
8115
查看次数

Amazon CloudFormation:如何获取特定子网的 ELB 私有 IP?

TL;DR - CloudFormation 模板是否可以将特定 ELB 的子网特定内部 IP 地址插入到该子网内实例的 UserData 中?


我们在 Amazon VPC 中拥有一组 EC2 Web 服务器,其中有六个子网,一个私有的和一个公共的,跨越 EU-West-1 的三个可用区中的每一个。所有服务器都配置了 CloudFormation。

我们想配置 Apache 的 mod_rpaf 来记录X-Forwarded-For标题(我们可以更改 LogFormat,但这并不容易转换为 PHP 或 Apache 错误日志;RPAF 对我们来说是最好的解决方案)。

据我所知,ELB 的架构方式意味着它在每个配置的可用区中都有一个“脚”,如果 ELB 被拆除或重新创建,这可能会改变。

Ubuntu 12.04 存储库中的 mod_rpaf 版本似乎尚未更新以允许该ProxyIPS指令使用 CIDR 表示法,并且理论上 ELB 的 IP 地址可以是我们三个公共子网中的任何地址。

剩下的一个解决方案是通过 Puppet 配置模块,使用实例的 UserData 生成的 hieradata。我知道在某种程度上您可以在 CloudFormation 模板中插入引用和变量,但我不确定是否可以有效地说“给我这个子网中这个 ELB 的私有 IP 地址”

amazon-ec2 amazon-web-services amazon-elb amazon-cloudformation

4
推荐指数
4
解决办法
2万
查看次数

在cloudformation中将公共IP分配给ec2?

在我在aws ec2上使用的vpc中,默认情况下不会获得公共IP地址。我正在尝试在参考此文档和一点文档后手动添加一个。

目前我的cloudformation模板包括

"netinterface"    : {
  "Type" : "AWS::EC2::NetworkInterface",
  "Properties" : {
    "SubnetId" : {"Ref": "Subnet"}
   }


},


"billingattributionapi" : {
  "Type"        : "AWS::EC2::Instance",
  "Properties"  : {

    "NetworkInterfaces" : [
      {
        "AssociatePublicIpAddress"  : "true",
        "DeviceIndex"               : "eth0",
        "NetworkInterfaceId"        : {"Ref" : "netinterface"},
        "DeleteOnTermination"       : "true"
      }

    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

省略了很多,但这就是与添加 ip 相关的所有内容。

我的问题是,文档说只有 DeviceIndex 为 eth0 的网络接口才能拥有公共 IP 地址,但使用 eth0 会导致错误:

    Encountered non numeric value for property DeviceIndex
Run Code Online (Sandbox Code Playgroud)

但是如果我将设备 ID 设置为 0 我会得到

The associatePublicIPAddress parameter …
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 amazon-web-services amazon-cloudformation

4
推荐指数
1
解决办法
8184
查看次数

如何使用 cloudformation 模板在 ECR 上拉取 docker 镜像

我想使用托管在 ECR 上的 docker 映像,并且我想使用 cloudformation 模板自动执行拉取操作。

我附加了具有 ECR 对 ec2 实例的完全访问权限的 IAM 角色,但它不起作用。

我正在做docker pull 1234567897.dkr.ecr.us-west-2.amazonaws.com/repo:tag,我收到错误Error response from daemon: Get https://1234567897.dkr.ecr.us-west-2.amazonaws.com/repo:tag/manifests/latest: no basic auth credentials

amazon-ec2 amazon-web-services amazon-cloudformation amazon-ecs

4
推荐指数
1
解决办法
7283
查看次数

CloudFormation/EC2 - 在模板中访问 EC2 实例的 IP 地址?

我正在尝试定义一个 Cassandra 节点集群,以及一些其他实例(一些中间件和应用程序服务器)。我希望能够将 Cassandra 节点的(内部)IP 地址添加到中间件的配置中,并将第一个 Cassandra 节点的 IP 添加到其他节点的配置中,作为种子节点。我可以完全从模板中实现这一点吗?(在AMI中调用脚本是可以的,集中配置或平台没有提供的任何类型的远程数据库都不是)

谢谢!安德拉斯

编辑:我忘了提到我还需要使用实例的 IP 更新相关的安全组。

amazon-ec2 amazon-web-services amazon-cloudformation

3
推荐指数
1
解决办法
9052
查看次数

使用 CloudFormation 创建 AWS VPC 终端节点

我目前正在研究使用 CloudFormation 在我们的堆栈中自动创建VPC 端点(目的是让我们的堆栈可以访问 S3 而不会创建出站流量)。问题是,我似乎找不到任何说明如何声明资源的文档。 此页面似乎充满了有关将 VPC 端点与 cloudformation 结合使用的警告,我一定会注意这些警告,但我似乎找不到有关 CFN 资源本身的任何文档。

amazon-web-services amazon-cloudformation amazon-vpc

3
推荐指数
1
解决办法
5316
查看次数

无法使用 AWS CloudFormation 将 EBS 驱动器挂载到 Ubuntu 机器(UserData 不起作用)

我有一个可以正常工作的 CloudFormation 模板,它创建了一个 AWS 实例 2 EBS 卷。卷在机器上通过 lsblk 可见。我只是在格式化和安装它们时遇到了麻烦。就好像 UserData 脚本根本没有运行一样。

这是一台 Ubuntu 14.04 机器。知道我可能做错了什么吗?

编辑:添加完整模板以供参考

{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Description": ".",
    "Parameters": {
        "KeyName": {
            "Description": "Name of an existing EC2 KeyPair to enable SSH access to the instance",
            "Type": "AWS::EC2::KeyPair::KeyName",
            "ConstraintDescription": "must be the name of an existing EC2 KeyPair.",
        },
        "InstanceType": {
            "Description": "EC2 instance type",
            "Type": "String",
            "Default": "t2.medium",
            "AllowedValues": [
                "t2.micro",
                "t2.small",
                "t2.medium",
                "c3.large",
                "c3.xlarge",
                "c4.large",
                "c4.xlarge"
            ],
            "ConstraintDescription": "must be a valid EC2 instance …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-cloudformation

3
推荐指数
1
解决办法
1198
查看次数

CloudFormation:如何获取给定区域中的密钥对列表

我有一个非常简单的 CF 模板,用于创建 EC2 实例。密钥对被指定为参数。我希望自动填充可能的密钥对列表。

Resources:
  MyInstance:
    Type: AWS::EC2::Instance
    Properties:
      AvailabilityZone: eu-west-2a
      ImageId: ami-0e80a462ede03e653
      InstanceType: t3.nano
      KeyName: !Ref SSHKey

Parameters:
  SSHKey:
    Type: String
    Description: name of the key pair to ssh into the instance
    AllowedValues:
      # populate automatically
Run Code Online (Sandbox Code Playgroud)

如何使用 CloudFormation 检索部署模板的区域中的密钥对列表?

amazon-cloudformation

3
推荐指数
1
解决办法
1436
查看次数