Amazon Forecast를 AWS Lambda에서 두드리는 방법

이번 사례



이번 경우는 학습한 Amazon Forecast를 AWS Lambda에서 지정 시간이 되면 S3에 CSV 파일을 출력하는 것입니다.
이 기사에서는 그 방법을 설명합니다.



전제



예측자(Predictor 작성) 작성, 모델(Forecast) 작성이 끝났다고 가정합니다.

흐름


  • Lambda에게 권한을 부여합니다.
  • Lambda에 코드 작성
  • 트리거 설정
  • 실행될 때까지 기다리기

  • 라는 흐름입니다.

    람다 기능



    execution_forecast
    import json
    import boto3
    # リージョンを指定する
    session = boto3.Session(region_name='us-east-2') 
    forecast = session.client(service_name='forecast') 
    forecastquery = session.client(service_name='forecastquery')
    
    def lambda_handler(event, context):
    
        forecastArn = 'モデル(forecast)のArnを記入する'
        forecastResponse = forecastquery.query_forecast(
        ForecastArn=forecastArn,
        # item_idのIDを指定する。
        Filters={"item_id":"0001"}
    )
        formatted = json.dumps(forecastResponse, indent=4, sort_keys=True, separators=(',', ': '))
        # バケット名を記入する
        s3_bucket = "forecastbucket"
        # S3のフォルダ構造を記入する
        s3_key_prefix = "projects/0001/models/0001/predictedData/"
        # ファイルの名前を書く
        filename = 'predict0926.json'
        s3_client = boto3.client('s3')
        s3_client.put_object(
            Bucket=s3_bucket,
            Key = s3_key_prefix + filename,
            Body = formatted
        )
    
        return {
            'statusCode': 200,
            'body': json.dumps('Success')
        }
    

    boto3과 json은 처음부터 Forecast 내에 있기 때문에 직접 가져올 필요가 없습니다.

    실행할 권한을 부여



    이미지 5개 추가
    서비스 => IAM 입력 => 역할 => 정책 연결


    lambda 대시보드에서 CloudWatch 이벤트를 클릭합니다.


    예를 들어 매주 17시에 실행하려면 다음을 입력합니다.
    ※이것은 UTC(협정 세계시) 시간으로 설정할 필요가 있습니다.


    이번 케이스의 형식은
    分(mm) 時刻(yy) * 繰り返したい曜日の範囲 * 
    

    되어 있습니다.

    이들을 입력하고 시간이 되면 지정한 폴더에 예측 결과의 CSV가 출력됩니다.

    좋은 웹페이지 즐겨찾기