我创建了一个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
所以我的问题是,如何在这里设置用户名?团体名称一样吗?
我正在通过云形成脚本创建一个实例.
我发现连接操作系统分区的唯一方法是通过"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 CloudFormation堆栈模板,例如在ap-southeast-1中实例化AWS :: EC2 :: Instance,在us-west-2中实例化另一个AWS :: EC2 :: Instance?
我怀疑没有,但我还没有找到一个明确的是/否说堆栈不能拥有跨越多个区域的资源.
嗨,我正在尝试使用"IF"函数,就像在RDS DeletionPolicy的云形成文档中提到的那样,但由于某种原因,它说我的函数不返回字符串.
这是条件:
Run Code Online (Sandbox Code Playgroud)"DeletionPolicy" : { "Fn::If" : [ "CreateProdResources", "Snapshot", "Delete" ]}
错误是标题中的错误:
Template validation error: Template format error: Every DeletionPolicy member must be a string.
Run Code Online (Sandbox Code Playgroud)
其他尝试不起作用:
有了地图:
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" ] }
和Simple "Ref": ...一样也不行.我非常怀疑这是一个关于cloudformation的错误
我正在尝试为ALB编写一个CloudFormation模板,但我仍然想要将ALB的HTTP侦听器流量重定向到HTTPS侦听器.文档仅提及转发/重定向到目标组.
我知道使用Web界面(AWS控制台)是可以实现的,我想避免这种情况.在服务器上处理它也不适合我.
这个ALB的功能是不是在CloudFormation中实现,而是存在于Console中?
https http-redirect aws-cloudformation elastic-load-balancer aws-load-balancer
我正在尝试在 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
如何将aws云监视警报连接到lambda函数调用?
我通过AWS CloudFormation模板以编程方式向我们创建的作为云形成堆栈一部分的ELB添加云监视警报.我希望将警报发送到lambda函数,该函数将消息发布到Slack.虽然警报有效,并且SNS配置对我来说似乎是正确的,但从不调用lambda函数.
lambda函数遵循以下示例:
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
如何使用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) 我正在使用 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 validate-template --template-body file://template.json
Run Code Online (Sandbox Code Playgroud)
然后面对“CloudFormation Parameter Template Error : Parameter is non alphanumeric”错误,以下代码显示了我的params.json和template.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)