cia1099 / Azure

practiced Azure function

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Create a Azure Function

You can refer Quickstart: Create a Python function in Azure from the command line

func init basicAzureFunction --worker-runtime python
cd basicAzureFunction
func new --name httpexample --template "HTTP trigger" --authlevel "anonymous"

执行完上面的指令会生成basicAzureFunction/function_app.py等必要档案。
要执行本地环境,需要Run Azurite:

# npm install -g azurite
# open a new terminal, you don't need to exchange rosetta here
azurite --silent
  • How to emulate x86 in Arm use Rosetta

x86 emulation on ARM64 切换到Rosetta模式,安装所有相依软件,Rosetta模式会自动安装在/usr/local里面,不会和系统冲突。 https://stackoverflow.com/questions/64882584/how-to-run-the-homebrew-installer-under-rosetta-2-on-m1-macbook 设定~/.zshrc让Mac区分x86和arm环境:

# <<< Rosetta mode; default PS1="%n@%m %1~ %#"
if [ "i386" = $(arch) ]; then
    export PS1="%B%F{green}%n@%m%f%b:%F{4}%1~%f%# "
    eval "$(/usr/local/bin/brew shellenv)"
    alias python3="/usr/local/bin/python3"
else
    export PS1="%B%F{195}%n@%m%f%b:%F{103}%1~%f%# "
    eval "$(/opt/homebrew/bin/brew shellenv)"
    unalias python3
fi

切换到rosetta的终端执行:

cd basicAzureFunction
func start
# 此时rosetta的终端会被http://localhost:7071/api/httpexample占据
# 在随便一个终端执行,就可以成功了
curl "http://localhost:7071/api/httpexample?name=shit&pp=jj"

Deploy

安装az_cli

# 用safari登入会失败,将网址贴到edge就能登入成功
az login
# 查看登录资讯
az account list
# Set a subscription to be the current active subscription.
az account set -n 'basic subscription'
# *** Deploy ***
cd basicAzureFunction
func azure functionapp publish <FunctionAppName>
#func azure functionapp publish functionGPT
  • 其中<FunctionAppName>是你在Azure账号里创建的Function名称。

更多az-cli操作

在本地专案文件夹里建立python虚拟机

首先先切换到想要克隆的python环境,然后在专案的目录下输入创建venv指令,就会在专案里生成venv的文件夹,会在这专案克隆你当前环境的python;但是依赖套件不会被安装。

#--clone miniconda里的python
#conda activate <NAME>
#--clone rosseta上的python
#env /usr/bin/arch -x86_64 /bin/zsh --login
#建立本地环境
python -m venv /path/to/project/directory/venv
# ==== 启动本地环境
# UNIX
source /path/to/project/directory/venv/bin/activate
# WINDOWS
path\to\project\directory\venv\bin\activate.bat

建立完克隆的环境后,以后只要在专案资料夹source虚拟环境,就不用再启动minicondaRosseta了。
用PyCharm来建立的话,会根据专案目录下的requirements.txt来自动安装依赖套件在venv。

About

practiced Azure function


Languages

Language:Python 100.0%