我正在尝试构建一个ECS(Fargate)任务定义,它使用传递给命令的数量可变的环境变量。每个变量名都与SecretsManager中的一个秘密相匹配
我很难以一种有意义的方式组合这些函数。下面的代码只是将所有变量作为字符串列表传递给命令
SpecEnvVars:
Type: CommaDelimitedList
Default: "greeting,name,title,rank"
Description: |
The Environmental Variable
我必须使用ScheduleExpression(10天)在cloudwatch中设置“AWS::Events::Rule”,并编写一些代码来测试它,但我不能将“10天”更改为1分钟或直接调用lambda函数。我知道我们可以调用put事件来调用带有EventPattern的规则。
但不知道如何为ScheduleExpression执行此操作。
欢迎发表任何评论,谢谢。据我所知,您不可能手动触发规则并使其执行lambda函数。你能做的就是把频率从10天改为1分钟,让它执行,当它执行时,把它切换回10
我有一个使用Amplify(使用AppSync API和Cognito)制作的工作应用程序。我想制作另一个不同的应用程序,但与我的第一个项目共享一些数据(相同的产品,但不同的目标、用法和安全规则)
有没有一种干净的方法可以在新项目中使用Amplify,告诉GraphQLAPI从我的第一个Amplify项目中获取DynamoDB中的一些数据
这些数据会经常更改,而且会很重,所以我不太喜欢任何同步解决方案
我考虑过这些解决方案,但我没有足够的经验来判断其中一个是否好:
在这个新项目中不使用Ampl
是否有任何方法可以通过CloudFormation模板在不同的区域生成自定义KMS密钥,而不是在用于运行模板的各个AWS用户帐户中指定的区域
谢谢你的简短回答:
不,不是直接的
长答案:
这实际上可以通过两种方式之一来实现。首先,使用,您可以创建一个模板,该模板将部署在选定的帐户(此事件中为1个)和区域中
实现目标的第二种方法是使用在其他区域创建KMS密钥。此自定义资源将调用Lambda函数来处理KMS密钥的生命周期。在这个Lambda中,您必须调用适当的API来创建/更新/删除所需区域中的KM
我在AWS CDK中创建了一个CfnDomain,并试图获取生成的域名以创建一个警报
const es=new elasticsearch.CfnDomain(this,id,esProps);
新的cloudwatch.CfnAlarm(这个“测试”{
...
尺寸:[
{
名称:“域名”,
值:es.domainName,
},
],
});
但似乎domainName属性实际上是我传入的参数(我没有传入任何参数,因此它将自动生成),因此它实际上是未定义的,无法使用
是否有任何方法可以指定
我的应用程序正在从系统上的文件读取属性。
我们更新属性文件并上传到S3,并在实例创建期间下载相同的文件
但当我们使用AWS CloudFormation时,并没有直接的方法来更新S3对象
请建议DevOps如何管理动态属性。听起来应该属于配置管理系统的范畴
我在分离基础架构管理和实例配置的概念方面取得了巨大成功。基础设施管理(或作为代码的基础设施)由AWS::CF独家处理,而其他一切(实例/应用程序配置)都由chef处理
使用此模式,我可以显式地控制应用程序和机器级别的期望,管理配置文件,并独立
我正在尝试编写一个蓝色/绿色CFT,该CFT将拆除并重建EC2实例ELB,并使用此ELB的更新DNS名称更新Route53记录别名
如果别名记录不存在,我可以在创建EC2实例并ELB附加这些实例后正确创建别名记录集。但是,如果记录集使用旧的ELB DNS名称存在,则CFT将失败,并显示“Alias recordset exists”。自然-我希望在运行完整CFT时使用更新的ELB DNS名称更新此记录。有什么建议吗
"HostRecord" : {
"Type" : "AWS::
下面是由Serverless加载的CloudForamtion文件的一部分
# resource.yml
.
.
.
{"Fn::Sub": "arn:aws:sqs:*:${AWS::AccountId}:sqs-spoon-*-${env:SERVICE}"}
# serverless.yml
.
.
resources:
- ${file:resource.yml}
${AWS::AccountId}是CloudFormation伪参数,${env:SERVICE}是无服务器变量
我使用fluentd将不同环境的日志发送到AWS ElasticSearch。AWS ES是使用CloudFormation堆栈创建的。如何做以下两件事:
添加保留策略以将所有日志保留30天
根据环境添加保留策略,例如,环境x保留60天,环境y保留7天
我在CloudFormation堆栈中找不到任何可添加保留策略的内容。到目前为止,CloudFormation中没有此类功能。可以做的是使用Lambda和schedule来应用这些保留规则。
包含使用lambda和curator库的示例
有没有人在使用最新的CloudFormation模板和最新的发布包时遇到过上述问题?(lambda.zip)
该捆绑包包括:
index.js
lambda-handler.js
节点单元
proxy-file.js
server.js
云信息配置:
API网关
匿名函数
云锋分布
对我来说,这表明该对象不存在。然而,它确实存在,并且许多测试可以确认对象存在并且公开可用。但是,如果我直接调用api网关并传递参数,lambda不会通过CloudFront抛出错误——这几乎就像转换请求的url并中
我在CDK中使用SSMvalueForStringParameter方法时遇到问题。它在我第一次部署堆栈时起作用,但在我重新部署堆栈时,它没有拾取参数值的更新,因为CloudFormation模板没有更改,所以CloudFormation认为没有更新,即使SSM参数已更改
对于上下文,我通过CodePipeline部署堆栈,首先运行cdk synth,然后使用CloudFormationCreateUpdateStackAction操作部署模板
有人知道如何解决这个问题吗?我知道的唯一另一个可行
我正在使用cloudformation创建堆栈命令来创建实例。该模板使用AWS::AutoScaling::AutoScalingGroup作为缩放组。是否可以在实例创建之间添加延迟
查看了文档,但没有找到任何有用的内容。不幸的是,在创建ASG时,没有此类功能可用。因此,如果您使用例如3的DesiredCapacity定义ASG,那么将同时创建所有实例
但是,值得注意的是,尽管您不能在初始ASG创建时定义延迟时间,但您可以在以后执行ASG的滚动更新期间指定延迟时间。在这种情况下,您可以为ASG定
我偶然发现通过cloudformation模板创建2个子网供elasticache使用
下面是代码示例
"SubnetGroup" : {
"Type" : " "SubnetIds" : [ { "Ref" : "Subnet1" }, { "Ref" : "Subnet2" } ]",
"Properties" : {
"Description" : "Cache Subnet Group",
"SubnetIds" : [ { "Ref" : "Subnet1" }, {
我试图使用AWS cloudformation创建一个包含ALB和ECS服务的堆栈,但我在AWS::ECS::service上得到一个create_失败,它的elb名称长于32
我不明白为什么ECS服务在ALB本身处于创建完成状态时抱怨ELB名称
以下是与我发送给cloudformation的ALB创建相关的JSON:
"loadBalancer" : {
"Type": "AWS::ElasticLoadBalancingV2::LoadBalancer",
"
我是Devops的新手,所以如果你觉得这个问题很尴尬,请不要介意
作为gitci的一部分,我在gitlab中有一个docker文件。我计划创建一个docker映像并将其推送到ECR,然后使用该映像进行批处理
我已经使用ECR中的现有图像完成了批处理部分。但无法使用cloudformation创建docker映像和推送
请引导我。我应该在init中使用命令吗
提前感谢gurus您将无法使用CloudFormation进行此操作,因为它不打算进行这种操作
但是,您提到您正在使用gitlab ci。这
在AppSync中,当您使用Cognito用户池作为身份验证设置时,您将获得
identity:
{ sub: 'bcb5cd53-315a-40df-a41b-1db02a4c1bd9',
issuer: 'https://cognito-idp.us-west-2.amazonaws.com/us-west-2_oicu812',
username: 'skillet',
claims:
{ sub: 'bcb5cd53-315a-40df
我们正在使用AWS SAM构建和管理AWS层。同一SAM模板可以轻松地将最新版本与lambda函数关联,lambda函数也由该模板管理。但是,我们还有其他Lambda函数,它们由其他CloudFormation/SAM模板管理,我不知道最新版本(ARN)
这是我们在SAM模板中用于关联层的内容
Globals:
Function:
Layers:
- !Ref ToolkitLayer
如何从完全不同的CloudFormation/SAM模板以编程方式确定最新版本?我考
我正在尝试与AWS CloudFormation建立一个SNS主题。
我能够让主题及其SQS订阅启动并运行,但我找不到一种方法来指定交付状态日志选项(告诉主题将其日志写入cloudwatch的选项)
对于这种能力,专家们只字不提
显然它还没有实施。有人对此有最新的信息吗
以下是我拥有的模板(片段):
SQSBouncesQueue是堆栈中处理SNS消息的另一个资源。目前,CloudFormation不支持启用SNS传递状态日志记录
您需要使用控制台、SDK或CLI。如果仍然需要使用CloudFo
我试图将EC2实例的定价显示为一个简单的标签描述,我为每个实例类型和价格创建了一个映射。但我想在参数部分创建堆栈时显示价格。我正在将默认值更新为-
"Price": {
"Description": "Price per hr for the EC2 instances",
"Type": "String",
"Default": "{ "Fn::FindInMap" : [ "Pricing" , { "Ref" : "InstanceType" },"Price"]}"
}
但
ApiGateway 1有一个别名,但其接口不符合V2:
以下是domainName:
const domainName = new apigw2.DomainName(config.scope, config.id + 'DomainName', {
domainName: config.domainName,
certificate: config.certificate,
});
看起来aws-route53-targets软件包还不支持apigatewa
在创建大型堆栈时,我在CloudFormation事件面板中获得了以下内容。它位于RDS资源上,并导致堆栈创建失败:
已达到最大同时请求数。请考虑添加重试机制或增加队列大小。
这是什么意思?如何修复它?这是来自Amazon的速率限制错误。它可能发生在其他资源上,但肯定发生在RDS创建上,因为一次只能创建一个RDS实例。换句话说,如果堆栈包含两个数据库,则无法并行创建它们
为了解决这个问题。换句话说,在数据库B资源上使用DependsOn:databaseA。这将确保在开始创建数据库B之前创建数据
我试图在代码管道中使用CloudFormation模板配置字段。如果在CodePipeline中编辑CloudFormation,则如下所示:
如果我的InputArtifactName是MyAppBuild,并且我在cfg prd.json中有一个CloudFormation配置文件,我希望我可以输入MyAppBuild::cfg prd.json并让它拾取它
我得到一个关于模板文件无效的错误,即使它是手动工作的:
--parameters cfg-prd.json
请注意,的JSON结构
我有以下嵌套堆栈结构:
掌握
专有网络(创建完成)
安全组(创建完成)
…(创建完成)
ECS(创建_完成)
服务(最终创建失败-服务[ARN]不稳定。)
ALB(创建完成)
证书管理器(创建完成)
服务嵌套了嵌套SSL证书堆栈的ALB堆栈。它们是一个依赖链
出于某种原因,即使证书管理器和alb堆栈都成功完成,服务也不会在调用alb堆栈的地方继续。相反,它仍然停留在CREATE_in_PROGRESS中,没有任何错误,直到超时。当它最终超时时,会出现“服务[arn]无法稳定”错误
在我的模板中,我将帐户ID的CommaDelimitedList作为参数传递
我希望做一些Fn::Join和/或Fn::Sub魔术来转换列表,如下所示:
"Accounts" : {
"Type" : "CommaDelimitedList",
"Default" : "12222234,23333334,1122143234,..."
}
To be used in the template as a list `root` ARN's as :
[
"arn:
Cloudformation中是否有类似于terraform模块的内容,您可以在其中创建参数化模板(资源组,而不是CF模板),然后在CF模板中多次使用不同的参数
我在CF模板中看到了很多bolierplate YAML,我正在寻找一种重构它的方法。我以前使用过terraform,它提供了这种功能
示例:
我正在创建许多AWS胶水作业,其中许多作业只有两个参数不同,但每个定义有25行代码
Resources:
myGlueJob1:
Type: AWS::Glue::Job
P
每当我从CDK生成cloudformation模板时,我看到在逻辑ID中,它添加了某种散列。那散列是什么意思?例如
Test4FCEEF4A
这个散列4FCEEF4A是如何生成的?资源的逻辑ID是使用您可以找到的分配逻辑ID方法设置的。它调用您可以找到的makeUniqueId方法。在makeUniqueId方法中,它创建逻辑ID的hash组件和逻辑ID的human可读组件。它使用crypto库使用path创建md5哈希,该哈希从CFNEElement节点的ID获取并返回十六进制值。因此,您看到
我的CFN模板中有以下用户数据:
UserData:
'Fn::Base64':
!Sub |
#!/bin/bash
sudo apt-get update;
sudo apt-get upgrade -y;
sudo apt-get -y install python-pip;
sudo apt-get -y install gcc;
sudo apt-get -y in
我确信我在这里遗漏了一些非常明显的东西,但是使用GetAtt和ImportValue在堆栈的父模板中获取输出值有什么区别呢?是否有一个时间和地点,你只能使用其中一个?是否有一些地方可以互换,但出于某种原因,其中一个更可取
例如,在父模板中:
myvpc:
Type: AWS::CloudFormation::Stack
<some stuff to pass to a child template>
anotherresource:
Type: AWS::CloudFo
我尝试使用yq v4.3.2在CloudFormation模板中添加yaml值,如下所示:
Mappings:
RegionMap:
us-east-1:
AMI: 'ami-YeahRight'
相反,我得到的是:
Mappings:
RegionMap:
us-east-1:
AMI: ami-YeahRight
文档中的样式位以及由此得出的答案使我认为bash脚本的这一部分可以工作,但是忽略了样式部分
region="
我了解了如何将route53 dns记录与serverless.yml文件中的S3 bucket关联
我已经尝试将其应用于部署cloudfront发行版的情况
DnsRecord:
Type: "AWS::Route53::RecordSet"
Properties:
AliasTarget:
DNSName: <cloudfrontdistribution id>
HostedZoneId: Z21DNDUVLTQW6Q
Hosted
尝试使用CF模板部署环境。目前,我们有一个NAT GW用于出境交通,运行良好。交通量很低,而且是零星的。我正在考虑使用NAT实例(更具成本效益)
部署NAT实例本身不是问题,但我正在尝试将其放入一个自动调整组中以实现恢复能力(如果一个实例失败,则应重新启动/重新创建该实例)。但是,我找不到任何选项来禁用NAT实例所需的源/目标检查。甚至可能吗?SourceDestCheck是实例的属性或实例。遗憾的是,两者都不允许设置
然而,由于您将NAT实例放在ASG中,因此您必须以某种方式管理自动更新路由表
是否有人知道或参考一套现有或新兴的基础设施标准作为代码?我正在寻找云部署资产的定义,我可以将其用作环境定义的基础,该环境定义可以转换或投影到AWS Cloudformation模板或Azure资源管理部署模板中。Azure Stack就是这样一个标准。
AWS有这样一个标准。
KVM有这样一个标准
在供应商堆栈中不存在“行业”标准,但是有一些工具可以抽象出供应商的细节。Puppet就是这样一种工具。我认为您提到的标准也是ARM模板与CloudFormation模板,对吗?我一直在寻找两者的共同点
有很多这样的例子,但在我的基础设施中,我想使用ElasticSearch和融合的Kafka Connect和Kafka Streams
有一个和另一个,以及
由于我正在处理一个,我首先使用ElasticSearch而不是Cassandra来处理批处理数据,我想知道是否有使用Kafka Connect、ElasticSearch的CloudFormation模板。最终,我们希望将Kafka流与XDB一起使用?DC/OS具有AWS和。一旦安装了DC/OS,您就可以从中间层宇宙安装ElasticSea
我正在尝试创建Cloudformation ECS堆栈,但我一直在运行此错误
service XXXX was unable to place a task because no container instance
met all of its requirements. Reason: No Container Instances were found
in your cluster. For more information, see the Troubleshooting sec
我正在使用localstack创建一个模板,该模板执行以下操作:
TopicArn: arn:aws:sns:eu-west-2:123456789012:MySnsTopic
Endpoint: arn:aws:sqs:elasticmq:000000000000:MySqsQueue
创建一个SNS主题
创建一个SQS队列
创建将SQS队列订阅到SNS主题的订阅。
我的docker compose文件如下所示:
version: '3'
services:
localstack:
以下资源未能创建:[BastionAutoScalingGroup]
BastionAutoScalingGroup CREATE_失败收到1个故障信号(共1个)。无法满足100%MinSuccessfulInstancesPercent要求
来自bastionHost的日志:-
grep-ni'error\| failure'$(sudo find/var/log-name cfn*-或-name cloud init*)
/var/log/cloud init.log:458:Apr 22
我正在尝试向通过cloudformation模板部署的代码管道添加新的阶段。我找不到用于创建代码管道的CloudFormation模板,因为我的帐户中有多个模板。有没有办法知道哪个CloudFormation模板用于从AWS帐户中的模板列表创建代码管道
提前感谢。检查您的资源标签。CFN增加了自动标签,@Marcin:你能详细解释一下如何检查吗。我有一个名为“数据库管道”的管道,它是通过CFN部署的。我不知道哪个CFN用于部署管道。请转到创建的资源CF模板并检查标记。在您的情况下,选择创建的管道
我是cft的新手,我是!参考VpcID函数,我将参数化为vpcIds,我需要将VpcID作为dynamodb endpont的必填字段。请有人建议我如何传递此VpcID
AWSTemplateFormatVersion: 2010-09-09
Resources:
LambdaFunction:
Type: 'AWS::Lambda::Function'
Properties:
Code:
ZipFile: |
const AW
我编写了一个CloudFormation模板,它还创建了一个VPC对等连接
如果您熟悉VPC对等,那么您知道在创建之后,会创建一个请求并等待批准
我想在CloudFormation模板的输出部分添加VPC对等连接请求id
可能吗?我找不到路
编辑:
这是模板的相关部分:
"Resources" : {
"VPC": {
"Type" : "AWS::EC2::VPC",
"Description" : "Choose which VPC the security groups
以下内容在cloudformation模板中是否有效:
Parameters:
ParameterA:
Default: ''
NoEcho: false
Type: AWS::SSM::Parameter::Value<List<String>>
参数:
参数a:
默认值:“”
诺乔:错
类型:AWS::SSM::参数::值
因为模板已成功验证,但当我尝试创建堆栈时,cloudformation会返回以下内容,而不提供参数:
参数Para
我有一个带有主模板和两个嵌套模板的Cloudformation堆栈,其中一个包含Lambda和关联角色,另一个包含S3 bucket。我想从Lambda模板导出Lambda ARN并将其传递到S3模板,这样我就可以做一些事件通知工作(在S3 bucket中有一个新项触发Lambda)
如果我在主模板中注释掉CF代码,该模板导入导出的Lambda ARN并将其传递给bucket,那么一切都会正常工作—主模板和嵌套模板部署正常,并且我可以看到导出的Lambda ARN-
(c4abb639548f2
我以以下方式使用宏
ServiceMap:
Private:
Prefix: Private
Public:
Prefix: Public
Service:
ExplodeMap: ServiceMap
Type: AWS::ECS::Service
DependsOn:
- !Sub 'LoadBalancerRule${!Explode Prefix}'
Properties:
Clus
在forAWS::Athena::NamedQuery中,我们有一个可爱的YAML
Resources:
AthenaNamedQuery:
Type: AWS::Athena::NamedQuery
Properties:
Database: "swfnetadata"
Description: "A query that selects all aggregated data"
Name: "MostExpensiveWorkflow"
AWS最近在ECS()中添加了守护进程调度,但我找不到如何在CloudFormation模板中配置它
不确定这些文档是否未更新或不可用。今天,我从AWS支持部门得到了以下反馈:
Sebastian,我检查了我的终端,我发现它目前不受Cloudformation的支持。
但好消息是,有一个开放的特性请求,没有Cloudformation服务团队,他们正在积极地将此特性添加到Cloudformation中
根据我的经验,我已经看到发布的新功能将被添加到cloudformation中。我将继续,并将您
我创建了如下所示的回购协议,但我想在创建时添加一个具有特定名称的分支
Resources:
CodeCommitRepository:
Type: AWS::CodeCommit::Repository
Properties:
RepositoryName: !Ref Message
回答:
无法使用资源AWS::CodeCommit::Repository在CloudFormation模板中直接创建CodeCommit分支,而且
我不熟悉云计算模板。我想创建一个下拉列表参数,其值为“Small”、“Medium”和“Big”。选择后,Small必须映射到“t2.micro”,Medium映射到“t2.Medium”,Big映射到“t2.large”
我知道我可以直接下拉像“t2.micro”这样的值,但我希望有用户友好的选项,映射到确切的实例类型字符串
以下是我到目前为止的情况:
Resources:
MicroInstance:
Type: AWS::EC2::Instance
Properties
在ECS上部署Laravel web应用程序,为了启用自动缩放,我正在使用应用程序负载平衡器。在我引入一个重量级页面之前,该应用程序工作(并进行了扩展),大约一分钟后,我开始出现504网关超时错误
我非常确定单个web服务器有更高的超时(在本地测试应用程序时不会发生这种情况),因此问题一定与AWS环境(ECS/ALB)相关
下面您可以找到ALB设置的截图
AdminLoadBalancer:
Type: AWS::ElasticLoadBalancingV2::LoadBalancer
我们正在尝试使用EKS群集设置日志记录。我们当前运行的集群只有一个EC2实例。AWS提供了创建必要的kubernetes配置的工具
将此应用于现有EKS设置时,我们无法正确定义具有写入CloudWatch权限的实例角色
cloudwatch代理在其pod日志中显示以下错误:
2020-01-07T10:20:14Z E! CreateLogStream / CreateLogGroup with log group name /aws/containerinsights/eks-test-EKS
我需要创建一个具有公共访问权限的S3存储桶,但仅将该访问权限限制为特定IP。
我使用S3 bucket的策略生成器生成了一个策略,然后通过引用bucket的名称使其适应我的模板;但是,CloudFormation不断给出“策略具有无效资源”错误
下面是我正在使用的CloudFormation模板的相关部分。“FirstS3BucketName”是一个参数
FirstS3BucketPolicy:
Type: AWS::S3::BucketPolicy
Properties:
我正在cdk中设置db用户,如下所示:
const serviceUser = new rds.DatabaseSecret(this, 'my-foo-service-user-secret', {
username: 'my-foo-service-user',
masterSecret: this.postgresDb.secret,
});
const myAttachedSecret = serviceUser.attach(t
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 14 页