我希望此资源与!Sub(或Fn::Sub)内部函数一起使用
Resource: !Sub 'arn:aws:iam::${AWS::AccountId}:user/${aws:username}'
Run Code Online (Sandbox Code Playgroud)
这aws:username是一个不能被替换的pollicy变量.
一种解决方案是使用Fn::Join而是编写更多的样板代码.
更好:你能逃脱吗?${aws:username}这样!Sub可以在这里工作吗?不幸的是,文档没有提到有关转义的任何内容.
我正在尝试从s3存储桶本地复制文件.我可以获取我的存储桶上的文件列表:
aws s3 ls s3://myBucket/myDirectory/todaysFiles/
Run Code Online (Sandbox Code Playgroud)
但是当我尝试在本地复制文件时:
aws s3 cp s3://myBucket/myDirectory/todaysFiles/ .
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
fatal error: An error occurred (404) when calling the HeadObject operation: Key "myDirectory/todaysFiles/" does not exist
Run Code Online (Sandbox Code Playgroud)
但我尝试在本地复制一个文件:
aws s3 cp s3://myBucket/myDirectory/todaysFiles/somefile .
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
warning: Skipping file s3://myBucket/myDirectory/todaysFiles/somefile. Object is of storage class GLACIER. Unable to perform download operations on GLACIER objects. You must restore the object to be able to the perform operation. See aws s3 download help for additional parameter options to ignore or force these transfers. …Run Code Online (Sandbox Code Playgroud) amazon-s3 amazon-web-services aws-cloudformation aws-cli aws-sdk
有人可以清楚地向我解释AWS CLI Cloudformation create-stack和deploy命令之间的区别和优先级吗?对我来说,似乎他们做同样的事情并部署资源.
为什么当您从cli运行deploy命令时,create stack没有可执行的更改集,而文档说:
通过创建并执行更改集来部署指定的AWS CloudFormation模板.AWS CloudFormation执行更改集后,该命令将终止.如果要在AWS CloudFormation执行更改集之前查看更改集,请使用--no-execute-changeset标志.
我正在研究 AWS CloudFormation,我创建了一个模板,我要求用户在其中选择环境。
根据选定的价值,我创建了资源。用户必须在 DEV、QA、PROD、UAT 等之间进行选择,但是当我将此值添加到 S3 存储桶名称 (-downloads.com) 后,这是不允许的,因为 S3 存储桶名称中不允许使用大写字母。
因此,我确实在 JSON 中进行了更改,其中我将fn::Transform与"Condition":"Lower" 一起使用, 但随后在创建以下资源时发生错误。
未找到名为 871247504605::String 的转换。用户请求回滚。
下面是我的 CloudFormation JSON
{
"AWSTemplateFormatVersion": "2010-09-09",
"Description": "Provides nesting for required stacks to deploy a full resource of ****",
"Metadata": {
"AWS::CloudFormation::Interface": {
"ParameterGroups": [
{
"Label": {
"default": "Enviroment Selection"
},
"Parameters": [
"selectedEnv"
]
}
],
"ParameterLabels": {
"selectedEnv": {
"default": "Please select Enviroment"
}
}
}
},
"Parameters": {
"selectedEnv": {
"Type": "String",
"Default": …Run Code Online (Sandbox Code Playgroud) json amazon-s3 amazon-web-services aws-cloudformation aws-cloudformation-custom-resource
我需要做的任务是让CDN依赖于S3存储桶.但我们希望使用现有的存储桶而不是创建新的存储桶.
这是我正在尝试的示例代码:
"Parameters" : {
"UseExistingBucket" : {
"Description" : "Yes/No",
"Default" : "yes",
"Type" : "String",
"AllowedValues" : [ "yes", "no" ]
}
},
"Conditions" : {
"CreateS3Resources" : {"Fn::Equals" : [{"Ref" : "UseExistingBucket"}, "no"]}
},
"Resources" : {
"StaticBucket" : {
"Type" : "AWS::S3::Bucket",
"Condition" : "CreateS3Resources",
"Properties" : {
"BucketName" : { "Fn::Join": [ "-", [ "app", { "Ref": "EnvType" }, "static" ] ] }
},
"DeletionPolicy": "Retain"
},
"MyStaticDistribution": {
"Type": "AWS::CloudFront::Distribution",
"Properties": {
"DistributionConfig": { …Run Code Online (Sandbox Code Playgroud) 从Aurora Serverless的文档中,有3种方法可以创建Aurora无服务器数据库集群:AWS管理控制台,CLI和RDS API.(https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/aurora-serverless.create.html)
根据我的理解,可以EngineMode在RDS API中使用创建Aurora无服务器,但此属性尚未提供AWS::RDS::DBCluster(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster .html).
是否可以从cloudformation创建Aurora无服务器群集?任何意见,将不胜感激!
amazon-web-services aws-cloudformation amazon-aurora serverless aws-aurora-serverless
我有一个云形成模板 (mainVPC),它在 VPC 中创建几个子网,并导出名称为“PrivateSubnetA”、“PrivateSubnetB”的子网……我有一个不同的云形成模板来创建 DBSubnetGroup。如果用户不提供数据,我想使用“PrivateSubnetA”、“PrivateSubnetB”作为默认值。CloundFormation 不支持在参数中导入值。所以我放了一些默认值(XXXX)并有一个条件部分来查看用户是否提供了一些输入
Conditions:
userNotProvidedSubnetA: !Equals
- !Ref PrivateSubnetA
- XXXX
userNotProvidedSubnetB: !Equals
- !Ref PrivateSubnetB
- XXXX
Run Code Online (Sandbox Code Playgroud)
这有助于我确定用户是否提供了数据。现在我想使用默认值,如果用户没有提供值,否则使用用户提供的值。下面是代码
DBSubnetGroup:
Type: 'AWS::RDS::DBSubnetGroup'
Properties:
DBSubnetGroupDescription: RDS Aurora Cluster Subnet Group
SubnetIds:
- !If
- userNotProvidedSubnetA
- Fn::ImportValue:
!Sub '${fmMainVpc}-PrivateSubnetA'
- !Ref PrivateSubnetA
- !If
- userNotProvidedSubnetB
- Fn::ImportValue:
!Sub '${fmMainVpc}-PrivateSubnetB'
- !Ref PrivateSubnetB
Run Code Online (Sandbox Code Playgroud)
失败并显示错误“模板错误:Fn::ImportValue 中的属性不得依赖于任何资源、导入的值或 Fn::GetAZs”。ImportValue 未在模板中的任何其他地方使用。
有没有办法使用导出的值作为默认值(默认值不能硬编码,它们是从另一个堆栈的运行中导出的值),同时为用户提供一个选项来提供他们自己的值(以创建资源)。
谢谢。
如何修复漂移的 AWS CloudFormation 堆栈?我修改了一个 BackendECS 服务,现在它“漂移”了,但没有关于如何解决这个问题的信息?这让我发疯?关于如何解决这个问题的零信息?
我试图找出GetAttvs Refvs之间的差异${}。
据我了解,您GetAtt仅Ref用于引用同一模板中的对象,并且可以用于引用任何内容?另外我${}什么时候用?
amazon-s3 ×3
aws-cli ×2
amazon-ecs ×1
aws-cloudformation-custom-resource ×1
aws-sdk ×1
json ×1
serverless ×1