无法从AWS Lambda函数获取AppConfig的配置配置文件

问题描述

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,body: {}
    }
    return response
  }
}

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

我在Lambda执行IAM角色中添加了以下内联策略,但这没用。

"Action": "appconfig:*"

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

解决方法

基于评论。

该问题是由于lambda功能已配置为在VPC中 。但是,VPC中的功能没有互联网访问权限,也没有公共IP。来自docs

将功能连接到公共子网不能访问Internet或公共IP地址

解决方案是使用VPC endpoint