Доступ к Amazon S3 через Chalice / Lambda с включенными подсетями - PullRequest
0 голосов
/ 27 марта 2020

У меня есть некоторый рабочий код для загрузки файла в S3 cia Chalice / Lambda:

вот код, я скопировал этот конкретный блок из другой записи stackoverflow :

from chalice import Chalice, Response

import boto3

app = Chalice(app_name='helloworld')  # I'm just modifying the script I used for the tutorial 
s3 = boto3.client('s3', region_name='us-west-2')
BUCKET = 'chalicetest1'

@app.route('/')
def index():
    return {'status_code': 200,
            'message': 'welcome to test API'}

@app.route('/upload/{file_name}, methods=['PUT'], content_types=['application/octet-stream'])
def upload_to_s3(file_name):
    try:
        body = app.current_request.raw_body
        temp_file = '/tmp/' + file_name
        with open(temp_file, 'wb') as f:
            f.write(body)
        s3.upload_file(temp_file, BUCKET, file_name)
        return Response(message='upload successful',
                        headers=['Content-Type': 'text/plain'],
                        status_code=200)
    except Exception, e:
        app.log.error('error occurred during upload %s' % e)
        return Response(message='upload failed',
                        headers=['Content-Type': 'text/plain'],
                        status_code=400)

Этот код работает как брелок, без проблем. Однако другой части моего кода требуется доступ к конечной точке ec2 на другом сервере. Поэтому я добавил в конфигурацию «subnet_ids» & «security_group_ids». json В этот момент вызов ec2 работает нормально, но загрузка s3 больше не работает. Когда я удаляю параметры в конфиге. json загрузка s3 снова работает, но вызов ec2 не удался.

Я попытался отредактировать конфигурацию json для корзины, но безуспешно. Какие параметры мне нужно добавить, чтобы корзина была доступна в группе безопасности? Самое странное, что я могу получить доступ к корзине с сервера ec2 без проблем. Так что меня удивляет, почему лямбда может получить доступ к корзине, а не когда я добавляю лямбду в группу безопасности. Какие-нибудь мысли?

...