标签: aws-cloudformation

如何在cloudformation"Fn :: Sub"中转义"$ {}"

我希望此资源与!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可以在这里工作吗?不幸的是,文档没有提到有关转义的任何内容.

aws-cloudformation

17
推荐指数
1
解决办法
6524
查看次数

AWS CLI S3:使用终端在本地复制文件:致命错误:调用HeadObject操作时发生错误(404)

我正在尝试从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

17
推荐指数
2
解决办法
1万
查看次数

AWS CloudFormation创建堆栈与部署

有人可以清楚地向我解释AWS CLI Cloudformation create-stackdeploy命令之间的区别和优先级吗?对我来说,似乎他们做同样的事情并部署资源.

为什么当您从cli运行deploy命令时,create stack没有可执行的更改集,而文档说:

通过创建并执行更改集来部署指定的AWS CloudFormation模板.AWS CloudFormation执行更改集后,该命令将终止.如果要在AWS CloudFormation执行更改集之前查看更改集,请使用--no-execute-changeset标志.

amazon-web-services aws-cloudformation aws-cli

17
推荐指数
2
解决办法
4169
查看次数

AWS Cloudformation - 如何在 json/yaml 模板中执行字符串大写或小写

在此处输入图片说明

我正在研究 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

17
推荐指数
2
解决办法
1万
查看次数

CloudFormation,在DependsOn上应用条件

我需要做的任务是让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)

amazon-s3 amazon-web-services aws-cloudformation

16
推荐指数
3
解决办法
8461
查看次数

我可以使用Cloudformation设置AWS Cognito用户池标识提供程序吗?

我想设置一个cognito用户池,并使用cloudformation yml文件自动配置我的Google身份提供商.

我检查了所有文档但是找不到任何关于这样做的东西.有什么想法怎么做?

在此输入图像描述

amazon-web-services aws-cloudformation

16
推荐指数
2
解决办法
1957
查看次数

从cloudformation创建Aurora无服务器集群?

从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

16
推荐指数
2
解决办法
5751
查看次数

AWS CloudFormation 函数调用失败:Fn::ImportValue 不得依赖于任何资源、导入的值或 Fn::GetAZs

我有一个云形成模板 (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

16
推荐指数
3
解决办法
1万
查看次数

如何修复漂移的 AWS CloudFormation 堆栈?

如何修复漂移的 AWS CloudFormation 堆栈?我修改了一个 BackendECS 服务,现在它“漂移”了,但没有关于如何解决这个问题的信息?这让我发疯?关于如何解决这个问题的零信息?

amazon-web-services amazon-ecs aws-cloudformation

16
推荐指数
2
解决办法
1万
查看次数

Cloudformation 何时使用 getatt、ref 与 ${}

我试图找出GetAttvs Refvs之间的差异${}

据我了解,您GetAttRef用于引用同一模板中的对象,并且可以用于引用任何内容?另外我${}什么时候用?

aws-cloudformation

16
推荐指数
2
解决办法
6760
查看次数