小编kon*_*ten的帖子

为什么AWS Lambda CFN S3响应在删除事件时返回403?

我正在使用无服务器来部署我使用自定义资源迁移RDS数据库的应用程序.

我部署时一切正常,但是当我删除堆栈后一小时后自定义资源超时,并显示消息"自定义资源无法在预期时间内稳定".对预先签名的AWS S3 URL的请求将返回403错误代码AccessDenied.

我的第一个发送的,成功的响应主体到预先签名的URL(在创建时):

{
    "Status": "SUCCESS",
    "RequestId": "bd487606-8017-49f2-99af-b29b2bbad40b",
    "LogicalResourceId": "SheltersDBMigrationTrigger",
    "StackId": "arn:aws:cloudformation:us-east-1:848139458219:stack/update-shelters-dev/c08a80e0-2e4e-11e9-87a6-124d1eab42ba",
    "PhysicalResourceId": "DB_MIGRATION"
}
Run Code Online (Sandbox Code Playgroud)

我的第二个发送,失败的响应正文到预先签名的URL(删除时):

{
    "Status": "SUCCESS",
    "RequestId": "2d166d36-7c0c-4848-9eb5-aedaf5e9172c",
    "LogicalResourceId": "SheltersDBMigrationTrigger",
    "StackId": "arn:aws:cloudformation:us-east-1:848139458219:stack/update-shelters-dev/c08a80e0-2e4e-11e9-87a6-124d1eab42ba",
    "PhysicalResourceId": "DB_MIGRATION"
}
Run Code Online (Sandbox Code Playgroud)

lambda.go:

func handler(ctx context.Context, event cfn.Event) (rid string, data map[string]interface{}, err error) {
  rid = "DB_MIGRATION"

  if event.RequestType != cfn.RequestCreate {
    return
  }

  db, err := sql.Open("mysql", fmt.Sprintf("%s:%s@(%s)/", os.Getenv("DB_MASTER_USER"), os.Getenv("DB_MASTER_PASSWORD"), os.Getenv("DB_ADDRESS")))
  if err != nil {
    panic(err)
  }
  defer db.Close()

  defer func() …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 amazon-web-services aws-cloudformation aws-lambda serverless-framework

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

Terraform - 创建 OpenStack 负载均衡器时出错:找不到资源

我正在尝试使用 Terraform 创建 OpenStack 负载平衡器,但出现以下错误terraform apply

错误:创建 openstack_lb_loadbalancer_v2 时出错:找不到资源

在 load-balancer/main.tf 第 71 行,在资源“openstack_lb_loadbalancer_v2”“lb_1”中:71:资源“openstack_lb_loadbalancer_v2”“lb_1”{

我的模板如下所示。

resource "openstack_lb_loadbalancer_v2" "lb_1" {
  name          = "loadbalancer"
  vip_subnet_id = openstack_networking_subnet_v2.public.id
}

resource "openstack_lb_listener_v2" "listener_1" {
  name                      = "https"
  protocol                  = "TERMINATED_HTTPS"
  protocol_port             = 443
  loadbalancer_id           = openstack_lb_loadbalancer_v2.lb_1.id
  default_tls_container_ref = openstack_keymanager_container_v1.tls_1.container_ref
}

resource "openstack_networking_network_v2" "lb_network" {
  name = "lb-network"
  port_security_enabled = "true"
}

resource "openstack_networking_subnet_v2" "public" {
  name = "lb-subnet"
  network_id = openstack_networking_network_v2.lb_network.id
  cidr = "10.0.0.0/24"
  ip_version = 4
}
Run Code Online (Sandbox Code Playgroud)

我不知道如何进一步调试。不是说vip_subnet_id找不到吗?还是openstack_lb_loadbalancer_v2 …

openstack terraform terraform-provider-openstack

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