2017-02-06 9 views
6

मैं एडब्ल्यूएस लैम्ब्डा एडब्ल्यूएस एसडीके रूबी (जैसे यह एडब्ल्यूएस प्रबंधन कंसोल का उपयोग कर यह करने के लिए संभव है) का उपयोग कर के लिए ट्रिगर बनाने का एक तरीका होना चाहिए पता है।कैसे बनाने के लिए CloudWatch लॉग एडब्ल्यूएस लैम्ब्डा एडब्ल्यूएस माणिक SDK का उपयोग करने के लिए ट्रिगर?

* अद्यतन, मैं ट्रिगर बनाने के लिए एक रास्ता खोजने में सक्षम था। मैं निम्नलिखित कोड का उपयोग कर रहा है कि क्या करने के लिए:

@cloudwatchlogs = Aws::CloudWatchLogs::Client.new(region: region, credentials: Aws::Credentials.new(aws_access_key_id, aws_secret_access_key)) 
@cloudwatchlogs.put_subscription_filter({ 
    log_group_name: "RDSOSMetrics", 
    filter_name: "RDS metrics filter", 
    filter_pattern: "RDS metrics filter pattern", 
    destination_arn: function_arn 
}) 

मैं ऐसा करने की कोशिश में त्रुटि निम्न हो रही है:

*** Aws::CloudWatchLogs::Errors::InvalidParameterException Exception: Could not execute the lambda function. Make sure you have given CloudWatch Logs permission to execute your function 

बस इसे बाहर का परीक्षण करने के लिए, मैं भूमिका एक्स है जो लैम्ब्डा समारोह से जुड़ा हुआ है और उस भूमिका AWSLambdaFullAccess नीति इससे जुड़ा है, लेकिन मैं अभी भी इस त्रुटि हो रही है।

client.add_permission({ 
    action: "lambda:InvokeFunction", 
    function_name: function_arn, 
    principal: "logs." + region + ".amazonaws.com", 
    source_account: account_id, 
    source_arn: "arn:aws:logs:" + region + ":" + account_id + ":log-group:" + log_group_name + ":*", 
    statement_id: unique_identifier, 
}) 

कहाँ:

अन्यथा मैं

याद कर रहा हूँ

धन्यवाद, बकीर

+0

क्या आप स्पष्टीकरण दे सकते हैं कि आप किस क्लाउडवॉच ट्रिगर को जोड़ना चाहते हैं? यह थोड़ा अस्पष्ट है; आप क्लाउडवॉच अलार्म के माध्यम से एक प्रकाशित संदेश पर आधारित क्लाउडवॉच ईवेंट ट्रिगर, क्लाउडवॉच लॉग ट्रिगर, या एक एसएनएस ट्रिगर जोड़ सकते हैं। वह विवरण उत्तर के दायरे को बदल देगा। –

+0

मेरी प्रतिक्रिया अपडेट की गई। आम तौर पर, मेरे मामले में मुझे लैम्ब्डा फ़ंक्शन –

उत्तर

1

CloudWatch लॉग्स अनुमति के साथ जोड़ा जा सकता है कुछ भी

  • function_arn है आपके समारोह पहचानकर्ता 0 के समान
  • ACCOUNT_ID/aws/lambda/logGroupName
  • करने के लिए 111111111111
  • log_group_name लॉग आप समान से स्ट्रीमिंग हो जाएगा का नाम है समान अपने खाते के आईडी है
  • क्षेत्रeu-west-1 के लिए आपकी सेवा समान क्षेत्र का नाम है
  • कुछ यादृच्छिक स्ट्रिंग unique_identifier नीति वक्तव्य में इस्तेमाल किया जाएगा। जैसेID-1

यह निम्न क्रम में मार डाला जाना चाहिए:

  • लैम्ब्डा समारोह और प्रवेश समूह
  • लिए अनुमतियां जोड़ें
  • रखें सदस्यता फिल्टर
बनाएं

अधिक जानकारी:


नोटsource_arn के अंत में तारा चिह्न प्रतीक:

arn:aws:logs:eu-west-1:111111111111:log-group:logGroup:* 
arn:aws:logs:eu-west-1:111111111111:log-group:logGroup 

लॉग समूह के arn है, लॉग समूह के arn नहीं। मुझे इसे डीबग करने में कुछ समय लगा (जब तक मुझे aws lambda get-policy के साथ त्रुटि मिली)

+0

के लिए क्लाउडवॉच लॉग ट्रिगर की आवश्यकता है नोट: क्लाइंट क्लाउडवॉच क्लाइंट है - एक लैम्ब्डा क्लाइंट नहीं। –

संबंधित मुद्दे