标签: aws-cloudformation

如何使用CloudFormation在IAM中设置用户名和组名?

我创建了一个CloudFormation模板,我想创建IAM用户,为此,我使用了这个JSON字符串:

"CFNUser" : {
  "Type" : "AWS::IAM::User",
  "Properties" : {
    "LoginProfile": {
      "Password": { "Ref" : "AdminPassword" }
    }
  }
},
Run Code Online (Sandbox Code Playgroud)

然后对于组我使用了这个:

"CFNUserGroup" : {
  "Type" : "AWS::IAM::Group"
},
Run Code Online (Sandbox Code Playgroud)

创建堆栈后,我得到以下内容:

用户名 - IAMUsers-CFNUser-E1BT342YK7G6

组名 - IAMUsers-CFNUserGroup-1UBUBRYALTIMI

所以我的问题是,如何在这里设置用户名?团体名称一样吗?

aws-cloudformation amazon-iam

14
推荐指数
1
解决办法
3256
查看次数

从云信息模板初始化时,有没有办法标记根卷?

我正在通过云形成脚本创建一个实例.

我发现连接操作系统分区的唯一方法是通过"BlockDeviceMappings"属性.(我之前尝试过使用"Volumes"属性,但实例无法挂载,系统告诉我/ dev/sda已经映射并回滚了实例创建)

这是我的模板的相关部分:

  "Resources" :
  {
    "Ec2Instance" :
    {
      "Type" : "AWS::EC2::Instance",
      "Properties" :
      {
        "BlockDeviceMappings" :
        [{
          "DeviceName" : "/dev/sda",
          "Ebs" :
          {
            "VolumeSize" : { "Ref" : "RootVolumeSize" },
            "SnapshotId" :
            { "Fn::FindInMap" : [ "RegionMap",
              { "Ref" : "AWS::Region" }, "RootVolumeSnapshotId" ]
            }
          }
        }],
        ...
       }
     }
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何标记Ebs卷,我在这里用"BlockDeviceMappings"属性创建?我没有找到明显的解决方案.

谢谢.

amazon-ec2 amazon-web-services aws-cloudformation

14
推荐指数
1
解决办法
5420
查看次数

我想在多个地区创建包含资源的CloudFormation堆栈.这可能吗?

是否可以创建单个Amazon CloudFormation堆栈模板,例如在ap-southeast-1中实例化AWS :: EC2 :: Instance,在us-west-2中实例化另一个AWS :: EC2 :: Instance?

我怀疑没有,但我还没有找到一个明确的是/否说堆栈不能拥有跨越多个区域的资源.

aws-cloudformation

14
推荐指数
3
解决办法
7723
查看次数

Cloudformation模板格式错误:每个DeletionPolicy成员必须是一个字符串

嗨,我正在尝试使用"IF"函数,就像在RDS DeletionPolicy的云形成文档中提到的那样,但由于某种原因,它说我的函数不返回字符串.

关于条件语句的AWS文档

这是条件:

 "DeletionPolicy" : {
    "Fn::If" : [
      "CreateProdResources",
      "Snapshot",
      "Delete"
    ]}
Run Code Online (Sandbox Code Playgroud)

错误是标题中的错误:

Template validation error: Template format error: Every DeletionPolicy member must be a string.
Run Code Online (Sandbox Code Playgroud)

其他尝试不起作用:

有了地图:

 "RdsDeletionPolicyMap" :{
      "production" : {
          "policy" : "Snapshot"
      },
      "staging" : {
          "policy" : "Delete"
      }
   }
Run Code Online (Sandbox Code Playgroud)

然后:

   "DeletionPolicy" : {
      "Fn::FindInMap" : [ "RdsDeletionPolicyMap", {"Ref": "RailsEnvironment"}, "policy" ]
   }
Run Code Online (Sandbox Code Playgroud)

和Simple "Ref": ...一样也不行.我非常怀疑这是一个关于cloudformation的错误

amazon-web-services aws-cloudformation

14
推荐指数
1
解决办法
3041
查看次数

AWS CloudFormation应用程序负载均衡器 - 如何将HTTP侦听器重定向到HTTPS侦听器?

我正在尝试为ALB编写一个CloudFormation模板,但我仍然想要将ALB的HTTP侦听器流量重定向到HTTPS侦听器.文档仅提及转发/重定向到目标组.

我知道使用Web界面(AWS控制台)是可以实现的,我想避免这种情况.在服务器上处理它也不适合我.

这个ALB的功能是不是在CloudFormation中实现,而是存在于Console中?

https http-redirect aws-cloudformation elastic-load-balancer aws-load-balancer

14
推荐指数
1
解决办法
7810
查看次数

堆栈处于 UPDATE_COMPLETE_CLEANUP_IN_PROGRESS 状态且无法更新

我正在尝试在 Cloud9 中部署 Lambda 函数,但失败了。

当我右键单击该函数并单击“部署”时,我会看到Application deployment failed,然后出现一个弹出窗口:

AWS CloudFormation Deployment Errors
Stack:arn:aws:cloudformation:* is in UPDATE_COMPLETE_CLEANUP_IN_PROGRESS state and cannot be updated.
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-cloudformation aws-lambda aws-cloud9

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

如何将cloudwatch警报连接到lambda函数

如何将aws云监视警报连接到lambda函数调用?

我通过AWS CloudFormation模板以编程方式向我们创建的作为云形成堆栈一部分的ELB添加云监视警报.我希望将警报发送到lambda函数,该函数将消息发布到Slack.虽然警报有效,并且SNS配置对我来说似乎是正确的,但从不调用lambda函数.

lambda函数遵循以下示例:

https://medium.com/cohealo-engineering/how-set-up-a-slack-channel-to-be-an-aws-sns-subscriber-63b4d57ad3ea#.x2j9apedu

http://inopinatus.org/2015/07/13/hook-aws-notifications-into-slack-with-a-lambda-function/

lambda函数工作,我可以通过aws控制台发送测试数据,从而发送一条消息发送给Slack.

使用看起来正确的云监控警报创建负载均衡器:

在此输入图像描述

警报似乎配置为将警报发送到正确的SNS主题:

在此输入图像描述 在此输入图像描述

有一个SNS订阅该主题,lambda函数作为它的端点:

在此输入图像描述

警报触发时会触发警报并将消息发送到正确的主题:

在此输入图像描述

但是从不调用lambda函数:

在此输入图像描述

但是,如果我在lambda函数上手动添加SNS主题作为"事件源",则会在警报触发和发布Slack消息时调用它.

在此输入图像描述

我是否误解了如何将云监视报警连接到lambda函数?或者我缺少一个小细节?

如果这种方法不起作用,并且将lambda函数连接到云监视警报的唯一方法是将SNS主题添加为"事件源",通过AWS CloudFormation模板执行此操作的适当方法是什么?我没有看到修改现有资源的明显方法,例如固定的lambda函数.

这是我的CloudFormation模板:

"GenericSlackAlertSNSTopic" : {
    "Type" : "AWS::SNS::Topic",
    "Properties" : {
        "Subscription" : [ {
            "Endpoint" : "arn:aws:lambda:us-east-1:[...]:function:snsToSlack",
            "Protocol" : "lambda"
        } ]
    }
},
"ELBNoTrafficAlarm": {
    "Type": "AWS::CloudWatch::Alarm",
    "Properties": {
        "Namespace" : "AWS/ELB",
        "AlarmDescription": "Alarm for no apparent traffic on an ELB.",
        "AlarmActions": [{
            "Ref": "GenericSlackAlertSNSTopic"
        }],
        "InsufficientDataActions": [{
            "Ref": "GenericSlackAlertSNSTopic"
        }],
        "MetricName": "RequestCount",
        "Statistic": "Sum",
        "Dimensions" : [ {
            "Name" : "LoadBalancerName",
            "Value" …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-sns aws-cloudformation amazon-cloudwatch aws-lambda

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

AWS SAM API与Cognito用户池授权程序

如何使用AWS SAM创建API,使用Cognito User Pools授权程序进行授权?

Theres AWS :: ApiGateway :: Authorizer.但......

{
  "Type" : "AWS::ApiGateway::Authorizer",
  "Properties" : {
    "AuthorizerCredentials" : String,
    "AuthorizerResultTtlInSeconds" : Integer,
    "AuthorizerUri" : String,
    "IdentitySource" : String,
    "IdentityValidationExpression" : String,
    "Name" : String,
    "ProviderARNs" : [ String, ... ],
    "RestApiId" : String,
    "Type" : String
  }
}
Run Code Online (Sandbox Code Playgroud)

它看起来像RestApiId是指使用此授权程序的API?但是使用AWS SAM,我的API被定义为

Resources:
  Ec2Index:
    Type: AWS::Serverless::Function
    Properties:
      Handler: ec2/index.handler
      Runtime: nodejs6.10
      CodeUri: ./src
      FunctionName: 'ApiEc2IndexHandler'
      Description: 'List EC2 resources'
      Timeout: 30
      Role: 'arn:aws:iam::598545985414:role/awsmanagement-lambda-management'
      Events:
        Ec2Index:
          Type: …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-cloudformation amazon-cognito

13
推荐指数
2
解决办法
4170
查看次数

S3 存储桶中的 AWS Lambda 代码未更新

我正在使用 cloudformation 在启用版本控制的 S3Bucket 中使用代码创建我的 lambda 函数。

"MYLAMBDA": {
      "Type": "AWS::Lambda::Function",
      "Properties": {
        "FunctionName": {
          "Fn::Sub": "My-Lambda-${StageName}"
        },
        "Code": {
          "S3Bucket": {
            "Fn::Sub": "${S3BucketName}"
          },
          "S3Key": {
            "Fn::Sub": "${artifact}.zip"
          },
          "S3ObjectVersion": "1e8Oasedk6sDZu6y01tioj8X._tAl3N"
        },
        "Handler": "streams.lambda_handler",
        "Runtime": "python3.6",
        "Timeout": "300",
        "MemorySize": "512",
        "Role": {
          "Fn::GetAtt": [
            "LambdaExecutionRole",
            "Arn"
          ]
        }
      }
    }
Run Code Online (Sandbox Code Playgroud)

lambda 函数创建成功。当我将新的工件 zip 文件复制到 s3bucket 时,会使用新版本的“S3ObjectVersion”字符串创建该文件的新版本。但是 lambda 函数代码仍然使用旧版本。

aws cloudformation 的文档清楚地说明了以下内容

要更新源代码位于 Amazon S3 存储桶中的 Lambda 函数,您必须通过更新 S3Bucket、S3Key 或 S3ObjectVersion 属性来触发更新。单独更新源代码不会更新函数。

是否有额外的触发事件,我需要创建以更新代码?

aws-cloudformation aws-lambda

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

CloudFormation 参数模板错误:参数不是字母数字

我在用

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

然后面对“CloudFormation Parameter Template Error : Parameter is non alphanumeric”错误,以下代码显示了我的params.jsontemplate.json文件。

参数文件

[
    {
        "ParameterKey": "name_for_abc",
        "ParameterValue": "abc"
    }
]
Run Code Online (Sandbox Code Playgroud)

模板文件

{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Transform": "AWS::Serverless-2016-10-31",
    "Description": "some text",
    "Parameters": {
        "name": {
            "Description": "name_of_abc",
            "Type": "String"
        }
    },
    "Resources": {
        "LambdaFunctionAuto": {
            "Type": "AWS::Serverless::Function",
            "Properties": {
                "Environment": {
                    "Variables": {
                        "name_of_abc": {
                            "Ref": "name_of_abc"
                        }
                    }
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

parameters amazon-web-services aws-cloudformation

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