[JAWS-UG CLI] Lambda:#8 バージョンの削除



前提条件
========


Lambdaへの権限
--------------

Lambdaに対してフル権限があること。


AWS CLI
-------

以下のバージョンで動作確認済

* AWS CLI 1.9.0

```bash:コマンド:
aws --version
```

```text:結果(例):
      aws-cli/1.9.0 Python/2.7.5 Darwin/13.4.0 botocore/1.3.0
```


0. 準備
=======


変数の確認
----------

プロファイルが想定のものになっていることを確認します。

```bash:変数の確認:
aws configure list
```

```text:結果(例):
            Name                    Value             Type    Location
            ----                    -----             ----    --------
         profile       administrator-prjz-mbp13        env    AWS_DEFAULT_PROFILE
      access_key     ****************XXXX shared-credentials-file
      secret_key     ****************XXXX shared-credentials-file
          region                ap-northeast-1        env    AWS_DEFAULT_REGION
```


1. 事前作業
===========


1.1. Lambda関数名の決定
-----------------------

```bash:コマンド:
aws lambda list-functions \
        --query 'Functions[].FunctionName'
```

```json:結果(例):
      [
        "HelloWorld"
      ]
```

```bash:変数の設定:
LAMBDA_FUNC_NAME='HelloWorld'
```


1.2. バージョンの確認
---------------------

```bash:コマンド:
aws lambda list-versions-by-function \
        --function-name ${LAMBDA_FUNC_NAME}
```

```json:結果(例):
      {
        "Versions": [
          {
              "Version": "$LATEST",
              "CodeSha256": "+EAYs8jMYFRBdnsMdFUt2bv//KHE2tkovql6ls+gXoM=",
              "FunctionName": "HelloWorld",
              "MemorySize": 128,
              "CodeSize": 349,
              "FunctionArn": "arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:function:HelloWorld:$LATEST",
              "Handler": "HelloWorld.handler",
              "Role": "arn:aws:iam::XXXXXXXXXXXX:role/lambdaBasicExecution",
              "Timeout": 3,
              "LastModified": "2015-10-26T04:41:36.261+0000",
              "Runtime": "nodejs",
              "Description": "Hello World with AWS Lambda function."
          },
          {
              "Version": "2",
              "CodeSha256": "WnGd6iPBS0rGCJor4zyuOaGBtzQ3I/OgHerXWqZzbL8=",
              "FunctionName": "HelloWorld",
              "MemorySize": 128,
              "CodeSize": 350,
              "FunctionArn": "arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:function:HelloWorld:2",
              "Handler": "HelloWorld.handler",
              "Role": "arn:aws:iam::XXXXXXXXXXXX:role/lambdaBasicExecution",
              "Timeout": 3,
              "LastModified": "2015-10-26T03:08:28.302+0000",
              "Runtime": "nodejs",
              "Description": "This is the 1st version."
          },
          {
              "Version": "3",
              "CodeSha256": "+EAYs8jMYFRBdnsMdFUt2bv//KHE2tkovql6ls+gXoM=",
              "FunctionName": "HelloWorld",
              "MemorySize": 128,
              "CodeSize": 349,
              "FunctionArn": "arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:function:HelloWorld:3",
              "Handler": "HelloWorld.handler",
              "Role": "arn:aws:iam::XXXXXXXXXXXX:role/lambdaBasicExecution",
              "Timeout": 3,
              "LastModified": "2015-10-26T04:41:36.261+0000",
              "Runtime": "nodejs",
              "Description": "Hello World with AWS Lambda function."
          }
        ]
      }
```


1.3. 削除するバージョンの決定
-----------------------------

```bash:変数の設定:
LAMBDA_FUNC_VER='1'
```

```bash:コマンド:
aws lambda list-versions-by-function \
        --function-name ${LAMBDA_FUNC_NAME} \
        --query "Versions[?Version == '${LAMBDA_FUNC_VER}' ]"
```

```json:結果(例):
      [
        {
          "Version": "1",
          "CodeSha256": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=",
          "FunctionName": "HelloWorld",
          "MemorySize": 128,
          "CodeSize": 349,
          "FunctionArn": "arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:function:HelloWorld:1",
          "Handler": "HelloWorld.handler",
          "Role": "arn:aws:iam::XXXXXXXXXXXX:role/lambda_basic_execution",
          "Timeout": 3,
          "LastModified": "2015-10-26T01:23:45.678+0000",
          "Runtime": "nodejs",
          "Description": "Hello World with AWS Lambda function."
        }
      ]
```


2. バージョンの削除
===================


2.1. バージョンの削除
---------------------

```bash:変数の確認:
cat << ETX

        LAMBDA_FUNC_NAME: ${LAMBDA_FUNC_NAME}
        LAMBDA_FUNC_VER:  ${LAMBDA_FUNC_VER}

ETX
```

```bash:コマンド:
aws lambda delete-function \
        --function-name ${LAMBDA_FUNC_NAME} \
        --qualifier ${LAMBDA_FUNC_VER}
```

```text:結果:
      (戻り値なし)
```


2.2. バージョンの確認
---------------------

```bash:コマンド:
aws lambda list-versions-by-function \
        --function-name ${LAMBDA_FUNC_NAME} \
        --query "Versions[?Version == '${LAMBDA_FUNC_VER}' ]"
```

```json:結果(例):
      []
```


完了
====