【问题标题】:Can't get configuration profile of AppConfig from AWS Lambda function无法从 AWS Lambda 函数获取 AppConfig 的配置文件
【发布时间】:2020-12-12 01:26:05
【问题描述】:

Lambda 函数 - Node.js

const AWS = require('aws-sdk')

exports.handler = async (event) => {
  var appconfig = new AWS.AppConfig({ apiVersion: '2019-10-09' })
  var params = {
    ApplicationId: '6xeris1',
    ConfigurationProfileId: '0ck2ijf'
  }
  const data = await appconfig.getConfigurationProfile(params).promise().catch(err => {
    console.log(err)
  })

  if (data) {
    console.log(data)

    const response = {
      statusCode: 200,
      headers: {
        'Access-Control-Allow-Headers': 'Content-Type',
        'Access-Control-Allow-Origin': '*',
        'Access-Control-Allow-Methods': 'OPTIONS,POST,GET'
      },
      body: JSON.stringify(data)
    }
    return response
  } else {
    const response = {
      statusCode: 500,
      headers: {
        'Access-Control-Allow-Headers': 'Content-Type',
        'Access-Control-Allow-Origin': '*',
        'Access-Control-Allow-Methods': 'OPTIONS,POST,GET'
      },
      body: {}
    }
    return response
  }
}

getConfigurationProfile 被调用时没有响应。无数据,无错误,函数超时。

我在 Lambda 执行 IAM 角色中添加了以下内联策略,但它不起作用。

"Action": "appconfig:*"

有人在我之前解决了这个问题吗?谢谢。

【问题讨论】:

  • 您的函数是否在 VPC 中?
  • 是的。我删除了 VPC 连接,它可以工作。谢谢你。但我要连接 RDS,因此可能需要 VPC。这种情况,是否应该开启RDS安全组的443?
  • 很高兴听到。如果您不介意,我会提供答案以供将来参考。

标签: amazon-web-services aws-lambda aws-systems-manager aws-app-config


【解决方案1】:

基于 cmets。

问题是由于 lambda 函数被配置为在 VPC 中。但是,VPC 中的函数没有 Internet 访问权限,也没有公共 IP。来自docs

将函数连接到公共子网不会为其提供 Internet 访问权限或公共 IP 地址

解决方案是使用VPC endpoint

【讨论】:

  • 谢谢。 lambda 函数应该在 VPC 中以连接 RDS,并且 VPC 端点很有用。但是您的评论帮助我更快地解决了这个问题。谢谢。
  • @Kim-Jimin 感谢您告诉我。我会将 vpc 端点添加到答案中。
猜你喜欢
  • 2022-07-21
  • 2018-01-26
  • 1970-01-01
  • 2018-08-12
  • 2017-01-16
  • 2018-04-23
  • 2023-03-03
  • 1970-01-01
  • 2020-02-15
相关资源
最近更新 更多