2017-03-05 3 views
0

私はAWSラムダ内側次のスクリプト実行しています:「のbotoこのモジュールのために必要な」エラーAnsible

#!/usr/bin/python 

from __future__ import print_function 

import json 
import os 
import ansible.inventory 
import ansible.playbook 
import ansible.runner 
import ansible.constants 
from ansible import utils 
from ansible import callbacks 

print('Loading function') 

def run_playbook(**kwargs): 

    stats = callbacks.AggregateStats() 
    playbook_cb = callbacks.PlaybookCallbacks(verbose=utils.VERBOSITY) 
    runner_cb = callbacks.PlaybookRunnerCallbacks(
     stats, verbose=utils.VERBOSITY) 

    # use /tmp instead of $HOME 
    ansible.constants.DEFAULT_REMOTE_TMP = '/tmp/ansible' 

    out = ansible.playbook.PlayBook(
     callbacks=playbook_cb, 
     runner_callbacks=runner_cb, 
     stats=stats, 
     **kwargs 
    ).run() 

    return out 


def lambda_handler(event, context): 
    return main() 



def main(): 
    out = run_playbook(
     playbook='little.yml', 
     inventory=ansible.inventory.Inventory(['localhost']) 
    ) 
    return(out) 


if __name__ == '__main__': 
    main() 

をしかし、私は次のエラーを取得:(このコメントによると、しかしfailed=True msg='boto required for this module'

https://github.com/ansible/ansible/issues/5734#issuecomment-33135727 )、 できます。

しかし、私は自分のスクリプトでそれをどう言いますか?または、別のhostsファイルを作成してスクリプトに含めることはできますか?

もしそうなら、どうですか?

[EDIT - 1]として、私はホストとinventory=ansible.inventory.Inventory('hosts') は、ファイルの行を追加した :しかし、私はこのエラーを取得

[localhost] 
127.0.0.1 ansible_python_interpreter=/usr/local/bin/python 

:だから/bin/sh: /usr/local/bin/python: No such file or directory

を、pythonのAWSの内側に配置されている場所ラムダ?

私はラムダの展開パッケージに他のパッケージをインストールして同じようにbotoをインストール:pip install boto -t <folder-name>

+0

どうしてあなたはbotoをインストールしたのですか?代わりに、MacOSのHomebrewパッケージマネージャーのデフォルトのディレクトリ構造に関する記事を参照してください。ここAWSラムダとの接続は何ですか? – techraf

+0

@techraf答えを更新しました。 AWS Lambdaでは、すべてのパッケージとスクリプトが同じルートフォルダに存在する必要があります。 [スクリプトは私のローカルでうまくいきます]。だから、Lambdaがbotoパッケージを取り込む場所に何らかの問題があるはずです。 – Dawny33

答えて

0

bashコマンドwhich pythonは、通常のPythonバイナリの場所を提供します。 AWS Lambda hereからbashスクリプトを呼び出す方法の例があります。

関連する問題