Облакообразование Лямбда-функция все еще застряла, даже ответ идет к УСПЕХУ - PullRequest
0 голосов
/ 25 января 2020

Я пытаюсь загрузить образец файла HTML в S3 с шаблоном Cloudformation следующим образом и обнаружил, что файл был успешно загружен в журналы S3 и Cloudwatch, показывающие, что ответом является УСПЕХ. Но этот статус Cloudformation все еще показывает CREATE_IN_PROGRESS. Пожалуйста, дайте мне знать, что я пропустил, чтобы что-то настроить?

  UploadSampleFile:
    Type: AWS::Lambda::Function
    Properties:
      Environment:
        Variables:
          BucketName: !Ref TestFrontendHost
      Code:
        ZipFile: 
          Fn::Sub: |
            const AWS = require('aws-sdk');
            var response = require('cfn-response')
            exports.handler = async (event, context) => {
              var s3 = new AWS.S3();
              var base64data = new Buffer.from('<HTML><HEAD><TITLE>Welcome to Test Frontend</TITLE></HEAD><BODY>Welcome to Test Frontend</BODY></HTML>', 'binary');
              var params = {
                Bucket: process.env.BucketName,
                Key: 'index.html',
                Body: base64data,
                ContentType: 'text/html', 
                ACL: 'public-read'
              };
              console.log('REQUEST RECEIVED:\n' + JSON.stringify(event));
              if (event.RequestType === 'Delete') {
                  response.send(event, context, 'SUCCESS')
                  return
              }
              var responseStatus = 'FAILED';
              var responseData = {};
              console.log('Upload Starting');
              try {
                await s3.putObject(params).promise();
                responseStatus = 'SUCCESS';
                responseData = {
                  message: 'Upload Successfully'
                };
                console.log('responseStatus ' + responseStatus);
                response.send(event, context, responseStatus, responseData); 
              } catch (err) {
                responseStatus = 'FAILED';
                responseData = {
                  message: err
                };
                console.log('responseStatus ' + responseStatus);
                response.send(event, context, responseStatus, responseData); 
              }
            };       
      Description: "CloudFormation Lambda Back Custom Function to upload sample index.html"
      FunctionName: TestUploadSampleFile
      Handler: index.handler
      MemorySize: 512
      Role: !Ref TestAPIRole
      Runtime: nodejs10.x
      Timeout: 900

  UploadHTMLPageFunction: 
    Type: Custom::UploadHTMLFile
    Properties:
      ServiceToken: !GetAtt TestUploadSampleFile.Arn

Cloudwatch Logs

{
    "Status": "SUCCESS",
    "Reason": "See the details in CloudWatch Log Stream: 2020/01/25/[$LATEST]fe7e2ec1cf424c9cbe2de0f8673e9ea2",
    "PhysicalResourceId": "2020/01/25/[$LATEST]fe7e2ec1cf424c9cbe2de0f8673e9ea2",
    "StackId": "******",
    "RequestId": "35855acd-e786-4062-a47a-6b3ae6c8e326",
    "LogicalResourceId": "UploadHTMLPageFunction",
    "NoEcho": false,
    "Data": {
        "message": "Upload Successfully"
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...