ハンズオン(簡易版): EventBridge入門

2.2. EventBridgeターゲットの登録 (Lambda: handson-cli-events-gettings-ebs-rule)

目的

EventBridgeルール"handson-cli-events-gettings-ebs-rule"のターゲットとしてLambda関数"handson-cli-events-gettings-ebs-function"を登録します。

パラメータの指定

作業に必要なパラメータを変数に格納をします。

0. リージョンの指定

リージョンを指定します。

環境変数の設定

export AWS_DEFAULT_REGION='ap-northeast-1'

1. EventBridgeルール名

EventBridgeルール名を指定します。

変数の設定:

EVENTS_RULE_NAME="handson-cli-events-gettings-ebs-rule"

2. Lambda関数名

Lambda関数名を指定します。

変数の設定:

LAMBDA_FUNCTION_NAME='handson-cli-events-gettings-ebs-function'

各変数に正しいパラメータ値が格納されていることを確認します。

変数の確認:

cat << END

  # 0. AWS_DEFAULT_REGION:"ap-northeast-1"
       AWS_DEFAULT_REGION="${AWS_DEFAULT_REGION}"

  # 1. EVENTS_RULE_NAME:"handson-cli-events-gettings-ebs-rule"
       EVENTS_RULE_NAME="${EVENTS_RULE_NAME}"
  # 2. LAMBDA_FUNCTION_NAME:"handson-cli-events-gettings-ebs-function"
       LAMBDA_FUNCTION_NAME="${LAMBDA_FUNCTION_NAME}"

END

手順

ターゲットIDを指定します。

変数の設定:

EVENTS_TARGET_ID="lambda-${LAMBDA_FUNCTION_NAME}" \
  && echo ${EVENTS_TARGET_ID}

結果(例):

lambda-handson-cli-events-gettings-ebs-function

ターゲット(Lambda関数)のARNを取得します。

コマンド:

LAMBDA_FUNCTION_ARN=$( \
  aws lambda get-function \
    --function-name ${LAMBDA_FUNCTION_NAME} \
    --query 'Configuration.FunctionArn' \
    --output text \
) \
  && echo ${LAMBDA_FUNCTION_ARN}

結果(例):

arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:function:handson-cli-events-gettings-ebs-function

変数の設定:

EVENTS_TARGET_ARN="${LAMBDA_FUNCTION_ARN}" \
  && echo ${EVENTS_TARGET_ARN}

ターゲット文字列を生成します。

変数の設定:

STRING_EVENTS_TARGET="Id=${EVENTS_TARGET_ID},Arn=${EVENTS_TARGET_ARN}" \
  && echo ${STRING_EVENTS_TARGET}

結果(例):

Id=lambda-handson-cli-events-gettings-ebs-function,Arn=arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:function:handson-cli-events-gettings-ebs-function

EventBridgeターゲットを登録します。

変数の確認:

cat << ETX

  # EVENTS_TARGET_ID:"lambda-handson-cli-events-gettings-ebs-function"
    EVENTS_TARGET_ID="${EVENTS_TARGET_ID}"
  # STRING_EVENTS_TARGET:"Id=lambda-handson-cli-events-gettings-ebs-function,Arn=arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:function:handson-cli-events-gettings-ebs-function"
    STRING_EVENTS_TARGET="${STRING_EVENTS_TARGET}"

ETX

コマンド:

aws events put-targets \
  --rule "${EVENTS_RULE_NAME}" \
  --targets "${STRING_EVENTS_TARGET}"

結果(例):

{
  "FailedEntries": [],
  "FailedEntryCount": 0
}

完了確認

「EventBridgeルール"handson-cli-events-gettings-ebs-rule"にターゲット"arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:function:handson-cli-events-gettings-ebs-function"が存在する。」ことを確認します。

コマンド:

aws events list-targets-by-rule \
  --rule ${EVENTS_RULE_NAME} \
  --query "Targets[?Arn == \`${EVENTS_TARGET_ARN}\`].Arn" \
  --output text

結果(例):

arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:function:handson-cli-events-gettings-ebs-function