用 Github Action and AWS CDK 部署 Python 到 AWS Lambda

今天幫忙同事研究怎麼把 python 的 code 部署到 AWS Lambda,但是必須透過 Github Action 進行部署。
自己本身不太熟 python,所以搞了一個下午Q"Q
不過還好是搞成功了~~

這是最後完成的 example repo,有需要的人可以直接複製,接著照我 README 裡面寫的做就可以用了。
基本上就是參考下面這兩份資料。

參考資料:

  1. GitHub Actions | Build AWS with CDK & GitHub Actions | AWS CDK and Python to deploy Serverless App
    \=>我的 example repo 跟這影片裡的做法稍微有點不一樣,主要是差在 AWS IAM 的設定,他是先新增一個 Role,接著再新增一個 User,把 Role 綁定到 User 身上,但我的作法則是直接新增一個 User 設定 Policy 就好了。

  2. Create Lambda Function URL using AWS CDK
    \=>第一份資料沒有教怎麼啟用 function url,所以就再參考了這份資料,把 add_function_url and CfnOutput 加進去就行了

function_url = lambda_function.add_function_url(
            auth_type=lambda_.FunctionUrlAuthType.NONE
        )

cdk.CfnOutput(self, "FunctionUrl", value=function_url.url)