1
AWSラムダでジョブをスケジュールしようとしていますが、そこからデータを取得するのはJson APIです。 JSONファイルをamazon S3に毎回転送したいと思います.SAMバケットとaws lambda関数を適切なIAMロールで設定しました。私はPythonでAWSラムダ関数を書いています。コードはEC2インスタンス上で正常に動作しますが、AWS Lambdaに入れてもS3へファイルを転送することはありません。awsラムダでbashコマンドを実行する方法
import os
def lambda_handler(event, context):
#changing the directory to /tmp
os.chdir("/tmp")
print "loading function"
#downloading file to
os.system("wget https://jsonplaceholder.typicode.com/posts/1 -P /tmp")
#using aws-cli to transfer file to amazon S3
os.system("aws s3 sync . s3://targetbucket")
「aws lambda」の新機能です。私は何のエラーも出ませんが、それは私に期待される出力を与えていません。
ご返信ありがとうございます。あなたのコードは正常に動作しています。 - os.system( "wget https://jsonplaceholder.typicode.com/posts/1 -P/tmp")を使用してファイルをダウンロードできないようです。 bashコマンドを使用するには、展開パッケージを作成する必要があります。 os.system( "bashコマンド")? – liferacer
@Navjotラムダで 'wget'が動作するかどうかは決して確認していません。そうでなければ 'urllib'モジュールを利用することができます。 'urllib.urlretrieve(" https://jsonplaceholder.typicode.com/posts/1 "、" file.json ")' – franklinsijo
うん これはurllibで動作します。あなたの提案をありがとう。私は、展開パッケージの一部としてwgetとawscliを展開する必要があると思います。 – liferacer