启动API测试时如何在AWS SAM LOCAL中访问私有AWS资源

时间:2018-08-20 14:26:04

标签: aws-lambda aws-api-gateway amazon-rds aws-vpc aws-sam-cli

我一直在与AWS SAM Local一起创建并测试lambda / api网关堆栈,然后再将其交付生产。我最近在尝试本地测试(sam local start-api --profile [profile])时尝试访问私有资源(RDS)时遇到了一堵砖墙。如果进行ssh隧道连接,我能够连接到其中一些私有资源,但是我想知道是否能够在不使用VPC进行隧道连接的情况下进行本地测试。

下面是一个示例sam模板:

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: Example Stack

Globals:
    Function:
        Timeout: 3

Resources:
    ExampleFunction:
        Type: 'AWS::Serverless::Function'
        Properties:
            Handler: index.example
            Runtime: nodejs8.10
            CodeUri: .
            Description: 'Just an example'
            MemorySize: 128
            Role: 'arn:aws:iam::[arn-role]'
            VpcConfig:
                SecurityGroupIds:
                    - sg-[12345]
                SubnetIds:
                    - subnet-[12345]
                    - subnet-[23456]
                    - subnet-[34567]
            Events:
                Api1:
                    Type: Api
                    Properties:
                        Path: /example
                        Method: GET

1 个答案:

答案 0 :(得分:3)

在阅读了许多文档并在stackoverflow上搜索了所有有帮助的内容之后,我最终加入了#samdev松弛频道并寻求帮助。在EC2实例上为我提供了一些有关设置OpenVPN的指导和指导。

设置非常容易(不到30分钟即可完成),EC2实例使用预烘焙的AMI映像。确保将新的EC2实例分配给包含需要访问的资源的适当VPC。


这是OpenVPN指南的链接:https://openvpn.net/index.php/access-server/on-amazon-cloud.html

您可以在此处请求邀请#samdev松弛频道:https://awssamopensource.splashthat.com/

相关问题