Pulumi:将Azure Web App服务Web钩子添加到Azure容器注册表以进行连续部署

Pulumi:将Azure Web App服务Web钩子添加到Azure容器注册表以进行连续部署,azure,docker,azure-web-app-service,infrastructure-as-code,pulumi,Azure,Docker,Azure Web App Service,Infrastructure As Code,Pulumi,我想通过pulumi部署一个启用docker CD的Azure Web应用程序。好的,我必须在我的容器注册表中为它创建一个webhook。但我不知道如何从web应用程序获取webhook URL 下面是我如何设置我的基础设施 const config=new pulumi.config(); const location=config.require(“位置”); const resourceGroup=new resources.resourceGroup(“rootResourceGroup

我想通过pulumi部署一个启用docker CD的Azure Web应用程序。好的,我必须在我的容器注册表中为它创建一个webhook。但我不知道如何从web应用程序获取webhook URL

下面是我如何设置我的基础设施

const config=new pulumi.config();
const location=config.require(“位置”);
const resourceGroup=new resources.resourceGroup(“rootResourceGroup”,{…});
const registry=new container.registry(“containerRegistry”,{…});
const appServicePlan=new web.appServicePlan(“appServicePlan”,{…});
const suffix=new random.RandomString(“后缀”,{…});
const credentials=pulumi.all([resourceGroup.name,registry.name])
.apply(([resourceGroupName,registryName])=>container.listRegistryCredentials({
resourceGroupName:resourceGroupName,
registryName:registryName,
}));
const adminUsername=credentials.apply(credentials=>credentials.username!);
const adminPassword=credentials.apply(credentials=>credentials.passwords![0].value!);
const-app={name:“foo-demo”,容器:“foo/demo”};
const webApp=新建web.webApp(app.name{
名称:pulumi.interpolate`${app.name}-${suffix.result}`,
resourceGroupName:resourceGroup.name,
位置,
serverFarmId:appServicePlan.id,
站点配置:{
应用程序设置:[{
名称:“网站\启用\应用\服务\存储”,
值:“false”
}, {
名称:“DOCKER_ENABLE_CI”,
价值:“真实”
}, {
名称:“DOCKER\u注册表\u服务器\u URL”,
值:pulumi.interpolate`https://${registry.loginServer}`,
}, {
名称:“DOCKER\u注册表\u服务器\u用户名”,
值:adminUsername,
}, {
名称:“DOCKER\u注册表\u服务器\u密码”,
值:adminPassword,
}],
是的,
linuxFxVersion:registry.loginServer.apply(url=>`DOCKER |${url}/${app.container}:latest`)
}});
const webHookName=`${app.name}-webhook`;
const hook=new container.Webhook(webHookName{
resourceGroupName:resourceGroup.name,
位置,
registryName:registry.name,
操作:[“推送”],
作用域:`${app.container}:latest`,
状态:“已启用”,
serviceUri:“TODO”,请尝试使用。我反向设计了Azure CLI的功能:

const webhook=pulumi.all([resourceGroup.name,webApp.name])
.apply(([resourceGroupName,name])=>
listWebAppPublishingCredentials({resourceGroupName,name}))
.apply(creds=>creds.scmUri+“/docker/hook”);
尝试使用。我反向设计了Azure CLI的功能:

const webhook=pulumi.all([resourceGroup.name,webApp.name])
.apply(([resourceGroupName,name])=>
listWebAppPublishingCredentials({resourceGroupName,name}))
.apply(creds=>creds.scmUri+“/docker/hook”);
az webapp deployment container config -n sname -g rgname -e true