小编Dar*_*kar的帖子

如何将现有 CloudFormation 堆栈分解为单独的嵌套堆栈,将现有资源移动到嵌套堆栈下

问题:

最近,我们遇到了关于您可以在单个 CloudFormation 模板中声明的最大资源数量的问题。一个模板最多可以支持 200 个资源,我们非常接近这个限制。

为了指定更多资源,我们需要使用Nested Stacks将我们的模板分成多个模板,我们正在评估分解模板的最佳方法。

我们的方法:

我们从主堆栈创建了一个嵌套堆栈,并从主堆栈中删除了一些资源并将它们添加到新的嵌套堆栈中。

错误:

我们在嵌套堆栈中遇到错误,例如

资源已存在于根堆栈中

1.是否可以将我们的主模板分解为现有资源的嵌套堆栈?即移动我们现有的资源嵌套堆栈下?或者我们只需要将新资源添加到嵌套堆栈中并保持我们的主堆栈与现有资源一样?

2.我们已经达到了 200 个资源限制,因此也很难添加更多嵌套堆栈。

模板中的资源,

我们大约有 100 个 CloudWatch 警报、DynamoDB 表、Lambda、ES、KMS、S3 和其他资源,我们不想将它们分成特定于资源类型的嵌套堆栈。

amazon-ec2 amazon-web-services aws-cloudformation aws-sdk aws-lambda

6
推荐指数
1
解决办法
3470
查看次数

如何从 AWS S3“ObjectRemoved:Delete”事件获取文件大小

背景

我正在 S3 存储桶中存储一些文件(对象)。每当从 S3 存储桶中删除任何文件时,我的 Lambda 函数就会被触发。lambda 函数需要从 DynamoDB 中减去对象大小。

问题: S3 deleteObject 事件不发送对象大小

S3 删除对象事件示例

{
  "Records": [
    {
      "eventVersion": "2.0",
      "eventTime": "1970-01-01T00:00:00.000Z",
      "requestParameters": {
        "sourceIPAddress": "127.0.0.1"
      },
      "s3": {
        "configurationId": "testConfigRule",
        "object": {
          "sequencer": "0A1B2C3D4E5F678901",
          "key": "HappyFace.jpg"
        },
        "bucket": {
          "arn": "arn:aws:s3:::mybucket",
          "name": "sourcebucket",
          "ownerIdentity": {
            "principalId": "EXAMPLE"
          }
        },
        "s3SchemaVersion": "1.0"
      },
      "responseElements": {
        "x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH",
        "x-amz-request-id": "EXAMPLE123456789"
      },
      "awsRegion": "us-east-1",
      "eventName": "ObjectRemoved:Delete",
      "userIdentity": {
        "principalId": "EXAMPLE"
      },
      "eventSource": "aws:s3"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

请帮助我找到适合我的用例的解决方案。

amazon-s3 amazon-web-services aws-sdk aws-sdk-nodejs

5
推荐指数
1
解决办法
2507
查看次数

即使账户中存在域,AWS CLI list-domain-names/describe-domain也会返回空

我们在 AWS 帐户之一中创建了 ElasticSearch 域。

我们正在尝试使用AWS cli命令来“描述”这个域。

aws es describe-elasticsearch-domain --domain-name <domain-name>
Run Code Online (Sandbox Code Playgroud)

但接收错误:

调用DescribeElasticsearchDomain操作时发生错误(ResourceNotFoundException):找不到域:

我们然后使用 list-domain 命令:

aws es list-domain-names
Run Code Online (Sandbox Code Playgroud)

但收到空响应:

{ “域名”: [] }

我们仔细检查了帐户信息。和 .aws 文件夹中的凭据,并且我们指向正确的 aws 帐户,还可以查看该帐户中除 ElasticSearch 之外的其他资源。

任何帮助表示赞赏。

cmd amazon-web-services node.js aws-cli aws-sdk

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

AWS ElasticSearch 从带有方案、主机和白名单的远程集群问题重新索引

背景:

  • 我们在 6.8 版上有两个 AWS ElasticSearch 集群,位于相同的 AWS 账户和区域。
  • 我们需要将集群 1(源)中的索引之一重新索引到集群 2(目标)。

我尝试将 reindex API 用于 6.8,如ES 文档中所述

POST <https://endpoint of destination Elasticsearch>/_reindex 

    {
      "source": {
        "remote": {
          "host": "https://endpoint-of-source-elasticsearch-cluster-1.es.amazonaws.com"
        },
        "index": "source-index-name"
      },
      "dest": {
        "index": "destination-index-name"
      }
    }
Run Code Online (Sandbox Code Playgroud)

问题:

我得到以下错误

{
    "error": {
        "root_cause": [
            {
                "type": "x_content_parse_exception",
                "reason": "[8:3] [reindex] failed to parse field [source]"
            }
        ],
        "type": "x_content_parse_exception",
        "reason": "[8:3] [reindex] failed to parse field [source]",
        "caused_by": {
            "type": "illegal_argument_exception",
            "reason": "[host] must be …
Run Code Online (Sandbox Code Playgroud)

cloud amazon-web-services elasticsearch aws-lambda elastic-stack

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