この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。
最初に書く
協栄情報の陸です。AWSの初心者です。この記事は、日々の学習と発生した問題を記録するために使用されます。記事の中に問題を解決するには遅すぎる場所があるかもしれませんが、解決策を知った後、問題に解決策を追加しますので、ご安心ください。
初めに
昨日の学習と演習では、lambdaの基本的な理解ができました。 今日は、翻訳されたラムダ関数を作ることで、lambdaの理解をさらに深めていきたいと思います。
操作
まずはpythonでラムダ関数を作成します(詳しい作成方法は前回の記事を参考にしてください)。
作成が完了すると、デフォルトのコードが出てきます。
ブラウザで新しいページを開き、aws python sdkを検索してください。
API リファレンスを選択します。
翻訳を見つけて、コードをコピーしてラムダ関数に書き込んでください。
その後、API リファレンスインターフェイスに戻って translate_text() メソッドを見つけ、テンプレートのコードをコピーして再度ラムダ関数に書き込んでから、適切な変更を加えると、結果は以下のようになります。
これが正式な翻訳語の短縮形です。ドキュメントを見ても見つからず、他の手段で手に入れました。
この時点では、テストが成功しなかったことがわかりますが、理由は、この時点でlambda関数が翻訳する権限を持っていないので、テストが失敗しました。
次は、現在の役割に権限を与えることです。
振り返って見てみると、現在の役割はログを操作する権限しかありません。
翻訳許可を追加します。 その後、lambdaページに戻って、リフレッシュし、テストをデプロイし、通常、テストは直接成功していますが、私はここで間違ったコードを書いたので、テストが失敗しました。
エラープロンプトに従って修正し、再度テストを行うと、以下のような成功画面が表示されます。
参考までに正しいコードをここに貼り付けておきます。
import json
import boto3
translate = boto3.client('translate')
def lambda_handler(event, context):
input_text = "こんにちは"
response = translate.translate_text(
Text = input_text.
SourceLanguageCode = 'ja'.
TargetLanguageCode = 'en'
)
output_text = response.get("TranslatedText")
return{
'statusCode': 200.
'body': json.dumps({
"output_text" : output_text
})
}
まとめ
今日はラムダ関数を使ったデモを完成させることができたのですが、関数に適切なパーミッションを追加していなかったり、コードの書き方が間違っていたりと、いろいろな問題に遭遇しました。 しかし、最終的には、対応するヒントに従って問題を解くことができました。今日の作成、修正、テスト、再修正、その他いくつかの種類の問題を通して、個人的には、各新しいサービスを操作する前に、役割や現在のユーザーが操作するための権限を持っているかどうかを確認するのが最善だと感じています。