amazon-web-services - 无法从 AWS Lambda 函数获取 AppConfig 的配置文件

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

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:*"
有人在我之前解决过这个问题吗?谢谢你。

最佳答案

根据评论。
问题是由于 lambda 函数被配置为 在 VPC 中 .但是,VPC 中的函数没有 Internet 访问权限,也没有公共(public) IP。来自 docs :

Connecting a function to a public subnet doesn't give it internet access or a public IP address.


解决方案 是使用 VPC endpoint .

关于amazon-web-services - 无法从 AWS Lambda 函数获取 AppConfig 的配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63543521/

相关文章:

python - Boto3/S3 : Renaming an object using copy_object

node.js - 使用 AWS Lambda( Node )在 AWS DynamoDB 中更新项目

amazon-web-services - 无法通过 AWS Session Manager 工作获得 SSH 连接

amazon-web-services - AWS 系统管理器 + CodeDeploy + Lightsail

ubuntu - EC2 ubuntu 实例中无法访问 SSD 驱动器

email - 设备(事物)与 AWS IoT 断开连接时发送邮件的规则

amazon-web-services - 如何获取 AWS::ApiGateway::Method 的 arn

amazon-web-services - SNS 触发器的 Lambda 函数扩展

linux - ElasticBeanstalk - 将 ec2-user 添加到另一个组