我有一个 functionApp (V3),它尝试使用 DefaultAzureCredential 访问应用程序配置。我的系统管理用户已打开并具有“应用程序配置数据读取器”角色。我在调试中在本地运行它,因此需要默认凭据。我也有多个租户,所以我必须在 DefaultAzureCredentialOptions 上设置 VisualStudioTenantId 和 SharedTokenCacheTenantId。
在访问 Key Vault 以获取机密时凭据有效,但需要设置 SharedTokenCacheTenantId。
当连接到应用配置时,我收到“服务请求失败。状态:403(禁止)。
见下面的代码:
import React from 'react'
import styled from 'styled-components'
import Layout from '../components/layout'
import Button from '../components/Button'
import { graphql } from 'gatsby';
import Image from 'gatsby-image';
import { Container, Row, Col,Carousel, Card} from 'react-bootstrap'
import Logo from "../assets/images/logoimagen3.png"
import 'bootstrap/dist/css/bootstrap.min.css';
export const query = graphql`
query ($slug : String! ) {
detallesCategoriasJson(slug: {eq: $slug}) {
nombre
descripcion
img {
childImageSharp {
fluid {
...GatsbyImageSharpFluid
}
}
}
galeria {
producto {
imageC {
id
base
childImageSharp {
fluid {
...GatsbyImageSharpFluid
}
}
}
nombrePro
descripcionPro
}
}
}
}
`;
const templateDetalleCat = ({ data }) => {
const tD = data.detallesCategoriasJson;
return (
<Layout>
<Container>
<ProductsHeading> Productos de {tD.nombre} </ProductsHeading>
<Row>
{tD.gallery.product.map(image => (
<Col md={3}>
<Card className="mb-3">
<Image
fluid={image.gallery.product.imageC.childImageSharp.fluid}
alt={image.gallery.product.imageC.base.split('.')[0]}
className="card-img-top"
/>
<Card.Body>
<Card.Title> Hello </Card.Title>
<Card.Text>
<p> Hello </p>
</Card.Text>
<Button target="_blank" href="https://www.google.com.ec" >Comprar</Button>
</Card.Body>
</Card>
</Col>
))}
</Row>
</Container>
</Layout>
)
}
export default templateDetalleCat
谢谢!