chalice

2025-12-11 0 899

AWS chalice

chalice是在Python中编写无服务器应用程序的框架。它使您可以快速创建使用AWS Lambda的应用程序。它提供:

  • 用于创建,部署和管理应用程序的命令行工具
  • 基于装饰的API,可与Amazon API Gateway,Amazon S3,Amazon SNS,Amazon SQS和其他AWS服务集成。
  • 自动IAM政策生成

您可以创建REST API:

chalice

app = chalice (app_name=\”helloworld\”)

@app.route(\”/\”)
def index():
return {\”hello\”: \”world\”}\”>

 from chalice import chalice

app = chalice ( app_name = \"helloworld\" )

@ app . route ( \"/\" )
def index ():
    return { \"hello\" : \"world\" }

定期运行的任务:

chalice , Rate

app = chalice (app_name=\”helloworld\”)

# Automatically runs every 5 minutes
@app.schedule(Rate(5, unit=Rate.MINUTES))
def periodic_task(event):
return {\”hello\”: \”world\”}\”>

 from chalice import chalice , Rate

app = chalice ( app_name = \"helloworld\" )

# Automatically runs every 5 minutes
@ app . schedule ( Rate ( 5 , unit = Rate . MINUTES ))
def periodic_task ( event ):
    return { \"hello\" : \"world\" }

您可以将lambda功能连接到S3事件:

chalice

app = chalice (app_name=\”helloworld\”)

# Whenever an object is uploaded to \’mybucket\’
# this lambda function will be invoked.

@app.on_s3_event(bucket=\’mybucket\’)
def handler(event):
print(\”Object uploaded for bucket: %s, key: %s\”
% (event.bucket, event.key))\”>

 from chalice import chalice

app = chalice ( app_name = \"helloworld\" )

# Whenever an object is uploaded to \'mybucket\'
# this lambda function will be invoked.

@ app . on_s3_event ( bucket = \'mybucket\' )
def handler ( event ):
    print ( \"Object uploaded for bucket: %s, key: %s\"
          % ( event . bucket , event . key ))

以及SQS队列:

chalice

app = chalice (app_name=\”helloworld\”)

# Invoke this lambda function whenever a message
# is sent to the “my-queue-name“ SQS queue.

@app.on_sqs_message(queue=\’my-queue-name\’)
def handler(event):
for record in event:
print(\”Message body: %s\” % record.body)\”>

 from chalice import chalice

app = chalice ( app_name = \"helloworld\" )

# Invoke this lambda function whenever a message
# is sent to the ``my-queue-name`` SQS queue.

@ app . on_sqs_message ( queue = \'my-queue-name\' )
def handler ( event ):
    for record in event :
        print ( \"Message body: %s\" % record . body )

以及其他几个AWS资源。

写出代码后,您只需运行chalice部署,而chalice则负责部署应用程序。

 $ chalice部署
...
https:// endpoint/dev

$ curl https:// endpoint/api
{“你好世界”}

启动并在不到30秒内运行。尝试一下这个项目,并在Github上与我们分享您的反馈。

该文档可在此处提供。

Quickstart

在本教程中,您将使用chalice命令行实用程序来创建和部署基本的REST API。此QuickStart使用Python 3.9,但是AWS chalice支持AWS Lambda支持的所有版本的Python,其中包括Python 3.9至Python 3.13。

要安装chalice ,我们将首先在Python3.9中创建并激活虚拟环境:

 $ python3- version
Python 3.9.22
$ python3 -m venv venv39
$。 VENV39/bin/activate

接下来,我们将使用PIP安装chalice :

 $ python3 -m pip安装chalice

您可以通过运行安装chalice :

 $ chalice -Help
用法: chalice [选项]命令[args] ...
...

证书

在部署应用程序之前,请确保您配置了凭据。如果您以前已经配置了机器以运行Boto3(Python的AWS SDK)或AWS CLI,则可以跳过此部分。

如果这是您第一次为AWS配置凭据,则可以按照以下步骤快速开始:

 $ mkdir〜/.aws
$ cat >>〜/.aws/config
[默认]
aws_access_key_id = your_access_key_here
aws_secret_access_key = your_secret_access_key
区域= your_region(例如US-West-2,US-West-1等)

如果您想要有关配置凭据的所有支持方法的更多信息,请参见Boto3文档。

创建您的项目

我们将要做的下一件事是使用chalice Command创建一个新项目:

 $ chalice新项目

这将创建一个Helloworld目录。 CD进入此目录。您会看到为您创建了几个文件:

 $ CD Helloworld
$ LS -LA
drwxr-xr-x。 chalice
-rw-r-r--- app.py
-rw-r--r--要求.txt

您可以忽略。目前, chalice Directory,我们将重点介绍的两个主要文件是app.py and unignts.txt。

让我们看一下app.py文件:

chalice

app = chalice (app_name=\’helloworld\’)

@app.route(\’/\’)
def index():
return {\’hello\’: \’world\’}\”>

 from chalice import chalice

app = chalice ( app_name = \'helloworld\' )


@ app . route ( \'/\' )
def index ():
    return { \'hello\' : \'world\' }

新项目命令创建了一个示例应用程序,该应用程序定义单个视图, /当调用时将返回JSON主体{“ Hello”:“ world”}。

部署

让我们部署此应用程序。确保您在Helloworld目录中并运行chalice部署:

 $ chalice部署
创建部署软件包。
创建IAM角色:Helloworld-dev
创建lambda函数:helloworld-dev
创建REST API
部署的资源:
  -lambda arn:arn:aws:lambda:us-west-2:12345:功能:helloworld-dev
   -  REST API URL:https://abcd.execute-api.us-west-2.amazonaws.com/api/

现在,您使用API​​ Gateway和Lambda进行API启动并运行:

 $ curl https://qxea58oupc.execute-api.us-west*-2.amaz**onaws.com/api/
{“你好世界”}

尝试从index()函数更改返回的字典。然后,您可以通过运行chalice部署来重新部署更改。

下一步

现在,您已经使用chalice创建了第一个应用程序。您可以对app.py文件进行修改,并重新运行chalice部署以重新部署更改。

在这一点上,您可以采取几个下一步。

  • 教程 – 从几个指导教程中进行选择,这些教程将为您提供各种chalice特征的逐步示例。
  • 主题 – 深入了解chalice特定领域的文档。这包含比教程更详细的文档。
  • API参考 – 有关chalice公共API一部分的所有类和方法的低级参考文档。

如果您完成了使用chalice的实验,并且想清理,则可以使用chalice Delete命令,而chalice将删除运行chalice Deploy Command时创建的所有资源。

 $ chalice Delete
删除REST API:ABCD4KWYL4
删除功能AWS:ARN:LAMBDA:区域:123456789:Helloworld-dev
删除IAM角色helloworld-dev

反馈

我们也很想收到您的来信。请创建任何GitHub问题,以了解您想在https://gi*th*ub*.com/aws/chalice/issues上看到的其他功能。您也可以在Gitter上与我们聊天:https://gitter.im/awslabs/chalice

下载源码

通过命令行克隆项目:

git clone https://github.com/aws/chalice.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 chalice https://www.zuozi.net/34461.html

chinese xinhua
上一篇: chinese xinhua
NvChad
下一篇: NvChad
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务