标签: aws-cloudformation

无法使用CloudFormation在Lambda函数上创建SNS事件源

这是与我的问题相关的Cloudformation模板代码:

"SNSTopic": {
  "Type": "AWS::SNS::Topic",
  "Properties": {
    "TopicName": "JumpboxPresenceTopic",
    "DisplayName": "Jumpbox Presence Topic",
    "Subscription": [
      {
        "Endpoint": {
          "Fn::GetAtt": [
            "Lambda",
            "Arn"
          ]
        },
        "Protocol": "lambda"
      }
    ]
  }
},
"Lambda": {
  "Type": "AWS::Lambda::Function",
  "Properties": [...]
Run Code Online (Sandbox Code Playgroud)

我可以在SNS仪表板中看到该主题: 在此输入图像描述

但它不会显示在lambda函数Event Sources面板中: 在此输入图像描述

关于这一点的奇怪之处在于,如果我从SNS仪表板为同一个lambda函数创建一个新订阅,则不会创建新的订阅,因为它将完全重复.但是,现在,如果我检查Lambda仪表板中的Event Sources面板,我可以看到以下新条目: SNS: JumpboxPresenceTopic在此输入图像描述

我觉得这在亚马逊方面是一个问题,但我可能是错的.我的方法有问题还是AWS的限制?

amazon-web-services amazon-sns aws-cloudformation aws-lambda

18
推荐指数
1
解决办法
5021
查看次数

RDS与云形成和AZ问题

我正在使用云形成来创建包含RDS实例的设置.

由于以下错误,我在创建RDS实例时遇到一些困难:

数据库子网组不符合可用区域覆盖要求.请添加子网以覆盖至少2个可用区域.目前的报道:1

问题是整个设置都在一个AZ上......我该怎么做?只是在不同的AZ中创建一个额外的子网,其中没有任何内容只适用于RDS?

也许AWS可以通过某种方式自动创建该子网,让我摆脱困境.我不想要那个额外的子网,我不想让我的用户为此选择另一个AZ负担.

amazon-web-services amazon-rds aws-cloudformation

18
推荐指数
1
解决办法
6551
查看次数

无法删除cfn堆栈,角色无效或无法假设

我是aws cloudformation的新手; 我想知道是否有人知道一种强制删除堆栈的方法,当它不会删除时.它失败并出现此错误:

Failed to delete stack: Role arn:aws:iam::role/CloudFormationRole-NestedCFN-CodePipeline is invalid or cannot be assumed
Run Code Online (Sandbox Code Playgroud)

当我尝试删除嵌套的子堆栈而不是首先删除父堆栈时,通常会发生此错误.如果我不小心删除了父堆栈,有没有办法删除嵌套堆栈?

amazon-web-services aws-cloudformation aws-codecommit aws-codepipeline

18
推荐指数
3
解决办法
5352
查看次数

Step Function 中的嵌套 Step Function:未知错误:“...无权创建托管规则”

我在 SAM/CloudFormation 模板中创建了一个 Step Function(父),它调用另一个 Step Function(子)。我正在按照使用服务集成模式从 Parent 调用 Child 的说明进行操作。但是我遇到了一个与 IAM 相关的(我认为)错误,我在通过 CLI 部署时无法解决。(错误显示在 CLI 输出中,因此它从未真正进入 AWS。之前有很多部署,因此changeset只是尝试使用此部署修改 Step Function。)

'arn:aws:iam::{Account-Number}:role/{Parent-Step-Function-Role-Name}' is not authorized to create managed-rule. (Service: AWSStepFunctions; Status Code: 400; Error Code: AccessDeniedException; Request ID: {Long-Id-Number})

为了获得我想要的同步行为(父调用子,等待子的执行完成,然后移动到下一个状态)我使用建议(来自上面的服务集成模式链接)创建一个任务(在我的 SAM 模板中)如下所示:

...More States...

"Call Child State": {
  "Type": "Task",
  "Next": "The Next State",
  "Resource": "arn:aws:states:::states:startExecution.sync",
  "Parameters": {  
    "Input": {
      "comment": "Hello World!"
    },
    "StateMachineArn": "${ChildStepFunction}",
    "Name": "ChildExecutionFromParent"
  }
},

...More States...
Run Code Online (Sandbox Code Playgroud)

我已经为 Parent 定义了 IAM …

amazon-web-services aws-cloudformation amazon-iam aws-step-functions aws-sam

18
推荐指数
2
解决办法
7229
查看次数

是否可以从CloudFormation模板触发创建lambda

我尝试使用cloudformation创建一组lambdas.我希望lambdas一旦被创建就会被触发.我在不同的博客看到创建触发器s3或者sns,但没有似乎是触发选项lambda一旦被创建.任何选择?

aws-cloudformation aws-lambda

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

如何在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 Amplify cloudformation parameter.json 如何工作?

我最近开始使用 AWS Amplify,并且有使用 vanilla cloudformation 的经验。除了parameters.json部分之外,大部分内容都有意义。

貌似Amplify为我们使用的资源生成了cloudformation模板,但是它也生成了一个parameters.json文件,我以为相当于Parameterscloudformation的那一段,但好像不是。

在 Amplify 中parameters.json,内容只是object使用键值对。而在 cloudformation 中,参数具有如文档中所述的定义语法。

此外,parameters.json它似乎能够Ref以与 cloudformation 模板相同的方式进行调用。有谁知道什么是解析parameters.json文件并用Ref实际值替换?

例如在storage类别中,parameters.json文件有这样的键

"authRoleName": {
    "Ref": "AuthRoleName"
},
Run Code Online (Sandbox Code Playgroud)

AuthRoleName好像在两个目录amplify-meta.json下都定义了backend,但是team-provider-info.jsonamplify目录下也定义了。

有谁知道AuthRoleName它使用的是哪个文件?从我的文档阅读,无论是amplify-meta.jsonteam-provider-info.json是自动生成的。

出现了很多这些问题,因为我很好奇是否可以在 cloudformation UI 中手动执行 CF 中自动生成的 CF 模板。当我尝试复制参数部分和元数据部分时,我得到了无效的语法。

这让我认为 amplify 是使用它自己的解析器来生成最终的 CF 模板并在 CF 中执行它。我尝试搜索 cli 存储库,但找不到。

amazon-web-services aws-cloudformation aws-amplify

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

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万
查看次数