Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,359,801
Community Members
 
Community Events
168
Community Groups

Opsgenie python sdk integration with AWS Lambda failed to create alert

Hello everyone,

I am trying to create alerts from AWS Lambda using python SDK. When I execute the script from my PC or AWS EC2, it works fine and takes ~10 seconds (business logic + fetching data from others resources) to create all the alerts in Opsgenie. Now, when I try to execute it from AWS Lambda, the `create_alert` API times out.  Below is the code that works in EC2 scripts but not in AWS Lambda.

try:
body = CreateAlertPayload(
message=message,
alias=message,
responders=[{
'name': 'My Team',
'type': 'team'
}],
tags=tags,
priority=priority
)
create_response = alert_api.create_alert(create_alert_payload=body)
print(f'offline device: {device}, request: {create_response.request_id}')
except ApiException as err:
print(f"Exception when calling AlertApi->create_alert: {err}\n")

 Is there something that I missed? 

3 answers

1 vote
Samir Atlassian Team Jun 24, 2021

Hi @Ahmad Al-Sajid ,

 

This seems to be more of a lambda specific issue. The one thing I can think of, is you need to have installed the opsgenie-sdk. So you will need to install the opsgenie-sdk locally (i.e. pip install opsgenie-sdk), and upload that to the lambda function dependencies so that the lambda function can use the SDK.

 

If you've done that already, are any of the opsgenie-sdk commands working from python? 

 

Thanks,

Samir

Hi @Ahmad Al-Sajid 

could you please tell how did you solve this problem ?

Hi @Reham Adel, we had to turn off SSL verification to make it work then. Still, it is not recommended. 

Like Reham Adel likes this

How did you turn off SSL verification?

Like Reham Adel likes this

thank you for your support 

Hi @Ahmad Al-Sajid
i try to run code to create alarm in aws lambda but i get that error 

"errorMessage": "You are not authorized to perform this action: (401)\nReason: Unauthorized: apiKey is invalid or integration is disabled\nHTTP response headers: HTTPHeaderDict({'Content-Type': 'application/json', 'Content-Length': '98', 'Connection': 'keep-alive', 'Date': 'Sun, 05 Dec 2021 21:11:20 GMT', 'X-Request-Id': 'b67d7a41-5be4-4eb3-b869-945e1330a85e', 'X-Response-Time': '0.0', 'Og-Apigw-Request-Id': 'fa4076ab-2eef-4c40-8ea9-88b7240ec1ac', 'X-Envoy-Upstream-Service-Time': '129', 'Expect-Ct': 'report-uri=\"https://web-security-reports.services.atlassian.com/expect-ct-report/opsgenie-edge-proxy\", max-age=86400', 'Strict-Transport-Security': 'max-age=63072000; preload', 'X-Content-Type-Options': 'nosniff', 'X-Xss-Protection': '1; mode=block', 'Atl-Traceid': 'a7cbcab36b582704', 'Report-To': '{\"group\": \"endpoint-1\", \"max_age\": 600, \"endpoints\": [{\"url\": \"https://dj9s4kmieytgz.cloudfront.net\"}], \"include_subdomains\": true}', 'Nel': '{\"report_to\": \"endpoint-1\", \"max_age\": 600, \"include_subdomains\": true, \"failure_fraction\": 0.001}', 'Server': 'globaledge-envoy', 'X-Cache': 'Error from cloudfront', 'Via': '1.1 591fc133cda27edbedf7edb3f0231464.cloudfront.net (CloudFront)', 'X-Amz-Cf-Pop': 'LHR61-C1', 'X-Amz-Cf-Id': '2s6GACkFGfI4DZHtQNXxTL_VAz3o4mjnXhJzji4RUL9LuORAIsO6AA=='})\nHTTP response body: {\"message\": \"Could not authenticate\", \"took\": 0.0, \"requestId\": \"b67d7a41-5be4-4eb3-b869-945e1330a85e\", \"url\": \"https://api.opsgenie.com/v2/alerts\"}\n",

the part of authorization in the code

configuration = opsgenie_sdk.Configuration()
# Configure API key authorization: GenieKey
#configuration.api_key['Authorization'] = 'xxxxx'
configuration.username = 'xxxxx'
configuration.password = 'xxxxx'
configuration.verify_ssl = 'False'
conf = opsgenie_sdk.configuration.Configuration()
api_instance = opsgenie_sdk.AccountApi(opsgenie_sdk.ApiClient(configuration))
api_client = opsgenie_sdk.api_client.ApiClient(configuration=conf)
alert_api = opsgenie_sdk.AlertApi(api_client=api_client) 

could you help me please?
  

Hi @Samir,
Thanks for your feedback. Strange thing is, it sometimes can connect to Opsgenie and create tickets, but, most of the times failing to connect and exits with the following error 

 

[ERROR] RetryError: RetryError[<Future at 0x7fc1a71bf610 state=finished raised NewConnectionError>]
Traceback (most recent call last):
  File "/var/task/lambda_function.py", line 108, in lambda_handler
    create_response = alert_api.create_alert(create_alert_payload=body)
  File "/opt/python/opsgenie_sdk/api/alert/__init__.py", line 1136, in create_alert
    (data) = self.create_alert_with_http_info(create_alert_payload, **kwargs) # noqa: E501
  File "/opt/python/opsgenie_sdk/api/alert/__init__.py", line 1197, in create_alert_with_http_info
    return self.api_client.call_api(
  File "/opt/python/opsgenie_sdk/api_client.py", line 423, in call_api
    return self.__call_api(resource_path, method,
  File "/opt/python/opsgenie_sdk/api_client.py", line 218, in __call_api
    raise exception
  File "/opt/python/opsgenie_sdk/api_client.py", line 196, in __call_api
    response_data = self.retrying(fn=self.request, method=method, url=url,
  File "/opt/python/tenacity/__init__.py", line 430, in __call__
    do = self.iter(retry_state=retry_state)
  File "/opt/python/tenacity/__init__.py", line 379, in iter
    six.raise_from(retry_exc, fut.exception())
  File "<string>", line 3, in raise_from 



As it can connect to Opsgenie sometimes, I don't think it's an issue with the Lambda or the package installed in lambda. BTW, I'm using opsgenie-sdk==2.1.4

Thanks.  

Suggest an answer

Log in or Sign up to answer
DEPLOYMENT TYPE
CLOUD
TAGS
Community showcase
Published in Jira

Online AMA this week: Your project management questions answered by Jira Design Lead James Rotanson

We know that great teams require amazing project management chops. It's no surprise that great teams who use Jira have strong project managers, effective workflows, and secrets that bring planning ...

168 views 1 6
Read article

Atlassian Community Events