Как обновить версию лямбда-функции в API Gateway с помощью boto3? - PullRequest
4 голосов
/ 17 мая 2019

Мне нужно обновить версию моей лямбда-функции в API Gateway с помощью boto3, с test:3 до test:4.

description

Из того, что я понял, мне нужно было бы использовать функцию update_integration() в boto3 и обновить ее с помощью patchOperations, но я не понимаю, как, так как документации об этом не так много.

client = boto3.client(
    'apigateway', 
    aws_access_key_id='access_key',
    aws_secret_access_key='secret_key',
    region_name = 'us-east-1'
)
response = client.update_integration(...) # something here?

Есть предложения?

------- РЕДАКТИРОВАТЬ -------

arn = 'arn:aws:apigateway:us-east-1:lambda:path/2015-03- 
31/functions/{lambdaFunctionArn}'

response = client.update_integration(
    restApiId= '{restApiId}',
    resourceId= '{resourceId}',
    httpMethod='POST',
    patchOperations=[
        {
            'op': 'replace',
            'path': '/uri',
            'value': arn
        }
    ]
)

Я нашел это решение на этом форуме: https://forums.aws.amazon.com/thread.jspa?messageID=694264&#694264, но я получаю эту ошибку:

botocore.errorfactory.BadRequestException: произошла ошибка (BadRequestException) при вызове операции UpdateIntegration: Роль ARN должна быть указана для интеграции AWS

1 Ответ

0 голосов
/ 19 мая 2019

Я нашел решение.Я должен был добавить /invocations в конце арн:

arn = 'arn:aws:apigateway:us-east-1:lambda:path/2015-03- 
31/functions/{lambdaFunctionArn}/invocations'

response = client.update_integration(
    restApiId= '{restApiId}',
    resourceId= '{resourceId}',
    httpMethod='POST',
    patchOperations=[
        {
            'op': 'replace',
            'path': '/uri',
            'value': arn
        }
    ]
)
...