我们已经通过API网关区域端点上的公共API公开了Lambda a。我们还创建了API密钥。我们可以从本地桌面调用这个API,因为这是一个公共API。但是我们不能通过Lambda B调用这个API。现在Lambda A和B都在VPC内部,可以访问互联网。下面是我们使用的代码
import requests
import psycopg2
import time
from datetime import datetime
import uuid
import json
def lambda_handler(event, context):
url = 'https://xxx.execute-api.ap-south-1.amazonaws.com/v1'
myinp = {
"s3url": "s3://xxxx-aws-dev-xxx/xxx/xxx.jpg",
"sourcename":"xxx"
}
Api_key = "xxxCJnl97g5hfke85jmkG1a2F9uS4ZplaJxLjxxx"
header = {"X-Api-Key" : Api_key}
x = requests.post(url, json = myinp, headers=header).json()
print(x)
当Lambda调用API时,我们得到以下响应。
{'message':'forbidden'}
我们也尝试了不同的密钥头,如x-api-key
和api-key
,但没有命中。如果需要更多信息,请告诉我们。
无法从Lambda调用API网关
由于您的错误消息是{'message':'forbidden'}
,似乎您确实调用API网关。如果无法调用,则不会看到此消息。
很可能是一些权限设置或URL不正确。