标签: aws-cloudformation

AWS :: CloudFormation :: Init它是如何工作的?

我们可以使用AWS :: CloudFormation :: Init在启动实例后执行命令并上传文件.但是有人知道这次行动的内部是什么(来自亚马逊方面)?

当我们传入模板时,文件或命令在什么时候传输到VM?这是Xen功能(通过特殊管道),还是通过网络?

"Resources": {
  "MyInstance": {
    "Type": "AWS::EC2::Instance",
    "Metadata" : {
      "AWS::CloudFormation::Init" : {
        "config" : {
          "packages" : {
            :
          },
          "sources" : {
            :
          },
          "commands" : {
            :
          },
          "files" : {
            :
          },
          "services" : {
            :
          },
          "users" : {
            :
          },
          "groups" : {
            :
          }
        }
      }
    },
    "Properties": {
      :
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

xen amazon-web-services aws-cloudformation

22
推荐指数
1
解决办法
1万
查看次数

如何在CloudFormation模板中将预先上载的SSL证书附加到ELB?

我一直在尝试在新的Cloud Formation模板上附加我目前正用于我的一个Elastic Load Balancing实例的SSL证书,但每次都得到:
找不到密钥的服务器证书
然后Cloudformation模板开始在那一点回滚.

            "Listeners" : [ 
         {
          "LoadBalancerPort" : "443",
          "InstancePort" : "80",
          "SSLCertificateId" : "start_certname_com",
          "Protocol" : "HTTPS"
         },...
Run Code Online (Sandbox Code Playgroud)

亚马逊要求使用SSL证书的ARN.我相信这是正确的,因为这是在当前设置ELB的下拉列表中出现的确切字符串,它在实例上占用443到端口80.

我在听众身上遗漏了什么?

ssl portforwarding amazon-web-services aws-cloudformation

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

使用Cloudformation在S3存储桶中创建文件夹

我可以使用cloudformation创建一个S3存储桶,但是想在S3存储桶中创建一个文件夹

<mybucket>--><myfolder>
Run Code Online (Sandbox Code Playgroud)

请让我知道用于在存储桶中创建文件夹的模板......两者都应该在同一时间创建...

我正在使用AWS lambda,如下所示

stackname = 'myStack'
client = boto3.client('cloudformation')
response = client.create_stack(
    StackName= (stackname),
    TemplateURL= 'https://s3.amazonaws.com/<myS3bucket>/<myfolder>/nestedstack.json',
    Parameters=<params>
)
Run Code Online (Sandbox Code Playgroud)

amazon-s3 aws-cloudformation

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

如何在cloudformation中更改默认的根EBS大小?[AWS]

考虑到在线数据的文档和解决方案数量较少,我决定解决有关更改通过云形态模板启动的EBS卷的默认大小的常见问题

默认情况下,启动的实例大小为8GB,如果您想知道如何根据您的偏好将其更改为某些内容,而不是您已找到正确的解决方案.

有两种方法可以避免这个问题

解决方案1:使用VolumeAttachment创建新卷(方式不正确)

"EBS" : {
   "Type" : "AWS::EC2::Volume",
   "Properties" : {
      "Size" : "100",
      "AvailabilityZone" : { "Fn::GetAtt" : [ "EC2Instance", "AvailabilityZone" ] }
   }
},

"MountPoint" : {
   "Type" : "AWS::EC2::VolumeAttachment",
   "Properties" : {
      "InstanceId" : { "Ref" : "EC2Instance" },
      "VolumeId"  : { "Ref" : "EBS" },
      "Device" : "/dev/sda1"
   }
}
Run Code Online (Sandbox Code Playgroud)

在这里,我创建了一个新卷并且厌倦了将它附加到不起作用的实例.(CF模板无法启动)

解决方案2.阻止设备映射(正确方式)

使用BlockDeviceMappings是正确的方法

 "BlockDeviceMappings": [
          {
            "DeviceName": "/dev/xvda",
            "Ebs": {
              "VolumeType": "io1",
              "Iops": "300",
              "DeleteOnTermination": "false",
              "VolumeSize": "30"
            }
          }
        ],
Run Code Online (Sandbox Code Playgroud)

不要将设备名称保留为/ dev/xvda1,否则它将无法正常工作.相反,如果所选操作系统是Amazon …

json amazon-ebs amazon-web-services aws-cloudformation

21
推荐指数
1
解决办法
1万
查看次数

如何使用云编队模板在S3存储桶上设置SSE-S3或SSE-KMS加密?

我正在尝试使用CloudFormation模板在AWS中启动S3 Bucket.该项目的一个要求是对存储桶进行加密.我一直试图通过CloudFormation模板找到一种方法来设置它(我已经阅读了所有可以获得SSE-S3,KMS,CFT和S3s的文档......).但所有迹象似乎都指向它只能通过控制台获得.

我担心我只是遗漏了一些明显的东西,我想知道是否有人知道如何使用CloudFormation模板(或至少是自动化的东西)将S3 Bucket的默认加密设置为SSE-S3或SSE-KMS?

encryption amazon-s3 amazon-web-services aws-cloudformation

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

AWS云形成模板 - 为模板中的堆栈提供标签

我们希望将公司特定标签用于我们在AWS中创建的用于计费目的的资源.我正在使用云形成模板来启动我们的Elasticbeanstalk实例和其他依赖于项目的资源.当我使用CloudFormation控制台创建堆栈时,它会在参数后面询问页面中的标签.我必须手动输入该堆栈的标签.但是有没有办法在云形成模板本身中指定那些标签(堆栈的标签)?这样Tag就会传播到其他资源?我知道云形成会自动使用堆栈名称标记资源.但我们需要公司特定的标签来向不同的部门收费.

amazon-web-services aws-cloudformation

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

在CloudFormation中创建ALB目标组

我正在尝试在CloudFormation中创建一个应用程序负载均衡器,其目标组将流量转发到EC2实例.以下是相关代码段,其中ELBSubnets,ECSCluster,taskdefinition和VpcId作为参数传入:

"EcsElasticLoadBalancer" : {
  "Type" : "AWS::ElasticLoadBalancingV2::LoadBalancer",
  "Properties" : {
    "Subnets" : { "Ref" : "ELBSubnets" },
    "SecurityGroups": [
      { "Ref": "ELBAccessSecurityGroup" }
    ]
  }
},
"LoadBalancerListener": {
  "Type": "AWS::ElasticLoadBalancingV2::Listener",
  "Properties": {
    "DefaultActions": [{
      "Type": "forward",
      "TargetGroupArn": { "Ref": "TargetGroup" }
    }],
    "LoadBalancerArn": { "Ref": "EcsElasticLoadBalancer" },
    "Port": 80,
    "Protocol": "HTTP"
  }
},
"TargetGroup": {
  "Type": "AWS::ElasticLoadBalancingV2::TargetGroup",
  "Properties": {
    "Name": { "Fn::Join": [ "-", [ { "Ref": "AWS::StackName" }, "TargetGroup" ] ] },
    "Port": 80,
    "Protocol": "HTTP",
    "VpcId": { "Ref": …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-ecs aws-cloudformation

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

将 lambda 目标角色添加到 Cloudformation 中的 AWS Eventbridge 规则失败

我正在尝试创建一个以 Lambda 函数作为目标的 AWS Eventbridge 规则。我可以很好地添加规则和目标,但是当我尝试通过RoleArnCloudformation 堆栈部署设置 lambda 权限时失败,并显示: RoleArn is not supported for target arn:aws:lambda:us-east-1:1234567890:function:contacts-lambda-consume-new-customer. (Service: AmazonCloudWatchEvents; Status Code: 400; Error Code: ValidationException; Request ID: xxxxx-ec5d-45e8-b45d-xxxxxx; Proxy: null)

这是我的 Cloudformation 堆栈代码:

  EventRuleNewCustomer: 
    Type: AWS::Events::Rule
    Properties: 
      Name: new-customer
      EventBusName: myEventBus
      # RoleArn: !Join ["", ["arn:aws:iam::",!Ref "AWS::AccountId", ":role/my-role"] ] #no error but doesn't add the permissions
      Description: "New customer event rule"
      EventPattern: 
        detail-type: 
          - "NewCustomer"
      State: "ENABLED"
      Targets: 
        - 
          Arn: !Join ["", ["arn:aws:lambda:" ,!Ref "AWS::Region", ":", !Ref "AWS::AccountId", ":function:contacts-lambda-consume-new-customer"] …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-cloudformation amazon-iam aws-lambda aws-event-bridge

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

设置aws cloudformation template-validate的功能

我正在尝试验证Cloudformation模板.我发出的命令是:

? aws cloudformation validate-template --template-body file://template.json
Run Code Online (Sandbox Code Playgroud)

然而,我得到的回应是:

"CapabilitiesReason": "The following resource(s) require capabilities: 
  [AWS::IAM::Role]", 
Run Code Online (Sandbox Code Playgroud)

遗憾的是,我无法找到任何设置功能的方法.

你如何设置能力?

amazon-web-services aws-cloudformation

19
推荐指数
1
解决办法
6825
查看次数

将现有的AWS资源整合到Cloudformation堆栈中

有没有办法将在cloudformation之外创建的现有AWS资源合并到现有cloudformation堆栈中?我想这样做,而不必在cloudformation堆栈中添加新资源并将现有资源的数据迁移到该新资源上。我看到AWS现在具有针对云形成堆栈的漂移检测。我想知道是否可以利用它来将现有资源合并到堆栈中。

amazon-web-services aws-cloudformation

19
推荐指数
3
解决办法
5932
查看次数