在云形成模板中使用自定义AMI时,系统可恢复性检查失败,因为/etc/sysconfig/network配置了硬编码的hosname,而/etc/sysconfig/network/ifcfg etho具有硬编码的ip。如果我们使用Aws cloud formation init来更改这些值,它将不会反映。我们如何实现这些更改?为了让元数据在实例上实际产生更改,您需要通过运行帮助程序脚本来执行它
还请注意,由于您使用的是定制的AMI,因此可能未安装其余的cfn helper实用程序-它们仅预安装
我试图在Cloudformation中定义我的ECS堆栈,包括CI/CD管道和ECR存储库。但是,您遇到了一个难题:
要创建ECS任务定义(AWS::ECS::TaskDefinition),您必须首先创建一个已填充的ECR存储库(AWS::ECR::repository),以便指定Image属性
要填充此存储库,您必须首先创建CodePipeline(AWS::CodePipeline::Pipeline),它将在创建时自动运行
要创建管道,您必须首先创建ECS任务定义/集群,因为管道需要部署
我正在尝试设置一个云形成模板来创建Cloudwatch仪表板。
在本文中,我想使用伪变量来确定区域
如果我只是使用伪变量AWS::Region,代码似乎不起作用:
AutoscalingDashboard:
Type: AWS::CloudWatch::Dashboard
Properties:
DashboardName: AutoscalingDashboard
DashboardBody: '
{
"widgets":[
{
如何将已存在lambda别名和版本的APIGateway stage部署到特定stage,这意味着我不想再次更新lambda,但我想映射到新stage或使用特定lambda别名更新现有stage
i、 我有myFunction版本2,3和别名dev、test和stage。
要将/dev的阶段映射到$LATEST,/test映射到版本2的别名测试,/stage映射到版本3的别名
如何做到这一点
我已尝试使用${!stageVariables.lambdaAlias}进行方法集成,但我得到的内部服务
我有一个CloudFormation堆栈,它支持我们应用程序的整个环境(包括VPC、子网、安全组、角色、lambda函数、负载平衡器、S3存储桶和CloudFront分发版)
除此之外,它还创建了一个ECS集群,其中包含一个具有初始任务定义的ECS服务:
资源:
#…剪断。。。
集群:
类型:AWS::ECS::集群
特性:
俱乐部名称:!子“群集-${Environment}”
APITASK定义:
类型:AWS::ECS::TaskDefinition
德彭森:
-APIExecutionR
我正在使用cdk(v1.96.0)。有没有办法打印堆栈的依赖关系图
例如,当我的cdk应用程序具有循环引用时,cdk synth将失败,并显示以下消息,该消息将打印出堆栈依赖项
错误:“S3ConsumerStack”依赖于“S3HostStack”(“S3ConsumerStack/Access/Resource”依赖于“S3HostStack/test secret key/Resource”,“S3ConsumerStack/Access/DefaultPolicy/Resource”依赖
有没有办法为堆栈策略创建条件
给定AWS文档中的简单CF模板:
我应该把以下条件放在哪里:
"Condition" : "CreateProdResources"
感谢事实上,您需要区分三种不同的互不兼容的条件类型:
。由堆栈模板的条件部分中的项和引用该条件的资源中相应的条件键定义
元素/块。允许任何IAM策略根据指定的条件进一步限制权限
条件元素。允许堆栈策略仅应用于特定类型的资源
不能将#1类型的CloudFormation资源条件(例如CreateProdResources,它在堆栈模板
我一直在努力解决如何为我的ECS服务命名的问题,但没有用,从CloudFormation文档看,这是不可能的
目前,它正在自动生成服务名称,如下所示:
<stack name>-<logical id>-<seemingly random id>
--
不适合提供给应用程序开发团队,我想如果我们决定重建服务,它可能会发生变化
有人对他们如何处理这件事有什么建议吗
另外,我们的设置是,我们有一个git repo for Cloudformation模板和一个
我正在使用部署我的AWS堆栈,并尝试将AWS SES模板添加到我的资源中
然而,我一直从CloudFormation中获取AWS::SES::Template的“未识别类型”
这绝对是一场灾难,所以我不知道发生了什么。我看到过描述SES模板的相同片段,这些模板应该是可以工作的,但对我来说不是。你知道这是什么原因吗
myserverless.yml中的部分如下所示:
resources:
Resources:
EmailNotificationTemplate:
Type:
我想用创建一个AWS Cloudformation模板
具有apache Web服务器和letsencrypt SSL证书的单个EC2实例
路由53是一个记录,它是一个动态模板参数
我可以让letsencrypt运行,因为我需要完成一个挑战
问题:HTTP-01质询需要在EC2实例之前创建Route53 A记录,但这是不可能的,因为我需要EC2实例的IP地址来创建Route53 A记录
我曾考虑过使用EIP,但EIP只能在EC2实例创建后才能关联,而不是在同一时间,因此质询也失败了
dns-
有人知道是否有办法恢复AWS Cloudformation上已删除的堆栈吗?我可以在过滤器中看到已删除的堆栈,但没有恢复它们的选项。
如果无法恢复,我可以重新创建相同的堆栈吗
我的应用程序运行在elasticbeanstalk上,我没有意识到它为自动缩放创建了cloudformation堆栈。我删除了它,然后意识到我所有的部署都失败了。所以我想知道我是否可以恢复它
谢谢你的帮助 最简单的方法:进入弹性豆茎环境,选择“重建环境”。AWS将从头开始重新创建所有内容,包括CloudFormation
我们的CF堆栈中有60多个参数,无法列出。有没有办法在不破坏引用的情况下扩展限制(我们有嵌套堆栈)。根据Cloudformation,您不能有超过60个参数
可以在AWS CloudFormation模板中声明的最大参数数。60个参数。要指定更多参数,可以使用映射或列表为单个参数指定多个值
根据Cloudformation,您的参数不能超过60个
可以在AWS CloudFormation模板中声明的最大参数数。60个参数。要指定更多参数,可以使用映射或列表为单个参数指定多个值
我有一个创建托管节点组的CloudFormation模板:
NodeGroup:
Type: AWS::EKS::Nodegroup
Properties:
ClusterName: !Ref Cluster
InstanceTypes:
- !Ref NodeInstanceClass
NodegroupName: ng-0
NodeRole: !GetAtt NodeInstanceRole.Arn
我得到以下错误
资源mytaskdefinition的属性验证失败,消息为:#/ContainerDefinitions/0:不允许使用无关键[linuxParameters]
PerlinuxParameters是一个有效键
如错误所示,我的任务定义将linuxParameters嵌套在ContainerDefinitions的正下方。尽管文档使用驼峰大小写linuxParameters,AWS却突然开始强制大写
修复方法是将第一个字母大写,即改用LinuxParameters。
请注意,这也
我正在使用CF模板创建一个EC2实例,并将选择子网作为我的参数中的on3。一旦我选择了子网,CloudFormation是否有办法找到子网的专有网络id?目前恐怕没有一种简单的方法可以从子网id自动获取专有网络id,即CloudFormation限制。您有两个主要的解决方法:
最简单的选项:传入与子网Id匹配的VPC Id参数
更难的选择:创建自定义资源,lambda通常是最简单的方法,从子网Id获取VPC Id。Amazon有一个
环顾四周,我发现可以从Lambda自定义资源执行CLI命令。如
更新:Cloudformation现在支持SNS主题过滤器,所以这个问题不再相关,不需要定制插件或代码
我正在构建一个包含多个SNS主题和多个lambda的系统,每个lambda都从分配的SQS队列中读取消息。SQS队列订阅了SNS主题,但也有一个过滤策略,因此消息将最终进入相关的SQS队列
当我在AWS控制台中设置订阅时,它工作得很好
现在,我在代码中也尝试这样做,但是AWS Cloudformation文档没有描述如何向订阅添加筛选策略。基于此,我尝试了以下方法:
StopOperati
我必须根据条件添加TaskDefinition条目。下面是我创建的模板
Conditions
IsProdEnv: !Equals [ !Ref envtype, "prod" ]
TaskDefinition:
Type: AWS::ECS::TaskDefinition
Properties:
ContainerDefinitions:
EntryPoint:
- !If [IsPr
我在模板中创建了一个具有访问密钥的用户:
"MyAccessKey" : {
"Type" : "AWS::IAM::AccessKey",
"Properties" : {
"UserName" : { "Ref" : "User12" }
}
}
我需要在模板的输出中获取访问密钥ID和密钥。怎么做?
谢谢访问密钥id和密钥可用于AWS::IAM::AccessKey资源:
"Outputs" : {
"MyAccessKey
我用的是AWS代码星。它集成了许多AWS服务,因此我可以从git push进行部署
它使用云形成。我有一个lambda函数,它依赖于uuidnpm
如何在Codestar构建管道中包含此节点依赖关系?Cloudformation SAM使用zip文件,并将所有内容上载到S3:
我不想构建一个zip文件并将其放入代码repo中
我的下一个计划是尝试在Codebuild中运行npm install:
下一个计划有效。需要在代码构建中添加npm。非常好。我又遇到了这个问题,列出了一长串模块。我无法让
我用Fn::GetAtt:[日志组,arn]
arn:aws:logs:us-east-1:123456789012:log-group:/log-group-1234:*
但我需要:
arn:aws:logs:us-east-1:123456789012:log-group:/log-group-1234
因此,最后一部分(*)需要删除
如何使用该引用对其进行归档?我可以拆分并选择最后一个会话,但如何删除它?(我仅将日志组名称硬编码为示例)
{“Fn::Select”:[“8”,{“Fn:
我正在帐户00000000000中配置代码管道
我想部署一个CloudFormation堆栈
通过代码管道执行CloudFromation模板
但不在账户123456789123中,也不在00000000000中
问题
如何配置类型为“Deploy”的CodePipeline操作
特别是如何将其指向帐户123456789123
到目前为止我做了什么
我假设它是通过角色工作的。123456789123
我在帐户123456789123中创建了IAM角色,
对账户00000000000的信任,
我已经创建了一个备份计划,并使用云形成(非CLI)配置了SNS,但备份作业已成功运行并完成,但未收到电子邮件通知(已订阅SNS主题)
云信息中的备份保险库部分:
backupvaultwithdailybackupsns:
类型:“AWS::Backup::BackupVault”
特性:
备份Vault名称:“Vault\u名称”
通知:
备份事件:
-备份作业已启动
-备份\u作业\u已完成
-备份\u作业\u成功
-备份作业失败
斯诺皮卡恩:
!子'arn:aws:sns:${aws::
我正在为S3上托管的网站编写CFT-YML文件通过模板验证,没有问题,但是构建代理返回以下错误:
yaml.constructor.ConstructorError:无法确定标记“”的构造函数!GetAtt'
输出:
网址:
值:!GetAtt RootBucket.WebsiteURL
描述:S3上托管的网站的URL请不要使用Fn::GetAtt的速记版本
输出:
网址:
值:Fn::GetAtt:[RootBucket,WebsiteURL]
描述:S3上托管网站的URL此问题可能已经得
cloudformation模板中支持对SSM参数的动态引用
文档说明,您可以使用ssm动态引用将存储在Systems Manager参数存储区中的String或StringList类型的值包含在模板中。
我们试图在模板中使用语法{{resolve:ssm:parameter name:version}}引用StringList类型的参数,并将其解析为模板中的字符串列表(更具体地说,EC2实例的SecurityGroupId列表)。这没有起作用,文档中也没有指定如何执行此操作或是否支持此操作。
假设我在我的serverless.yml中有这样一个部分:
resources:
Resources:
RDSCluster:
Type: AWS::RDS::DBCluster
Properties:
MasterUsername: SomeUserName
MasterUserPassword: SomePassword
DatabaseName: SomeDatabaseName
Engi
我目前正在学习一门使用AWS EMR的课程。每次我想使用EMR时,我都必须启动一个.sh脚本(我们称之为launch.sh),它基本上是启动一个cloudformation模板(我们称之为cf.json)。launch.sh中有一个template\uURL变量,该变量将其指向s3(cf.json)中的json文件,其中包含http端点
我有权限写入和读取该存储桶(而不是删除/附加acl)。我成功地创建了cf.json的副本,我称之为cf2.json。然而,当我将launch.sh指向cf2.j
我正在尝试为网络负载平衡器设置和弹性IP,但每次我创建堆栈时,它都无法指定域vpc是无效的参数值,尽管指定的vpc物理id存在,并且它是以前创建的。您的CloudFormation模板中是否设置了域:vpc
这应该起作用:
ElasticIP:
Type: AWS::EC2::EIP
Properties:
Domain: vpc # NOT vpc-1234abcd !!
如果您不指定域:专有网络,您将无法将EIP连接到专有网络内的资源,例如负载平衡器。您需要共享代
下面是一篇很好的博客文章,解释了如何为Athena配置两个工作组。一个用于临时用户,另一个用于自动报告
是否有一个cloudformation模板来自动执行上述所有步骤?在您提出问题时,不支持使用AWS cloudformation创建Athena工作组。最近,Amazon Athena增加了对使用AWS CloudFormation管理Athena工作组的支持(2020年3月13日)。您可以使用AWS::Athena::WorkGroup创建Athena工作组
更多详情:谢谢@PatMyro
我首先使用带有云形成模板的群集快照恢复了Aurora RDS群集。然后删除快照标识符,更新密码,并执行堆栈更新,使CFT中的所有内容保持不变。但是stack总是打印
请求的更新需要创建新的物理资源;
因此创造了一个
消息并开始创建新群集。这是我对集群的CFT
"DatabaseCluster": {
"Type": "AWS::RDS::DBCluster",
"DeletionPolicy": "Snapshot",
"Properties": {
"BackupReten
我正在尝试创建一个简单的基于AWS的体系结构,将一些数据从AWSS3传输到SQS,然后触发lambda。我使用的是无服务器框架,但最终在部署时会出现此错误
发生错误:PostsRawBucket-无法验证以下目标配置(服务:Amazon S3;状态代码:400;错误代码:InvalidArgument;请求ID:…;S3扩展请求ID:…)
编辑1:解决方案(至少对我来说)-我必须添加AWS::SQS::QueuePolicy
QueuePolicy:
Type: AWS::SQS::
我对cloudformation模板非常陌生,我正在尝试创建一个模板来构建AWS ECS代码管道
管道将需要一个代码构建阶段,具有相当复杂的构建规范
我希望能够将构建项目的buildspec指定为模板参数。但是,当从模板创建堆栈时,CloudFormation似乎只允许使用单行文本框来提供参数值
有没有办法告诉它某个特定参数是“长文本”字符串,以允许它显示更大的多行编辑框?目前似乎不可能做到这一点
作为解决方案,考虑将您的BuueScript上传到S3,并在CF模板中指定S3 ARN作为参数。
我想在2个不同的区域(us-east-1、eu-west-1)部署2个cloudformation堆栈部件
其中一部分创建vpc和x资源-我想部署到us-east-1
第二部分创建与x相关的y资源。输出-我想部署到eu-west-1
我不能简单地在eu-west-1区域运行堆栈(它将只创建第一部分)
有什么方法可以做到这一点吗?当您以编程方式部署堆栈时,例如使用CLI和bash,您可以执行以下操作(CLI示例):
使用[deploy]命令在第一个区域中部署堆栈。CLI具有用于指定操作区域的参数
我有一个EC2实例,我正试图使用它执行CFN脚本,但我面临以下错误:
Error parsing parameter '--parameters': Unable to retrieve https://xxxxxxxxxxxxxxxxxxxxVPC-Parameters.json: received non 200 status code of 403
请参阅我的CLI命令:
aws cloudformation create-stack \
--stack-name mytestV
我正在尝试将通知规则设置为CDK堆栈中代码管道的一部分
注意,这不是一个CDK管道,而是一个正在设置AWS代码管道的CDK堆栈
为了创建CfnNotificationRule,我必须将代码管道的ARN作为资源参数传入。在下面的示例代码中,我将ARN硬编码为TARGET\u ARN
然而,我想动态地提供这一点
如何将CDK为my pipeline生成的ARN提供给CfnNotificationRule构造函数?
const codepipeline = require('@aws-cdk/aws-
我有一个用Yaml编写的大型云形成模板,我想开始使用对流层。有没有简单的方法将CF模板转换为对流层代码
我注意到了这个脚本
这将创建一个Troposphere python对象,但我不确定是否可以将其输出为Troposphere代码。您可以通过将CF YAML转换为JSON并将JSON文件作为参数传入来实现 添加到@OllieB的好提示中
使用pip或POYMENT安装依赖项:
pip安装“对流层[策略]”
pip安装cfn翻转
诗歌添加-D“对流层[政策]”
诗歌添加-D cfn翻
我正在用“新”YAML格式编写一个cloudformation模板,我不知道如何翻译UserDate部分中出现的Ref语句。userdata中的数据是包含单位文件的CoreOS的云配置。该模板在JSON中运行良好,但我不知道如何在YAML中构造Ref语句
“我的用户数据”部分的顶部如下所示:
UserData:
Fn::Base64:
!Sub |
这引用了一个参数,它可以正常工作
Environment=NRSYSMOND_license_key=${NewRel
我有一个CF模板来创建一个从S3CSV文件读取的粘合表
MyTableEncrypted:
Type: AWS::Glue::Table
Properties:
DatabaseName:
Ref: MyDatabase
CatalogId:
Ref: AWS::AccountId
TableInput:
Name:
Fn::Sub: "my-table-encrypted"
有没有办法在Cloudformation中解析EMR MasterPublicDNS?我在CloudInformation中没有看到replace函数
ip-100-112-10-21.aws.内部
到
100.112.10.21
Outputs:
IPAddress:
Description: IP address of the EMR clusters
Value: !GetAtt
- EMRCluster
- MasterPublicDNS
如
我能够使用无服务器框架创建Cognito用户池。不幸的是,新用户注册后的电子邮件验证是使用Cognito的电子邮件传递系统发送的,该系统相当有限。我知道我可以进入控制台并更改使用Amazon的SES的选项,但在无服务器框架中如何做到这一点
service: cognito
provider:
name: aws
runtime: nodejs12.x
region: us-west-2
stage: prod
memorySize: 128
timeout: 5
endpointType: r
我已经编写了一个简单的Cloudformation模板来使用“映射”。下面是代码。我已登录us-west-2a(西海岸)并运行我的模板。我有3个默认子网。我在映射部分给出的AMI是由我创建的:
我希望当我输入us-west-2a作为参数时,它应该按照下面的代码选择ami-fcccdf85。但是它说
模板错误:无法获取RegionMap::us-west-2::AMI“”的映射
代码:
{
"AWSTemplateFormatVersion": "2010-09-09",
"Description
我正在尝试运行cloudformation堆栈来创建一个EMR集群,并将负载平衡器连接到该EMR的主节点
要生成EMR集群,我在堆栈中使用以下代码:
"EmrCluster": {
"Type": "AWS::EMR::Cluster",
"DependsOn": "nat0a30a49f0c2913dc4",
"Properties": {
"Name": "EmrCluster",
"Applications": [
我对云的形成非常陌生,并试图掌握它。作为学习过程的一部分,我正在尝试构建一个模板,用于创建一个VPC、一个子网和部署一个面向公众的实例。下面是我在CF设计窗口中完成的代码。虽然我的代码只在构建时进行验证,但我得到的错误如下-
CREATE_FAILED AWS::EC2::Instance AR3Web Property DeviceIndex cannot be empty.
ROLLBACK_IN_PROGRESS AWS::CloudFormation::Stack Int
我有一个cloudformation模板来部署EKS和worker节点以及其他一些资源,如RDS、ES等
我想写一个terraform模板,它的工作与我的cloudformation相同
我是terraform的新手,我被EKS worker nodes启动配置的userdata部分卡住了
我的云信息中的部分是:
UserData:
Fn::Base64:
!Sub |
#!/bin/bash
set -o xtrace
/
[背景]
您好,我准备使用cloudformation(aws sam)实现无服务器应用程序,并希望为生产环境应用蓝色/绿色部署。
这个应用程序实际上很小,只有API网关、Lambda、S3、Statemachine和事件(我的意思是里面并没有数据库),我们不需要自动化整个部署过程。
我将通过在自定义域名中切换基本路径映射,采用从蓝色切换到绿色的方法
[问题]
我想知道使用蓝色/绿色方法部署的实际方法。
我的选择是-
创建完全相同的两个名为Stack blue和Stack green的环境。每
在向react项目添加AWS Amplify时,我试图使用现有的Cognito用户池
因此,我想为我手动创建的Cognito用户池中的现有用户使用放大数据存储功能。另外,我喜欢用于管理API的GraphQL模式的Amplify CLI功能,因此,这意味着我需要在react项目中初始化Amplify项目
我从这一章开始。但本章使用API密钥认证
我知道,我可以通过amplify auth add向amplify项目添加身份验证,但它没有使用现有用户池的选项
我可以使用手动编写的aws export
无服务器
iamRoleStatements: [
{
Effect: 'Allow',
Action: ['s3:PutObject', 's3:GetObject', 's3:DeleteObject'],
// using GetAtt
Resource: '"Fn::Join" : [ "", [ { "Fn::GetAtt" : [ "s3Bucket", "A
我有一个Cloudformation模板,有两个条件
Conditions:
ProdEnvironment:
!Equals [ !Ref VPCStackNameParameter, 'ProductionVPC' ]
CertExists:
!Not [!Equals [!Ref SslCertificateArn, '']]
如何在要创建的资源中同时指定这两个条件?差不多
Resources:
Alb:
Type: AWS::ElasticLoadB
我使用的是对流层CF模板中的一个条件,但不幸的是,有超过10个条件,AWS CF只支持其中的10个。该条件检查应用程序名称是否以特定名称开头。有没有办法在条件中使用regex,这样我就可以只写一个条件而不是10个条件,如果名称以appname开头,那么说明dosomething*
我正在为每个角色添加条件,但是因为aws只支持10个,所以我不能添加更多
conditions = {
"RoleEqualCollectors01" : Equals(
Ref(ThorRole),
我想在serverless.yml文件中执行此操作,但在文档中找不到方法
我希望避免在每次从CLI部署后使用类似
aws apigateway update-rest-api --rest-api-id <id> --patch-operations op=replace,path=/description,value='description'
aws apigateway更新rest api--rest api id--修补程序操作op=replace,path=/descri
我有ENI(ENI-0c6f3e911XXX),希望使用云形成模板将其添加为EC2中的Eth0。Ec2应该只有这个接口
谢谢
在cloudformation中,您可以通过其ID指定您的ENI
MyEC2Instance" : {
"Type" : "AWS::EC2::Instance",
"Properties" : {
"ImageId" : "ami-79fd7eee",
"KeyName" : "testkey",
"NetworkInte
上一页 1 2 ...
5 6 7 8 9 10 11 ...
下一页 最后一页 共 14 页