- Watson Orchestrate environment with AWS Lambda skill
- AWS credentials for AWS Lambda
- AWS CLI installed
- Permissions to Create Roles, Create functions, PassRole, AttachRolePolicy
Install AWS cli:
curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
unzip awscli-bundle.zip
sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
Run and populate with appropriate values (set "Default output format" to "json")
aws configure
-
Create the execution role that gives your function permission to access AWS resources. To create an execution role with the AWS CLI, use the create-role command.
In the following example, you specify the trust policy inline. Requirements for escaping quotes in the JSON string vary depending on your shell.
aws iam create-role --role-name <role_name> --assume-role-policy-document '{"Version": "2012-10-17","Statement": [{ "Effect": "Allow", "Principal": {"Service": "lambda.amazonaws.com"}, "Action": "sts:AssumeRole"}]}'
-
To add permissions to the role, use the attach-policy-to-role command. Start by adding the AWSLambdaBasicExecutionRole managed policy and AWSLambdaRole policy .
aws iam attach-role-policy --role-name lambda-ex --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
aws iam attach-role-policy --role-name lambda-ex --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaRole
Get role info:
aws iam get-role --role-name <role_name>
https://docs.aws.amazon.com/lambda/latest/dg/python-package.html https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-awscli.html
-
Navigate to the project directory containing your lambda_function.py source code file. In this example, the directory is named my_function.
cd my_function
-
Create a new directory named package into which you will install your dependencies.
mkdir package
-
Install your dependencies in the package directory. The example below installs the Boto3 SDK from the Python Package Index using pip. If your function code uses Python packages you have created yourself, save them in the package directory.
pip install --target ./package boto3
-
Create a .zip file with the installed libraries at the root.
cd package zip -r ../my_deployment_package.zip .
-
Add the lambda_function.py file to the root of the .zip file
cd .. zip my_deployment_package.zip lambda_function.py
aws lambda create-function --function-name myFunction --runtime python3.11 --handler lambda_function.lambda_handler --role arn:aws:iam::748107796891:role/lambda-ex --zip-file fileb://Resources/OCRModule/my_deployment_package.zip
List AWS lambda functions:
aws lambda list-functions --max-items 10
Delete lambda function:
aws lambda delete-function --function-name my-function
Update function with new deployment file
aws lambda update-function-code --function-name myFunction \
--zip-file fileb://myFunction.zip
zip -r ../my_deployment_package.zip . cd .. zip my_deployment_package.zip lambda_function.py