我想用 CloudFormation 创建 Route53 HostedZone,所以我想检查一下 Route53 中关于 HostedZone 的一些信息是否存在。
在我的情况下,我需要检查资源是否存在,忽略资源创建。我该如何处理这个问题。
我的 CloudFormation 模板如下所示。
"myDNSRecord" : {
"Type" : "AWS::Route53::RecordSet",
"Properties" : {
"HostedZoneName" : { "Ref" : "HostedZoneResource" },
"Comment" : "DNS name for my instance.",
"Name" : {
"Fn::Join" : [ "", [
{"Ref" : "Ec2Instance"}, ".",
{"Ref" : "AWS::Region"}, ".",
{"Ref" : "HostedZone"} ,"."
] ]
},
"Type" : "A",
"TTL" : "900",
"ResourceRecords" : [
{ "Fn::GetAtt" : [ "Ec2Instance", "PublicIp" ] }
]
}
}
Run Code Online (Sandbox Code Playgroud) amazon-web-services aws-cloudformation devops infrastructure-as-code
任何使用 AWS CDK 的人都会遭受可怕的资源标识符。
堆栈/嵌套堆栈名称示例:
或资源名称示例:
这些标识符读起来很糟糕。是否有任何解决方法来覆盖这些标识符?
我试图设置资源的 ID/名称/标识符/别名。然而,似乎 cdk 或 cloudformation 本身正在生成这些字符串。
谢谢你的建议!
是否可以在AWS CloudFormation JSON模板中创建"订阅"资源而无需创建新的AWS::SNS::Topic?
在我的例子中,主题是在CloudFormation脚本之外创建的,我想创建一些订阅,涉及在脚本中创建的资源.
IE
"DbfExtractQueue": {
"Type": "AWS::SQS::Queue"
},
"EtlSubscription": {
"Type": "AWS::SNS::Subscription",
"Properties": {
"Endpoint": { "Fn::GetAtt": ["DbfExtractQueue", "Arn"] },
"Protocol": "sqs",
"TopicArn": { "Ref": "EtlNotificationTopicARN" }
}
},
Run Code Online (Sandbox Code Playgroud)
EtlNotificationTopicARN被传递到脚本中并表示SNS主题ARN.
我正在尝试通过CloudFormation创建Lambda通知,但是收到有关ARN格式错误的错误.
我的CloudFormation错误或者它还不支持Lambda预览.
{
"AWSTemplateFormatVersion": "2010-09-09",
"Parameters": {
"LambdaArn": {
"Type": "String",
"Default": "arn:aws:lambda:{some-region}:{some-account-id}:function:{some-fn-name}"
}
},
"Resources": {
"EventArchive": {
"Type": "AWS::S3::Bucket",
"Properties": {
"NotificationConfiguration": {
"TopicConfigurations": [
{
"Event": "s3:ObjectCreated:Put",
"Topic": {
"Ref": "LambdaArn"
}
}
]
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我推动这个CloudFormation时,我收到了消息:
The ARN is not well formed
Run Code Online (Sandbox Code Playgroud)
有没有人知道这意味着什么?我知道上面的例子已被修改,所以不使用我的实际 ARN,但在我的实际代码中,我直接从GUI复制了ARN.
此外,有趣的是我能够通过AWS控制台创建通知,因此我只是假设AWS CloudFormation尚不支持此功能(即使这并不十分清楚我在阅读文档时没有想到).
我想在一些Policy/Loadbalancers标签名称的参数Cloudformation json模板快捷方式中使用,如下所示:
"SomeScalingGroupName": {
"Type": "String",
"Default": {"Fn::Join": ["", ["Process-", {"Ref": "Env"}, "-Some-Worker-Name"]]}
},
Run Code Online (Sandbox Code Playgroud)
我得到错误:
模板验证错误:模板格式错误:每个默认成员必须是字符串.
所以我的问题是,在参数中使用函数连接的正确方法是什么?或者我还有其他办法吗?或者你有什么更好的建议来使用它?
谢谢!
我一直在网上寻找答案.
基本上,我们使用Swagger来启动一个API,它非常棒并且运行良好,但有一件事不起作用......当我们调用一个端点时,我们得到一个500错误(它不是500错误,我们提供的是AWS的一个.该错误指出"由于配置错误导致执行失败:对Lambda函数的权限无效"(https://youtu.be/H4LM_jw5zzs < - 这是来自其他用户的视频,我收到的错误).
我已经走了很多路,并找到了答案......它涉及使用AWS CLI,看起来有点像这样:
aws lambda add-permission \
--function-name FUNCTION_NAME \
--statement-id STATEMENT_ID \
--action lambda:InvokeFunction \
--principal apigateway.amazonaws.com \
--source-arn "arn:aws:execute-api:us-east-1:ACCOUNT_ID:API_ID/*/METHOD/ENDPOINT"
Run Code Online (Sandbox Code Playgroud)
这很棒,但我们正在使用CloudFormation来启动所有内容,我们希望这是自动化的.有没有更简单的方法来解决这个问题?CloudFormation中是否有某些内容可以为我们提供所需的资源政策?
我正在尝试这个问题,但是我今天已经开始工作了几个小时,这对我们的API版本来说有点阻碍,所以任何帮助都会非常感激.:)
amazon-web-services aws-cloudformation aws-lambda aws-api-gateway
我想我在这里试过所有的房产:
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html
无法检查此框:
我的配置目前:
CognitoUserPoolGeneral:
Type: AWS::Cognito::UserPool
Properties:
UserPoolName: general
Policies:
PasswordPolicy:
MinimumLength: 6
RequireLowercase: false
RequireNumbers: false
RequireSymbols: false
RequireUppercase: false
Schema:
- AttributeDataType: String
Name: preferredLocale
DeveloperOnlyAttribute: false
Mutable: true
Required: false
EmailVerificationMessage: "Here's your verification code: {####}. Please provide it inside the application."
EmailVerificationSubject: "subject"
Run Code Online (Sandbox Code Playgroud) amazon-web-services aws-cloudformation amazon-cognito aws-cognito
我已经设置了一个Cloudwatch规则事件,其中在完成上一个任务定义时启动了ECS任务定义.
我可以看到事件触发任务定义但是它失败了.
此失败的唯一可见性是在规则指标中,我在其中看到指标failedinnvocations.
问题,是否有任何日志可以查看触发器失败的原因?
我可以通过管理控制台手动设置规则,一切正常.
通过云信息模板设置规则时发生错误.
我比较了两个规则,两者都是相同的,除了角色.但是,两个角色具有相同的权限.
amazon-ec2 amazon-web-services amazon-ecs aws-cloudformation amazon-cloudwatch
CloudFormation 业余爱好者在这里。一直在网上查找,但找不到任何关于在我的 RDS 实例通过 CloudFormation 建立后我将如何创建表的参考资料。是否可以指定一个 Lambda 来启动和创建所有表,或者指定一个要应用的 SQL 文件?这方面的标准模式是什么?
amazon-web-services amazon-rds aws-cloudformation aws-lambda
我正在创建一个完全无服务器的解决方案,它也将创建一个 s3 存储桶和 CloudFront。使用来自 bitbucket 管道的云形成模板
我还想为 CloudFront 创建 invalidate。
1)是否有可能在云形成中创建失效?
2)如果不是,那么我怎样才能从我的云形成中获取分布 ID,然后使用 aws cli 创建失效
CFDistribution:
Type: 'AWS::CloudFront::Distribution'
DependsOn: UIBucket
Properties:
DistributionConfig:
Aliases:
- !Sub "${AppSubDomain}.${SSMDomain}"
Origins:
- DomainName: !GetAtt UIBucket.DomainName
Id: S3BucketOrigin
S3OriginConfig:
OriginAccessIdentity: !Join
- ''
- - 'origin-access-identity/cloudfront/'
- !Ref CFOriginAccessIdentity
Comment: !Sub 'CloudFront origin for ${AppSubDomain}.${SSMDomain}'
DefaultCacheBehavior:
AllowedMethods:
- GET
- HEAD
- OPTIONS
TargetOriginId: S3BucketOrigin
ForwardedValues:
QueryString: 'false'
Cookies:
Forward: none
ViewerProtocolPolicy: redirect-to-https
DefaultRootObject: index.html
Enabled: 'true'
HttpVersion: http2
PriceClass: PriceClass_All
ViewerCertificate:
AcmCertificateArn: !Ref …Run Code Online (Sandbox Code Playgroud) aws-lambda ×3
amazon-ec2 ×1
amazon-ecs ×1
amazon-rds ×1
aws-cdk ×1
aws-cognito ×1
devops ×1
json ×1