5

में कस्टम डोमेन नाम को कैसे सक्षम करें मेरे पास एपीआई गेटवे का उपयोग करके मेरी एपीआई बनाने के लिए एक क्लाउडफॉर्म टेम्पलेट है।क्लाउडवॉच लॉग को सक्षम करने और क्लाउडफ़ॉर्म

मैं नहीं जानता कि कैसे:

  1. cloudformation टेम्पलेट

  2. में मंच के लिए सक्षम cloudwatch लॉग cloudformation टेम्पलेट में एक कस्टम डोमेन नाम के लिए मंच असाइन करें।

इनमें से कोई भी जेसन क्लाउडॉर्मेशन टेम्पलेट में संभव है?

+0

मुझे यकीन नहीं है कि मैं आपको समझता हूं क्यू, सबसे पहले, क्या आप क्लाउडवॉच में लॉग देख सकते हैं? [सर्वर रहित ढांचे] का उपयोग करके (https://serverless.com/) आप एपीआई गेटवे ऐप्स के लिए बनाए गए डमी टेम्पलेट को देख सकते हैं, [यहां] (https://gist.github.com/frangeris/3bfd1d6635dbe574f0d20d560873a79e) उदाहरण – user2976753

उत्तर

3
  • Cloudwatch लॉग:

cloudformation में हाँ, आप सक्षम कर सकते हैं cloudwatch लॉग्स:

  1. कॉन्फ़िगर CloudTrail लॉग फ़ाइल CloudWatch लॉग्स के लिए वितरण।
  2. टेम्पलेट का उपयोग करके एक एडब्ल्यूएस क्लाउडफॉर्मेशन स्टैक बनाएं।

cloudwatch प्रविष्टि इस के लिए कुछ simalar होना चाहिए:

"SecurityGroupChangesAlarm": { 
     "Type": "AWS::CloudWatch::Alarm", 
     "Properties": { 
      "AlarmName" : "CloudTrailSecurityGroupChanges", 
      "AlarmDescription" : "Alarms when an API call is made to create, update or delete a Security Group.", 
      "AlarmActions" : [{ "Ref" : "AlarmNotificationTopic" }], 
      "MetricName" : "SecurityGroupEventCount", 
      "Namespace" : "CloudTrailMetrics", 
      "ComparisonOperator" : "GreaterThanOrEqualToThreshold", 
      "EvaluationPeriods" : "1", 
      "Period" : "300", 
      "Statistic" : "Sum", 
      "Threshold" : "1" 
     } 
}, 

एडब्ल्यूएस official doc सब कुछ वहाँ विस्तृत है की जाँच करें।

  • कस्टम डोमेन का नाम:

कस्टम डोमेन नाम cloudformation टेम्पलेट में परिभाषित नहीं है। https://console.aws.amazon.com/apigateway पर एपीआई गेटवे कंसोल में

  1. साइन इन करें: यह अलग aws doc में निर्दिष्ट के रूप में बनाया जाना चाहिए।
  2. मुख्य नेविगेशन फलक से कस्टम डोमेन नाम चुनें।
  3. द्वितीयक नेविगेशन फलक में बनाएं चुनें।
  4. में बनाएं कस्टम डोमेन नाम
  5. सेटअप अमेज़न का 53
2

अद्यतन Jul 5 2017 का उपयोग कर डीएनएस: AWS::ApiGateway::DomainName संसाधन अब उपलब्ध तो एक कस्टम संसाधन नहीं रह गया है इस भाग के लिए आवश्यक है है।


मूल पोस्ट दिसंबर 24 2016:

का उपयोग कर एक ApiGateway स्टेज के लिए CloudWatch लॉग सक्षम करने के लिए

  1. cloudformation टेम्पलेट में चरण के लिए cloudwatch लॉग सक्षम करें आपके एपीआई को प्रत्येक विधि कॉल के लिए क्लाउडफॉर्मेशन, आपको DataTraceEnabled सेट करने की आवश्यकता है आपके AWS::ApiGateway::Stage संसाधन में सभी विधियों के लिए true पर संपत्ति।

    जैसा कि प्रलेखन के Set Up a Stage अनुभाग में उल्लेख किया गया है, आपको क्लाउडवॉच लॉग पर डेटा को धक्का देने के लिए उचित आईएएम अनुमतियों के साथ अपने एपीआई गेटवे खाते को भी जोड़ना होगा।

    CloudWatchRole: 
    Type: "AWS::IAM::Role" 
    Properties: 
        AssumeRolePolicyDocument: 
        Version: "2012-10-17" 
        Statement: 
        - Effect: Allow 
         Principal: 
         Service: 
         - "apigateway.amazonaws.com" 
         Action: "sts:AssumeRole" 
        Path: "/" 
        ManagedPolicyArns: 
        - "arn:aws:iam::aws:policy/service-role/AmazonAPIGatewayPushToCloudWatchLogs" 
    Account: 
    Type: "AWS::ApiGateway::Account" 
    Properties: 
        CloudWatchRoleArn: 
        "Fn::GetAtt": 
        - CloudWatchRole 
        - Arn 
    
    1. असाइन: इस उद्देश्य के लिए, आप भी एक AWS::ApiGateway::Account संसाधन AmazonAPIGatewayPushToCloudWatchLogs कामयाब नीति युक्त एक IAM भूमिका का संदर्भ देता है बनाने के लिए, प्रलेखन example में वर्णित के रूप की आवश्यकता होगी cloudformation टेम्पलेट

    में एक कस्टम डोमेन नाम के लिए मंच दुर्भाग्य से, CloudFormation DomainName APIGateway REST API करने के लिए इसी एक अधिकारी संसाधन प्रदान नहीं करता है। सौभाग्य से, कार्ल नॉर्डनफेल का अनौपचारिक API Gateway for CloudFormation प्रोजेक्ट Custom::ApiDomainName प्रदान करता है। उदाहरण के लिए

    TestApiDomainName: 
        Type: Custom::ApiDomainName 
        Properties: 
         ServiceToken: {Lambda_Function_ARN} 
         domainName: example.com 
         certificateName: testCertificate 
         certificateBody": "-----BEGIN CERTIFICATE-----line1 line2 ... -----END CERTIFICATE-----" 
         certificateChain: "-----BEGIN CERTIFICATE-----line1 line2 ... -----END CERTIFICATE-----" 
         certificatePrivateKey: "-----BEGIN RSA PRIVATE KEY-----line1 line2 ... -----END RSA PRIVATE KEY-----" 
    

    भी ध्यान रखें कि एक बार डोमेन नाम बना दिया गया है, तो आप !GetAtt TestApiDomainName.distributionDomainName करने के लिए एक Route53 उर्फ ​​रिकॉर्ड है कि बताते हैं बनाना चाहिए और स्थिर CloudFront क्षेत्र आईडी (Z2FDTNDATAQYW2) की मेजबानी की,: यहाँ दस्तावेज में प्रदान की उदाहरण है :

    myDNSRecord: 
        Type: AWS::Route53::RecordSet 
        Properties: 
        HostedZoneName: 
         !Ref HostedZone 
        Name: 
         !Ref DomainName 
        Type: A 
        AliasTarget: 
         DNSName: !GetAtt TestApiDomainName.distributionDomainName 
         HostedZoneId: Z2FDTNDATAQYW2 
    
संबंधित मुद्दे