当从CFT调用其他CFT时,是否有方法指定子堆栈不会在失败时回滚
即,调用主CFT(调用时,可以使用--disable rollback或向CFN提供选项)->substack 1成功创建->substack 2失败
现在,substack 2回滚,我丢失了发生的事情的记录,主CFT就在那里失败了
在调用模板(主)或子模板(子堆栈)中是否有指定是否允许在CFT内部回滚的位置 是,您可以禁用云形成堆栈的故障回滚。
在创建堆栈时,您可以在选项菜单中找到高级部分
在展开的高级菜单中,您可以找到故障时
我正在使用ECS集群为我们的MSK Kafka集群构建一个托管在Amazon上的冗余模式注册表
SchemaRegistry任务定义需要定义一个主机名,该主机名在运行时对每个任务都是唯一的
SchemaRegistryTaskDefinition:
Type: AWS::ECS::TaskDefinition
Properties:
Family: !Ref SchemaRegistryTaskName
RequiresCompatibilities: [
当我尝试在SAM上部署包时,云形成控制台中的第一个状态是ROLLBACK\u in\u PROGRESS,之后它被更改为ROLLBACK\u COMPLETE
我已尝试删除堆栈并重试,但每次都出现相同的问题。
终端中的错误如下所示-
Sourcing local options from ./SAMToolkit.devenv
SAM_PARAM_PKG environment variable not set
SAMToolkit will operate in legacy mode.
Pl
我希望坚持“所有基础设施都是代码”的政策。然而,对于云信息的秘密,我看不到这样做的方法
SecretsManager要求您以纯文本形式指定SecretString。即使您从某处注入解密的值,纯文本字符串也会显示在模板视图的CF控制台中:/
在SSM中也不可能使用加密字符串。文档说,“AWS CloudFormation不支持创建SecureString参数类型。”
真的没有办法使用CloudFormation作为代码安全地管理机密吗 您可以使用CloudFormation中的资源创建Secret
我试图通过CloudFormation模板创建IAM角色和KMS密钥。我的要求是,首先我需要创建KMS密钥,获取密钥的ARN,然后在创建IAM角色时,通过该KMS ARN。这就是我的政策:
Resources:
myKey:
Type: AWS::KMS::Key
Properties:
Description: Key for encrypting S3 Buckets
Enabled: TRUE
KeyPolicy:
V
我有一个父cloudformation脚本,它启动两个子cloudformation脚本,每个脚本位于不同的帐户中。是否有一种方法可以从一个子堆栈中获取输出,并将它们用作另一个子堆栈中的输入,所有这些都是从父模板完成的?用户应该能够输入不同的帐号作为参数,因为此脚本将在多个不同的帐号上运行
父模板示例代码:
Resources:
ChildAccountA:
Type: Custom::StackA
Properties:
ServiceToken: exampl
文档没有指定如何设置bucket的名称。是否可以在cfn模板中执行此操作?您可以将BucketName指定为如下属性:
"Resources" : {
"bucketresource" : {
"Type" : "AWS::S3::Bucket",
"Properties" : {
"BucketName" : "stack-with-pictures"
}
}
}
我正在尝试创建一个CF脚本,它启动一个EC2实例并创建一个SNS主题,该主题使用该实例上的服务作为端点。我的问题似乎是时间问题:SNS主题将无法创建,因为端点没有响应。。。因为实例可能仍在初始化
我已经使用了DependsOn属性,但这并不起作用
我正在查看WaitCondition,但我想知道应该在哪里触发我的“信号”:当执行“userdata”脚本时,实例的httpd是否会被完全初始化并可从外部访问?还是我应该把信号放在另一个“地方”
或者我应该看看CreationPolicy?通过快速阅读
是否可以将标记添加到使用Cloudformation作为部署提供程序的Codepipeline创建的堆栈中?如前所述,您可以在模板配置文件中为堆栈设置标记。请注意,本文结尾演示了一个示例,其中配置文件有一个标记部分,带有“Department”:“Marketing”键值。谢谢!使用ParameterOverrides和TemplateConfiguration文件的组合是有效的。@NamitaModak您能分享一个相同的例子吗?
当两个不同队列上的相同度量值EnumberOfMessagesVisible的总和超过100时,我需要触发警报
2017年9月,answer表示,唯一的方法是使用Lambda函数获取两个值,并通过CloudWatch API将它们相加
在编写时,2月19日,它是可以使用的,因此不需要lambda函数或EC2实例。是否可以使用度量数学直接在CloudFormation中定义报警?实际上可以直接在CloudFormation中实现报警逻辑
假设有两个缩放策略ECSSCALEAUP和ECSSCALEA
我正在尝试使用KMS密钥对firehose发送到s3的记录进行加密。这样s3中的数据将被加密。我正在尝试使用cloudl文件和python实现它
我试着使用下面的代码。这条路对吗?我们使用lambda从该bucket读取加密文件,然后解密并发送到sftp服务器。
扩展的S3目标配置:
巴克特伦:!GetAtt s3bucket.Arn
缓冲点:
间隔秒:“60”
SizeInMBs:'10'
压缩格式:未压缩
加密配置:
KMSEncryptionConfig:
AWSKMSKeyARN:“ar
我正在尝试使用cloudformation模板创建Sagemaker笔记本实例。只是想看看是否有任何方法可以将codecommitrepo关联到该笔记本实例
我知道通过GUI使用sagemaker创建回购协议并将其关联起来的简单方法。。但是,我们是否可以通过模板进行关联
我在上找到了类似的信息,但它没有显示在cloudformation中。SageMaker现在支持通过cloudformation将代码存储库(包括CodeCommit和任何其他Git存储库)与笔记本实例相关联
以下是有关详细信息
无法使用Cloudformation为websocket路由集成请求定义集成类型“VPC链接”
我们不使用无服务器,但已有提供websocket功能的微服务。
这些微服务在专用网络上运行,仅通过连接到运行它们的EKS群集的VPC链路可用
所有与AWSAPI网关/WebSocket相关的在线云信息示例都使用无服务器集成
我可以使用AWS控制台手动配置集成类型“VPC链接”,但似乎不支持使用Cloudformation进行配置。
或者至少,如何实现这一点还不清楚
Cloudformation文档还明
我已经创建了一个CloudFormation模板,它成功地创建了一个IAM用户和一个AccessKey,并将该AccessKey分配给IAM用户。现在,我通过在CloudFormation模板的Outputs部分输出AccessKey的秘密来获取它
我想知道是否有一种更安全的方法来创建AccessKey并获取其相应的机密,而不必在输出部分以纯文本形式将其吐出
我对此感到有点困惑,因为AWS并没有太多关于这方面的信息,它的小文档直接相互矛盾。AWS建议执行我上面描述的“检索密钥的一种方法是将其放入
我想知道,将所有IAM角色和策略放在嵌套堆栈中的一个模板中以使它们更易于维护是否更有意义,或者好的做法是,无论出于何种原因,将策略放在创建资源的特定模板中都是有害的。哪条路更好。为了良好的秩序,我会用一个模板,因为这个想法似乎不错。我将感谢大家分享这方面的经验
谢天谢地,我们最近使用cloudformation对整个AWS基础设施进行了模板化。而且,我会让IAM角色和策略更靠近应用程序堆栈,而不是放在一个模板中。我会尽力解释我的理由
我们对每个TeamEnv都有一个单独的AWS帐户
What i
当通过cloudformation更新s3存储桶名称时,它会自动返回更新,请告知是否可以通过cloudformation更新s3存储桶名称以及漂移检测的工作原理 更新bucket name需要替换。这意味着CloudFormation将删除该bucket,然后使用新名称创建一个新的bucket。CloudFormation不会删除存储桶,除非它们是空的。这可能就是你的案子失败的原因。要确认这一点,请转到CloudFormation控制台页面,单击堆栈并转到events选项卡。看看一些最新的事件,
我在CloudFormation模板中定义了DHCPOptions,如下所示:
DhcpOptionSet:
Type: AWS::EC2::DHCPOptions
DependsOn:
- DnsInstance
- DnsSecondaryInstance
Properties:
DomainName: test.local
DomainNameServers:
- !GetAtt DnsInstance.PrivateIp
我有一个带有自定义资源的CF模板(由lambda函数支持)
我希望在更新堆栈时删除此自定义资源并创建新资源。
我怎样才能做到这一点
为了实现这一点,我们假设我有一个自定义资源,它只生成一个随机字符串。
大致如下所述:
所以我有一个资源,比如:
RandomSuffix:
Type: AWS::CloudFormation::CustomResource
DeletionPolicy: Delete
Properties:
Length: 3
如何通过AWS::Cognito::UserPool资源上的CloudFormation或通过其他方法选择“仅允许管理员创建用户”值?您可以通过AllowAdminCreateUserOnly进行设置。在“常规设置-策略”下设置后,应选中“仅允许管理员创建用户”
CognitoPool:
Type: AWS::Cognito::UserPool
Properties:
UserPoolName: TestPool
AdminCreateUserConfig:
AllowAdm
我正在尝试设置一个cloudwatch警报,如果使用CloudFormation向AWS ES群集发送的http请求超过5000个,我会看到我可以使用ElasticsearchRequests指标,这就是我目前的情况:
ClusterElasticsearchRequestsTooHighAlarm:
Condition: HasAlertTopic
Type: 'AWS::CloudWatch::Alarm'
Properties:
AlarmActio
我们使用serverless插件拆分堆栈将资源拆分为嵌套堆栈,并在serverless.yml中进行了如下设置
custom:
splitStacks:
perFunction: false
perType: true
perGroupFunction: false
webpack:
webpackConfig: ./webpack.config.js
includeModules: true
Serverless: [serverless-pl
我正在构建一个具有“静态”资源(API、lambda LayerVersions、DynamoDB表等)和“动态”资源(lambda函数、批处理和SQS队列)的大型应用程序
为了整齐地安排这一点,我创建了多个模板文件,其中一些引用了SAM的AWS::Serverless::Application类型
在一些“模块”(1级深层嵌套堆栈)中,我有lambda作为lambda代理,它们集成的API在StaticResourcesModule嵌套堆栈中声明
但是,这些lambda需要AWS::Serve
我已经创建了一个实时日志配置。
但是,我找不到如何将其连接到CloudFront发行版的。
创建实时日志记录的CloudFront模板是:
KinesisDataStream:
Type: AWS::Kinesis::Stream
Properties:
Name: my-stream
RetentionPeriodHours: 24
ShardCount: 1
RealTimeLogggingRole:
Type: AWS::IAM::Role
Properties:
Tags
我已经创建了bucket(使用bucket策略并将其公开),然后为这个bucket进行堆栈。然后我看到,在不添加过滤器的情况下,它的工作原理如下:
https://{cloundfrontUrl}/image.jpg
但是,当我尝试添加过滤器时,会出现如下错误:
https://{cloundfrontUrl}/fit-in/300x400/image.jpg
我正在尝试Terraform,并且正在将我的一个更有趣的CloudFormation堆栈翻译成TF。堆栈的关键部分包括以下声明,该声明指定了模板的自定义资源—一个Lambda,用于查询AMI列表并根据作为筛选器的描述为上下文选择最新的AMI
LatestAMI:
Type: Custom::LatestAMI
Properties:
ServiceToken: arn:aws:lambda:us-east-1:XXXXXXX:function:GetLatestA
我们目前正在使用云形成来创建一个粘合作业(通过codebuild和codepipeline)。有一件事我们被卡住了,那就是如何自动化胶水作业中的代码
我们当前相关的cloudformation模板如下所示:
MyJob:
Type: AWS::Glue::Job
Properties:
Command:
Name: glueetl
ScriptLocation: "s3://aws-glue-scripts//your-script-f
用例:在SAM YAML文件中为Lambda函数创建S3事件时,引用现有bucket
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: Sample SAM Template for sam-app
Globals:
Function:
Timeout: 900
MemorySize: 2048
Environ
另一位工程师在prod堆栈中的AMIFInder自定义资源中引入了deploydate参数,这意味着如果不尝试重新创建EC2实例,我们将无法再更新dev堆栈
是否可以纯粹基于DeployDate参数引入一个条件,以便我仍然可以为两个堆栈使用一个模板
FindAmiResource:
Type: 'Custom::FindAmiFunction'
Properties:
ServiceToken:
Fn::ImportValue:
!
试图打印以控制台Cloudfront域名,但输出似乎没有针对服务进行存储
resources:
Resources:
CloudFrontDistribution:
Type: AWS::CloudFront::Distribution
Properties:
DistributionConfig:
Origins:
- DomainName: ${self:custom.bucketName}.s3.amazonaws.com
我们有以下用于在aws和aws中国部署的堆栈策略
{
"Statement": [
{
"Effect": "Allow",
"Action": "Update:*",
"Principal": "*",
"Resource": "*"
},
我需要使用云形成模板将sns主题指定为目标
JobFailedAlert是sns主题的名称
我有这个模板rule.json,我得到了错误
错误:
Template validation error: Template error: instance of Fn::GetAtt references undefined resource SNSTopic
模板:
{
"Resources": {
"Rule": {
"Type" : "AWS::Events::Rule",
我有以下结构(基本上是样板)。我的问题是,我在父堆栈中定义的映射是否在子堆栈中可用,或者我是否需要复制它们?我知道我可以将参数传递给子堆栈,但我想知道是否会将mappng隐式传递给子堆栈,这样我就不必在每个子堆栈中复制它们了
ParentStack (Containing Mappings, Parameters)
ChildStack1
ChildStack2
不,他们不是
可以将嵌套栈视为独立堆栈,但它们的创建/更新/删除由父堆栈编制。
通过让父堆栈在将参数传递给子堆栈时执行F
我使用权杖和对流层来生成我的架构
在AWS批处理作业定义中,我希望参数化作业定义容器属性的环境:
环境是一个列表
但在权杖的背景下,我似乎不能这样声明:
self.JobDefinitionEnvironment = t.add_parameter(Parameter(
'JobDefinitionEnvironment',
Type='List<AWS::Batch::JobDefinition::Environment>'
))
self.JobDefinit
我在使用现有的书面cloudformation模板创建ECS任务服务堆栈时出错。创建ElasticLoadBalancer时出错,其状态如下:
子网xxxx中的可用IP空间不足。ELB要求每个子网中至少有8个可用IP地址。
我已经找到了这个错误的原因,因为我正在通过的子网的可用IP地址少于8个,但我不确定错误日志如何统计ELB在每个子网中需要8个可用IP地址
有人能告诉我如何找到IP地址限制以及如何更改它吗?在研究了ELB的AWS文档后,我找到了ELB限制的参考:
为确保负载平衡器可以正确扩展
CloudFormation提供了一种资源类型,用于在CloudFormation堆栈中创建AppSync API密钥。API密钥将过期。是否有一种简单的方法来定义CloudFormation中的轮换时间表?我看不到任何东西,但它似乎是如此明显的用例,以至于我不确定没有它的AWS::AppSync::ApiKey资源类型有什么好处
目前,我有一个按计划运行的lambda,用于生成新密钥并将其存储在SecretsManager中。这是可行的,但这是一个额外的步骤,我必须在第一次手动运行lambda
我有一个模板,它可以按预期工作,并创建一个S3 bucket和一些athena查询
问题是:
如何将S3 bucketname“Athenada162a”替换为第一步中创建的bucket名称
外部位置='s3://athenadata162a/optimized-data11/'
创建新bucket的代码如下所示
"myS3Bucket" : {
"Type" : "AWS::S3::Bucket"
},
按照建议,将代码更改为yaml,但仍然出现以下错误:
模板验
我正在使用serverless部署一个使用“管道”的Appsync API,用作API lambda函数。此插件用于部署具有“管道”功能的Appsync。我使用了文档中的描述,但是当我尝试在自己身上部署它时,出现了一个错误:
错误:CloudFormation模板无效:模板错误:Fn::GetAtt的实例引用了未定义的资源图QLDSMEINFO
functions:
graphlql:
handler: handler.meInfo
name: meInfo
custom:
我有一个使用API网关、Lambda和自定义域的CloudFormation堆栈。当我完全拆开堆栈并重新部署它时,我经常发现API网关处于一种状态,对于通过自定义域发出的每个API请求,它都返回“502坏网关”
以下是一些其他观察结果:
我仍然可以使用标准执行URL成功调用API(例如,您似乎正在构建无服务器应用程序。为此,我将使用无服务器应用程序模型(SAM):
切换后,自定义域名的声明如下所示:
MyApi:
Type: AWS::Serverless::Api
我想通过cloud formation模板创建一个Kinesis资源,但它不允许我提供“StreamName”作为资源的属性
"KinesisResource":{
"Type" : "AWS::Kinesis::Stream",
"Properties" : {
"ShardCount" : 1
"StreamName":"KinesisStream"
}
},
它显示“无法识别的属性”StreamName。
如何在模板中指定流名称。
谢谢
Nithya。显然,到目前为止,您无法指定流名称
这里的答案是:没有真正的帮助,因为我正在寻找设置物理名称,而不是逻辑名称。我希望在参数列表中设置一个参数,比如:
"ELBName": {
"Type": "String",
"Default": "xxx",
"Description": "The Production Number for this stack (e.g. xxx)"
}
然后
"LoadBalancerName": "prod" + {Ref: "ELBName"}
尽管直接连接是不可能的。有什么办法可以满
在将EFS卷ID传递到cloudformation模板时,我很难理解为什么这不起作用:
Parameters:
EFSFileSystem:
Description: EFS file system to mount
Type: AWS::EFS::FileSystem::Id
这也不起作用:
Parameters:
EFSFileSystem:
Description: EFS file system to mount
我正在尝试使用YAML创建AWS CloudFormation模板。我添加了一个UserPool资源,如下所示。应通过参数值获取用户池名称和id,即,如果参数paramUserPoolName的值为“Sample”,则:
UserPoolName=Sample
UserPool资源名称=SampleUserPool,即“paramUserPoolName+UserPool”的串联值
Parameters:
paramUserPoolName:
Type: String
Resourc
基于环境,我正在尝试设置变量的URL:如果prod,则我的URL应该是:
以下是我的情况:
Conditions:
IsEnvProd: Fn::Equals [ !Ref Env, 'prod' ]
IsEnvStage: Fn::Equals [ !Ref Env, 'stage' ]
以下是对其进行评估的地方:
Environment:
- Name: NODE_ENV
Value: !Ref NodeEnv
有没有办法知道在创建堆栈时使用了哪个IAM服务角色?我以前能够创建堆栈,但现在由于权限问题而失败,想知道是什么更改阻止了我创建堆栈。默认情况下,Amazon CloudFormation堆栈使用创建堆栈的用户的权限运行
或者,可以在堆栈创建期间指定IAM角色。如果用户具有使用该IAM角色的权限,则将使用该角色的权限创建堆栈
见:
可以使用获取堆栈使用的RoleARN。好的,如果堆栈在未使用用户权限的情况下运行-而是选择了IAM角色-我的问题是如何找到创建CF时选择的角色。更新的回答:使用描述堆栈
我试图使用AWS CloudFormation模板创建一个EC2实例,其中包含一些使用模板中的动态引用和跨堆栈引用生成的用户数据。AWS Systems Manager参数存储中存储了一个参数,其名称为名称:/MyCustomParameter和值为:Test1
其思想是将一个参数传递给模板堆栈(堆栈a),该堆栈引用另一个cloudformation堆栈(堆栈B)。堆栈B导出一个引用为“StackB::ParameterStoreName”的变量。堆栈A使用Fn::ImportValue:'St
我正在使用这个CloudFormation模板来设置jenkins服务器
我现在想向ELB添加一个SSL,并对其进行了以下修改:
MasterELBListener:
Type: AWS::ElasticLoadBalancingV2::Listener
Properties:
DefaultActions:
- Type: "redirect"
RedirectConfig:
Protocol: "HT
我正在尝试为AWS CloudFormation编写模板,但不知道如何开始。我在AWS上管理两个不同的域,并希望使用单个CNF模板为这两个域创建Windows服务器
例如,模板中的第一个问题应要求您为“域”参数选择域:
“abc.com”或
“123.com”
“WSUSGroup”参数模板中的第二个问题应该根据前面的答案为您提供不同的列表选项。我想根据我选择的域选择不同的WSUS组。例如:
若我为“域”参数选择“abc.com”,则列表应提供:
WSUS-ABC-US
WSUS-ABC-EU
我使用的是boto,我有一个模板,可以构建4个不同的SQS队列…基本上每个队列都有一个stage/prod和dead_字母,形成4个队列
如果我有4个预先存在的队列,它们已经在那里处理消息并完成它们的工作,那么我可以将它们作为现有资源导入一个新的堆栈。没问题
如果我有0个队列,并且希望使用该模板构建一个新的堆栈,那么我可以在堆栈上进行创建。那也没问题
在某些情况下,我有4个队列中的2个或3个。我无法使用这些资源进行导入,因为boto/aws会因未满足其他1或2个资源而引发错误。我无法创建,因为这
我有两个堆栈,VPC部署堆栈和我的应用程序部署堆栈。在VPC堆栈中,我将导出名为EnvType的值,该值可以是dev、prod或staging。根据这个导出的值,我想在应用程序部署堆栈中部署一个资源。如果EnvType=dev,则不要部署它。否则,部署它。
我如何才能做到这一点?我认为您无法做到这一点,因为ImportValue不能在条件下使用
您可以使用以下两个示例模板轻松验证:
bucket1.yaml(导出EnvType)
bucket2.yaml(导入EnvType并尝试在IsProd条
我正在尝试使用cloudformation模板使用SSM。但是,我无法找出如何根据条件存储每个环境的不同值
代码部署管道传递Stage参数,我可以使用该参数了解代码部署到的环境
Resources:
SNSTopicName:
Type: AWS::SSM::Parameter
Properties:
Description: SNS Topic Name
Name: !Sub "/${Stage}/broker_name"
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 14 页