问题标签 [aws-cloudformation-custom-resource]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2305 浏览

typescript - 在创建 RDS 实例后运行 AWS CDK 自定义资源以进行数据库设置

如何在 RDS 实例启动后使用 AWS CDK 触发 Lambda 函数?

我正在使用 AWS CDK 和 Typescript 设置具有 RDS 实例和 EKS 集群的系统。创建RDS实例后,我想在数据库实例中设置一些用户,供EKS上的微服务使用。

为此,我创建了一个由 Lambda 函数支持的自定义资源,也在 Typescript 中实现。lambda 函数检索 CDK 为 RDS 实例生成的秘密以及我的数据库用户的一些秘密,连接到数据库并创建数据库用户。理想情况下,自定义资源在数据库实例启动之后和微服务安装之前运行。我怎样才能做到这一点?

我还没有找到明确声明依赖项的方法,而且我的 Lambda 在技术上不需要依赖项(除了 using secret.grantRead(lambda))。由于创建时间长,仅在 Lambda 中运行重试循环直到一切就绪可能无法正常工作。非常感谢任何代码片段/示例/...,到目前为止,我只找到了有关一般方法的参考资料。

更新详细信息以回复@jogold:与

CDK 将使用数据库的访问凭据生成具有或多或少随机名称的秘密。我尝试将秘密直接附加到我的 Lambda:

但这给了我

此外,界面ISecret似乎没有密钥的 ID/名称,所以我不知道在 Lambda 中如何处理它。

0 投票
1 回答
2102 浏览

amazon-cloudformation - 创建 RDS 数据库用户 CloudFormation

由于 CloudFormation 本身不支持为 RDS 数据库创建数据库用户,因此我正在寻找通过 CustomResource 执行此操作的方法。但是,即使我编写了由 Lambda 函数支持的 CustomResource,我也看不到允许我将用户添加到数据库实例的 RDS API 端点。

谁能建议为 Postgres 10 数据库引擎支持的 Aurora 集群创建数据库用户的潜在方法?

0 投票
1 回答
491 浏览

amazon-web-services - 使用带有 lambda 的自定义资源以 cloudformation 导出输出

我使用自定义资源运行 CFN 模板来导出 route53 私有托管区域名称。我能够根据需要导出托管区域名称,但无法将此托管区域名称导入另一个堆栈。我收到此错误:

任何帮助表示赞赏。谢谢你。这是我的代码。

0 投票
3 回答
3158 浏览

amazon-web-services - 通过 Cloud Formation 创建 Amazon Elasticsearch Service 时出现 CloudWatch 资源访问策略错误

我正在尝试创建一个启用了的弹性搜索域LogPublishingOptions。虽然启用 LogPublishingOptions ES 表示它没有足够的权限在 Cloudwatch 上创建 LogStream。

我尝试创建一个具有角色的策略并将该策略附加到 ES 引用的 LogGroup 但它不起作用。以下是我的弹性搜索云形成模板,

执行后,它会创建除 MYESDOMAIN 之外的所有资源。它说

为 CloudWatch Logs 日志组 index_slow 指定的资源访问策略未授予 Amazon Elasticsearch Service 创建日志流的足够权限。请检查资源访问策略。(服务:AWSElasticsearch;状态代码:400;错误代码:ValidationException)

知道这里缺少什么吗?

0 投票
0 回答
50 浏览

amazon-cloudformation - 如何在 AWS 云形成中从堆栈发出 https 请求

例子。我为此使用云形成

  1. 必须创建AB实例来处理流量。
  2. 当使用堆栈资源创建 A 时,必须使用对 A 的 http 请求进行检查。
  3. 如果 A 给出 200 ok .. 那么我将继续创建 B 实例。
  4. 如果 A 未运行且未启动,则必须回滚此堆栈。

需要帮助如何使用同一堆栈中创建的资源并根据响应进一步移动或回滚来发出https 请求。

0 投票
1 回答
124 浏览

amazon-web-services - 无法在具有云形成的用户数据中运行命令

嗨团队,这是我用于自动缩放的云形成模板,它工作正常,但问题是我在Userdata中运行了一个不起作用的命令。我已经尝试了所有可能的事情,但根本没有工作。如果我手动运行此命令,则此命令有效。所以请帮助我解决这个问题。我在 Ubuntu 机器上运行这个命令。

0 投票
2 回答
464 浏览

amazon-web-services - CloudFormation 模板不选择 KeyPair

我已经使用以下四个资源成功创建了Cloud Formation Template (CFT)

  1. 专有网络
  2. 子网
  3. 互联网网关
  4. 附加网关

现在,我正在尝试使用 EC2 实例创建一个安全组,这是代码。

但是,当我在(CFT,如上所示,代码)中使用 Key 参数时,这是我在资源的同一区域中存在的密钥,我的 CFT 堆栈失败并出现以下错误:

Template format error: Unresolved resource dependencies [DevOpsAutomation] in the Resources block of the template note: DevOpsAutomation is my keyname

我验证的步骤:

  1. CFT模板资源和key在同一个区域
  2. 已删除和新创建的密钥对
  3. 尝试使用不同的密钥对
  4. 我在任何地方都看不到将密钥与 CFT 堆栈一起导入的选项,以便我的 EC2 实例可以使用它。
  5. 即使在创建堆栈时,密钥也不会出现在堆栈的部分中(在部分中可见keypairparameter

我的问题是,我应该如何使用我的 AWS 账户中存在的密钥对创建 EC2 实例(作为 CFT 的一部分)?

0 投票
2 回答
1159 浏览

amazon-web-services - CloudFormation 模板失败并出现错误“服务:AmazonEC2;状态代码:400;错误代码:不支持”

我使用以下资源创建了 CloudFormaton 模板

除 EC2Instance 失败并出现以下错误外,所有资源创建均成功:

The requested configuration is currently not supported. Please check the documentation for supported configurations. (Service: AmazonEC2; Status Code: 400; Error Code: Unsupported; Request ID: a59a2d39-3aa9-4f7b-9cbd-db05dca0d61e)

The following resource(s) failed to create: [Ec2Instance]. . Rollback requested by use

我检查过的内容:

  1. ImageID和InstanceType在同一个区域(或AZ)
  2. 满足所有其他对象及其依赖项
  3. 虽然我知道我还没有创建路由表、路由条目,但这不应该影响 EC2 实例资源的创建
  4. 我是创建资源的特权用户。

请帮助或指导我在这里缺少的东西

0 投票
2 回答
429 浏览

amazon-web-services - 参数值在 aws cli Cloudformation 中不起作用

我正在通过 AWS CLI 运行我的云形成模板。它工作正常并在 AWS 门户上创建堆栈,但我面临一个问题,即无法更改默认参数值。我正在使用 CLI 传递我自己的参数,但只有最后一个参数值从堆栈中更改(即 30),其余参数没有更改,而是从模板正文中选择默认值。我已经通过更改参数的位置尝试了所有可能的事情,但它仍然是一样的。所以请让我知道我将如何解决这个烦人的问题。这是我的命令:-

0 投票
1 回答
89 浏览

amazon-web-services - cloudformation 输出部分验证错误

我正在使用弹性 IP 和安全组创建一个实例。在添加输出部分之前,一切正常。将输出部分添加到现有模板后,我收到了无效的 templateBody 错误。该模板在没有“输出”部分的情况下可以正常工作。下面是相关代码: