0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWS Glue でCodeWhispererがサポートされたので試してみた

Posted at

背景・目的

AWS Glue StudioでAmazon CodeWhispererをサポートされたので、試してみました。

2023/7/30現在で、バージニアリージョンのみ提供となります。

まとめ

  • Glue Studioのノートブックで利用が可能
  • 2023/7/30現在、バージニアリージョンのみ提供

実践

前提

IAMロールの作成

  1. IAM画面で、「ロールを作成」をクリックします。

  2. IAMポリシーの追加画面で、①「AWSGlueServiceNotebookRole」を選択し、②「次へ」をクリックします。
    image.png

  3. ロール名を入力し、「ロールを作成」をクリックします。
    下記の通り、AWSGlueServiceNotebookRoleから始まるIAMロールを作成します。

    [ロール名] に、ロールの名前を入力します。コンソールユーザーからノートブックサーバーにロールを渡すには、名前に文字列 AWSGlueServiceNotebookRole のプレフィックスが付けられたロールを作成します。AWS Glue が提供するポリシーでは、IAM サービスロールが AWSGlueServiceNotebookRole で始まることを想定しています。それ以外の場合は、ユーザーにポリシーを追加して、IAM ロールに対する iam:PassRole の許可を命名規則に一致させる必要があります。たとえば、AWSGlueServiceNotebookRoleDefaultと入力します。次に、[Create role] (ロールの作成) を選択します。

    ※出典:AWS Glue の IAM アクセス許可の設定>ステップ 5: ノートブックサービス用に IAM ロールを作成する

  4. 作成したロールで、「インラインポリシーを作成」をクリックします。
    image.png

  5. JSONのポリシーエディタで下記を貼り付けて「次へ」をクリックします。

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "CodeWhispererPermissions",
                "Effect": "Allow",
                "Action": [
                    "codewhisperer:GenerateRecommendations"
                ],
                "Resource": "*"
            }
        ]
    }
    
  6. ポリシー名を入力し、「作成」をクリックします。

  7. Notebookを動かすためには下記のIAMポリシーも作成し、アタッチが必要になります。

    {
    	"Version": "2012-10-17",
    	"Statement": [
    		{
    			"Effect": "Allow",
    			"Action": [
    				"glue:StartNotebook",
    				"glue:TerminateNotebook",
    				"glue:GlueNotebookRefreshCredentials",
    				"glue:DeregisterDataPreview",
    				"glue:GetNotebookInstanceStatus",
    				"glue:GlueNotebookAuthorize",
    				"glue:CreateSession"
    			],
    			"Resource": "*"
    		}
    	]
    }
    
    
  8. PassRole権限も作成し、アタッチします。

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "iam:PassRole",
                "Resource": "arn:aws:iam::<AccountId>:role/<role_name>"
            }
        ]
    }
    
  9. 最終的には、下記のようになります。
    image.png

Glue Studioのセットアップ

Glue Studioで、Notebookを起動します。

  1. ①「Jupyter Notebook」を選択、②「Create」をクリックします。
    image.png

  2. 下記を入力し、「Start notebook」をクリックします。

    • Job name:任意
    • IAM Role:上記で作成したIAMロールを指定
    • Karnel:Spark

    image.png

  3. 画面の下に、CodeWhispererのメニューが表示されます。

CodeWhispererを試す-1

  1. セルを追加します。
    image.png

  2. 「#」とスペースを入力すると、コメントが表示されます。
    image.png

  3. 「Tab」を入力すると、色が変わります。
    image.png

1.「Enter」を入力後、「↓」を選択すると、コードの候補が表示されます。
image.png

  1. 「Tab」を入力すると、色が変わります。コードが生成されました。
    image.png

CodeWhispererを試す-2

  1. セルを追加します。
    image.png

  2. 下記を入力後、「Enter」を入力します。

    # Generate sample Spark DataFrame of country name and country code
    
  3. 候補が表示されます。
    image.png

  4. 「Tab」を入力し、色が変わります。コードが生成されました。
    image.png

考察

やりたいことを入力し、コードが生成されるのは、文法を忘れてしまったときなど便利であると思いました。自分の手に馴染んでいないので素早く入力することはまだまだ出来ませんが、慣れると便利になる気がします。
あとは、現在はNotebookのみですが、GlueのEditorにも対応してくれると良いと思いました。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?